1. 17 Oct, 2017 1 commit
    • Evan Lloyd's avatar
      fiptool: Enable Visual Studio build · a1ee3836
      Evan Lloyd authored
      
      
      Updates are required to enable the fiptool utility to be built on a
      Windows platform.  This change modifies the source files to enable
      building with Visual Studio (detected via preprocessor settings).
      The primary changes are:
        1.  Provide an implementation of the getopt_long function.  This does
            not exist in the Visual Studio CRT libraries because Windows
            commands normally use '/' not '-' as an option indicator.
        2.  Redirect some function names to match those supported by the
            Visual Studio libraries (when building with Visual Studio).
        2.  Modify a structure name (stat) to match that provided
            by the Visual Studio libraries (_stat).
      
      Note - this change does not provide makefile updates.  It only modifies
             the sources to enable the fiptool to be built from a Visual
             Studio project.  In normal use the presence of FIPTOOL.EXE is
             enough to satisfy the make requirements.  A makefile change may
             be derived from the Visual Studio command line information at
             some point in the future.
      
      Change-Id: I3ade77ea140246af3c030920b3f97c070087f111
      Signed-off-by: default avatarEvan Lloyd <evan.lloyd@arm.com>
      a1ee3836
  2. 16 Oct, 2017 2 commits
  3. 13 Oct, 2017 3 commits
    • Roberto Vargas's avatar
      reset2: Add css_system_reset2() · b48ae263
      Roberto Vargas authored
      
      
      This function implements the platform dependant part of PSCI system
      reset2 for CSS platforms using SCMI.
      
      Change-Id: I724389decab484043cadf577aeed96b349c1466d
      Signed-off-by: default avatarRoberto Vargas <roberto.vargas@arm.com>
      b48ae263
    • Roberto Vargas's avatar
      scp: Introduce css_scp_system_off() function · ed3c0ef8
      Roberto Vargas authored
      
      
      The common implementation of css_scp_sys_shutdown and
      css_scp_warm_reset is refactored into a new function,
      css_scp_system_off() that allows the desired power state to be
      specified.
      
      The css_scp_system_off can be used in the implementation of
      SYSTEM_RESET2 for PSCI v1.1.
      
      Change-Id: I161e62354d3d75f969b8436d794335237520a9a4
      Signed-off-by: default avatarRoberto Vargas <roberto.vargas@arm.com>
      ed3c0ef8
    • Roberto Vargas's avatar
      reset2: Add PSCI system_reset2 function · 36a8f8fd
      Roberto Vargas authored
      
      
      This patch implements PSCI_SYSTEM_RESET2 API as defined in PSCI
      v1.1 specification. The specification allows architectural and
      vendor-specific resets via this API. In the current specification,
      there is only one architectural reset, the warm reset. This reset is
      intended to provide a fast reboot path that guarantees not to reset
      system main memory.
      
      Change-Id: I057bb81a60cd0fe56465dbb5791d8e1cca025bd3
      Signed-off-by: default avatarRoberto Vargas <roberto.vargas@arm.com>
      36a8f8fd
  4. 11 Oct, 2017 3 commits
  5. 09 Oct, 2017 3 commits
  6. 08 Oct, 2017 1 commit
  7. 06 Oct, 2017 5 commits
  8. 05 Oct, 2017 9 commits
    • Douglas Raillard's avatar
      GICv3: Document GICv3 save/restore helpers · c5229f8c
      Douglas Raillard authored
      
      
      Give hints on how to use the GICv3 save/restore helpers in the
      implementation of the PSCI handlers.
      
      Change-Id: I86de1c27417b64c7ce290974964ef97ff678f676
      Signed-off-by: default avatarDouglas Raillard <douglas.raillard@arm.com>
      c5229f8c
    • Soby Mathew's avatar
      GICv3: ITS architectural save and restore helpers · b258278e
      Soby Mathew authored
      
      
      This patch adds functions to save and restore GICv3 ITS registers during
      system suspend. Please note that the power management of GIC ITS is
      implementation defined. These functions only implements the
      architectural part of the ITS power management and they do not restore
      memory structures or register content required to support ITS. Even if
      the ITS implementation stores structures in memory, an implementation
      defined power down sequence is likely to be required to flush some
      internal ITS caches to memory. If such implementation defined sequence
      is not followed, the platform must ensure that the ITS is not power
      gated during system suspend.
      
      Change-Id: I5f31e5541975aa7dcaab69b0b7f67583c0e27678
      Signed-off-by: default avatarSoby Mathew <soby.mathew@arm.com>
      Signed-off-by: default avatarDouglas Raillard <douglas.raillard@arm.com>
      b258278e
    • Soby Mathew's avatar
      GICv3: add functions for save and restore · ebf1ca10
      Soby Mathew authored
      
      
      During system suspend, the GICv3 Distributor and Redistributor context
      can be lost due to power gating of the system power domain. This means
      that the GICv3 context needs to be saved prior to system suspend and
      restored on wakeup. Currently the consensus is that the Firmware should
      be in charge of this. See tf-issues#464 for more details.
      
      This patch introduces helper APIs in the GICv3 driver to save and
      restore the Distributor and Redistributor contexts. The GICv3 ITS
      context is not considered in this patch because the specification says
      that the details of ITS power management is implementation-defined.
      These APIs are expected to be appropriately invoked by the platform
      layer during system suspend.
      
      Fixes ARM-software/tf-issues#464
      
      Change-Id: Iebb9c6770ab8c4d522546f161fa402d2fe02ec00
      Signed-off-by: default avatarSoby Mathew <soby.mathew@arm.com>
      Signed-off-by: default avatarDouglas Raillard <douglas.raillard@arm.com>
      ebf1ca10
    • Douglas Raillard's avatar
      GICv3: turn some macros into inline functions · a64b4e62
      Douglas Raillard authored
      
      
      Tidy up the code a bit by turning some macros into inline functions
      which allows to remove the do/while(0) idiom and backslashes at the end
      of the line.
      
      Change-Id: Ie41a4ea4a4da507f7b925247b53e85019101d717
      Signed-off-by: default avatarDouglas Raillard <douglas.raillard@arm.com>
      a64b4e62
    • Douglas Raillard's avatar
      GICv3: Fix gic600.c indentation · b50bdcea
      Douglas Raillard authored
      
      
      Reindent the file using tabs as the mix of spaces and tabs confuses some
      editors and leads them to use spaces instead of tabs for new code
      although the coding style mandates tabs.
      
      Change-Id: I87fa4a5d368a048340054b9b3622325f3f7befba
      Signed-off-by: default avatarDouglas Raillard <douglas.raillard@arm.com>
      b50bdcea
    • Antonio Nino Diaz's avatar
      xlat: Add support for EL0 and EL1 mappings · 609c9191
      Antonio Nino Diaz authored
      
      
      This patch introduces the ability of the xlat tables library to manage
      EL0 and EL1 mappings from a higher exception level.
      
      Attributes MT_USER and MT_PRIVILEGED have been added to allow the user
      specify the target EL in the translation regime EL1&0.
      
      REGISTER_XLAT_CONTEXT2 macro is introduced to allow creating a
      xlat_ctx_t that targets a given translation regime (EL1&0 or EL3).
      
      A new member is added to xlat_ctx_t to represent the translation regime
      the xlat_ctx_t manages. The execute_never mask member is removed as it
      is computed from existing information.
      
      Change-Id: I95e14abc3371d7a6d6a358cc54c688aa9975c110
      Co-authored-by: default avatarDouglas Raillard <douglas.raillard@arm.com>
      Co-authored-by: default avatarSandrine Bailleux <sandrine.bailleux@arm.com>
      Co-authored-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      609c9191
    • Douglas Raillard's avatar
      xlat: Introduce function xlat_arch_tlbi_va_regime() · b4ae615b
      Douglas Raillard authored
      
      
      Introduce a variant of the TLB invalidation helper function that
      allows the targeted translation regime to be specified, rather than
      defaulting to the current one.
      
      This new function is useful in the context of EL3 software managing
      translation tables for the S-EL1&0 translation regime, as then it
      might need to invalidate S-EL1&0 TLB entries rather than EL3 ones.
      
      Define a new enumeration to be able to represent translation regimes in
      the xlat tables library.
      
      Change-Id: Ibe4438dbea2d7a6e7470bfb68ff805d8bf6b07e5
      Co-authored-by: default avatarSandrine Bailleux <sandrine.bailleux@arm.com>
      Co-authored-by: default avatarDouglas Raillard <douglas.raillard@arm.com>
      Co-authored-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      b4ae615b
    • Sandrine Bailleux's avatar
      xlat: Always compile TLB invalidation functions · f301da44
      Sandrine Bailleux authored
      
      
      TLB invalidation functions used to be conditionally compiled in.
      They were enabled only when using the dynamic mapping feature.
      because only then would we need to modify page tables on the fly.
      
      Actually there are other use cases where invalidating TLBs is required.
      When changing memory attributes in existing translation descriptors for
      example. These other use cases do not necessarily depend on the dynamic
      mapping feature.
      
      This patch removes this dependency and always compile TLB invalidation
      functions in. If they're not used, they will be removed from the binary
      at link-time anyway so there's no consequence on the memory footprint
      if these functions are not called.
      
      Change-Id: I1c33764ae900eb00073ee23b7d0d53d4efa4dd21
      Signed-off-by: default avatarSandrine Bailleux <sandrine.bailleux@arm.com>
      f301da44
    • Sandrine Bailleux's avatar
      xlat: Introduce MAP_REGION2() macro · fdb1964c
      Sandrine Bailleux authored
      
      
      The current implementation of the memory mapping API favours mapping
      memory regions using the biggest possible block size in order to
      reduce the number of translation tables needed.
      
      In some cases, this behaviour might not be desirable. When translation
      tables are edited at run-time, coarse-grain mappings like that might
      need splitting into finer-grain tables. This operation has a
      performance cost.
      
      The MAP_REGION2() macro allows to specify the granularity of
      translation tables used for the initial mapping of a memory region.
      This might increase performance for memory regions that are likely to
      be edited in the future, at the expense of a potentially increased
      memory footprint.
      
      The Translation Tables Library Design Guide has been updated to
      explain the use case for this macro. Also added a few intermediate
      titles to make the guide easier to digest.
      
      Change-Id: I04de9302e0ee3d326b8877043a9f638766b81b7b
      Co-authored-by: default avatarSandrine Bailleux <sandrine.bailleux@arm.com>
      Co-authored-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      fdb1964c
  9. 04 Oct, 2017 3 commits
  10. 02 Oct, 2017 2 commits
  11. 29 Sep, 2017 1 commit
  12. 27 Sep, 2017 2 commits
  13. 26 Sep, 2017 2 commits
  14. 25 Sep, 2017 3 commits