1. 15 Jan, 2020 4 commits
    • Tien Hock, Loh's avatar
      plat: intel: Fix UEFI decompression issue · 389091a8
      Tien Hock, Loh authored
      
      
      UEFI decompression will fail if the payload size is too large and the load
      address is too low. This patch moves the payload to a higher address to fix
      the issue
      Signed-off-by: default avatarTien Hock, Loh <tien.hock.loh@intel.com>
      Change-Id: I36087fbd2237b62891c59dbe2d34336bddfaa396
      389091a8
    • Hadi Asyrafi's avatar
      intel: Change all global sip function to static · e5ebe87b
      Hadi Asyrafi authored
      
      
      All function in socfpga_sip_svc.c should only be called locally except
      sip_smc_handler().
      Signed-off-by: default avatarHadi Asyrafi <muhammad.hadi.asyrafi.abdul.halim@intel.com>
      Change-Id: Ib84ef9a2e521967baa4cfd32e6bc569dd3a5d2f5
      e5ebe87b
    • Samuel Holland's avatar
      allwinner: Reenable USE_COHERENT_MEM · 6c281cc3
      Samuel Holland authored
      
      
      Now that there is plenty of space (32 KiB) available for NOBITS
      sections, we can afford using an entire page for coherent memory. In
      fact, because it simplifies the code, this is a beneficial change for
      loaded image (.text) size, where we are still close to the size limit.
      Signed-off-by: default avatarSamuel Holland <samuel@sholland.org>
      Change-Id: I0b899dabcb162015c63b0e4aed0869569c889ed9
      6c281cc3
    • Luka Kovacic's avatar
      a8k: Implement platform specific power off · 8c11ebfc
      Luka Kovacic authored
      
      
      Implements a way to add platform specific power off code to a
      Marvell Armada 8K platform.
      
      Marvell Armada 8K boards can now add a board/system_power.c file
      that contains a system_power_off() function.
      This function can now send a command to a power management MCU or
      other board periferals before shutting the board down.
      Signed-off-by: default avatarLuka Kovacic <luka.kovacic@sartura.hr>
      Cc: Luka Perkov <luka.perkov@sartura.hr>
      Change-Id: Iaba20bc2f603195679c54ad12c0c18962dd8e3db
      ---
      I am working on a device that will be ported later, which has a
      custom power management MCU that handles LEDs, board power and fans
      and requires this separation.
      8c11ebfc
  2. 13 Jan, 2020 1 commit
  3. 12 Jan, 2020 2 commits
  4. 10 Jan, 2020 2 commits
    • Deepika Bhavnani's avatar
      Unify type of "cpu_idx" across PSCI module. · 5b33ad17
      Deepika Bhavnani authored
      
      
      NOTE for platform integrators:
         API `plat_psci_stat_get_residency()` third argument
         `last_cpu_idx` is changed from "signed int" to the
         "unsigned int" type.
      
      Issue / Trouble points
      1. cpu_idx is used as mix of `unsigned int` and `signed int` in code
      with typecasting at some places leading to coverity issues.
      
      2. Underlying platform API's return cpu_idx as `unsigned int`
      and comparison is performed with platform specific defines
      `PLAFORM_xxx` which is not consistent
      
      Misra Rule 10.4:
      The value of a complex expression of integer type may only be cast to
      a type that is narrower and of the same signedness as the underlying
      type of the expression.
      
      Based on above points, cpu_idx is kept as `unsigned int` to match
      the API's and low-level functions and platform defines are updated
      where ever required
      Signed-off-by: default avatarDeepika Bhavnani <deepika.bhavnani@arm.com>
      Change-Id: Ib26fd16e420c35527204b126b9b91e8babcc3a5c
      5b33ad17
    • Alexei Fedorov's avatar
      FVP: Remove re-definition of topology related build options · 94f1c959
      Alexei Fedorov authored
      
      
      This patch removes re-definition of the following FVP build
      options from plat\arm\board\fvp\fvp_def.h:
       'FVP_CLUSTER_COUNT'
       'FVP_MAX_CPUS_PER_CLUSTER'
       'FVP_MAX_PE_PER_CPU'
      which are set in platform.mk.
      
      This fixes a potential problem when a build option set in
      platform.mk file can be re-defined in fvp_def.h header file
      used by other build component with a different makefile which
      does not set this option.
      Ref. GENFW-3505.
      
      Change-Id: I4288629920516acf2c239c7b733f92a0c5a812ff
      Signed-off-by: default avatarAlexei Fedorov <Alexei.Fedorov@arm.com>
      94f1c959
  5. 09 Jan, 2020 3 commits
  6. 08 Jan, 2020 1 commit
  7. 07 Jan, 2020 9 commits
  8. 06 Jan, 2020 2 commits
  9. 03 Jan, 2020 1 commit
    • Vishnu Banavath's avatar
      drivers: add a driver for snoop control unit · c20c0525
      Vishnu Banavath authored
      
      
      The SCU connects one to four Cortex-A5/Cortex-A9 processors
      to the memory system through the AXI interfaces.
      
      The SCU functions are to:
      - maintain data cache coherency between the Cortex-A5/Cortex-A9
        processors
      - initiate L2 AXI memory accesses
      - arbitrate between Cortex-A5/Cortex-A9 processors requesting
        L2 accesses
      - manage ACP accesses.
      
      Snoop Control Unit will enable to snoop on other CPUs caches.
      This is very important when it comes to synchronizing data between
      CPUs. As an example, there is a high chance that data might be
      cache'd and other CPUs can't see the change. In such cases,
      if snoop control unit is enabled, data is synchoronized immediately
      between CPUs and the changes are visible to other CPUs.
      
      This driver provides functionality to enable SCU as well as enabling
      user to know the following
      - number of CPUs present
      - is a particular CPU operating in SMP mode or AMP mode
      - data cache size of a particular CPU
      - does SCU has ACP port
      - is L2CPRESENT
      
      Change-Id: I0d977970154fa60df57caf449200d471f02312a0
      Signed-off-by: default avatarVishnu Banavath <vishnu.banavath@arm.com>
      c20c0525
  10. 30 Dec, 2019 4 commits
    • Andre Przywara's avatar
      plat: rpi4: Skip UART initialisation · 0eda713b
      Andre Przywara authored
      
      
      So far we have seen two different clock setups for the Raspberry Pi 4
      board, with the VPU clock divider being different. This was handled by
      reading the divider register and adjusting the base clock rate
      accordingly.
      Recently a new GPU firmware version appeared that changed the clock rate
      *again*, though this time at a higher level, so the VPU rate (and the
      apparent PLLC parent clock) did not seem to change, judging by reading
      the clock registers.
      So rather than playing cat and mouse with the GPU firmware or going
      further down the rabbit hole of exploring the whole clock tree, let's
      just skip the baud rate programming altogether. This works because the
      GPU firmware actually sets up and programs the debug UART already, so
      we can just use it.
      
      Pass 0 as the base clock rate to let the console driver skip the setup,
      also remove the no longer needed clock code.
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      Change-Id: Ica88a3f3c9c11059357c1e6dd8f7a4d9b1f98fd7
      0eda713b
    • Hadi Asyrafi's avatar
      intel: Fix memory calibration · 3d9f7264
      Hadi Asyrafi authored
      
      
      Increase calibration delay to cater for HPS 1st mode and
      reduce clear emif delay which takes too long
      Signed-off-by: default avatarHadi Asyrafi <muhammad.hadi.asyrafi.abdul.halim@intel.com>
      Change-Id: I1a50a5d8a6518ba085d853cb636efa07326552b4
      3d9f7264
    • Hadi Asyrafi's avatar
      intel: Implement platform specific system reset 2 · 32cf34ac
      Hadi Asyrafi authored
      
      
      Add support for platform specific warm-reset through psci system reset 2.
      
      - system_reset2 implementation that calls for l2 cache reset
      - Check for magic number and request for warm reset in bl2
      - Create a shared reset manager header file for Agilex and Stratix 10
      - Clean up parameter info in plat_get_next_bl_params
      Signed-off-by: default avatarHadi Asyrafi <muhammad.hadi.asyrafi.abdul.halim@intel.com>
      Change-Id: I3fdd9a2711c80d9bd3dc05b81527781d840bd726
      32cf34ac
    • Hadi Asyrafi's avatar
      intel: Enable SiP SMC secure register access · 13d33d52
      Hadi Asyrafi authored
      
      
      Enable access to secure registers by non-secure world through secure
      monitor calls
      Signed-off-by: default avatarHadi Asyrafi <muhammad.hadi.asyrafi.abdul.halim@intel.com>
      Change-Id: I80610e08c7cf31f17f47a7597c269131a8de2491
      13d33d52
  11. 29 Dec, 2019 2 commits
  12. 26 Dec, 2019 2 commits
  13. 25 Dec, 2019 1 commit
  14. 20 Dec, 2019 5 commits
    • Paul Beesley's avatar
      spm-mm: Remove mm_svc.h header · 962c44e7
      Paul Beesley authored
      
      
      The contents of this header have been merged into the spm_mm_svc.h
      header file.
      
      Change-Id: I01530b2e4ec1b4c091ce339758025e2216e740a4
      Signed-off-by: default avatarPaul Beesley <paul.beesley@arm.com>
      962c44e7
    • Paul Beesley's avatar
      spm-mm: Refactor spm_svc.h and its contents · 0bf9f567
      Paul Beesley authored
      
      
      Change-Id: I91c192924433226b54d33e57d56d146c1c6df81b
      Signed-off-by: default avatarPaul Beesley <paul.beesley@arm.com>
      0bf9f567
    • Paul Beesley's avatar
      spm-mm: Refactor secure_partition.h and its contents · aeaa225c
      Paul Beesley authored
      
      
      Before adding any new SPM-related components we should first do
      some cleanup around the existing SPM-MM implementation. The aim
      is to make sure that any SPM-MM components have names that clearly
      indicate that they are MM-related. Otherwise, when adding new SPM
      code, it could quickly become confusing as it would be unclear to
      which component the code belongs.
      
      The secure_partition.h header is a clear example of this, as the
      name is generic so it could easily apply to any SPM-related code,
      when it is in fact SPM-MM specific.
      
      This patch renames the file and the two structures defined within
      it, and then modifies any references in files that use the header.
      
      Change-Id: I44bd95fab774c358178b3e81262a16da500fda26
      Signed-off-by: default avatarPaul Beesley <paul.beesley@arm.com>
      aeaa225c
    • Paul Beesley's avatar
      spm: Remove SPM Alpha 1 prototype and support files · 538b0020
      Paul Beesley authored
      
      
      The Secure Partition Manager (SPM) prototype implementation is
      being removed. This is preparatory work for putting in place a
      dispatcher component that, in turn, enables partition managers
      at S-EL2 / S-EL1.
      
      This patch removes:
      
      - The core service files (std_svc/spm)
      - The Resource Descriptor headers (include/services)
      - SPRT protocol support and service definitions
      - SPCI protocol support and service definitions
      
      Change-Id: Iaade6f6422eaf9a71187b1e2a4dffd7fb8766426
      Signed-off-by: default avatarPaul Beesley <paul.beesley@arm.com>
      Signed-off-by: default avatarArtsem Artsemenka <artsem.artsemenka@arm.com>
      538b0020
    • Paul Beesley's avatar
      Remove dependency between SPM_MM and ENABLE_SPM build flags · 3f3c341a
      Paul Beesley authored
      
      
      There are two different implementations of Secure Partition
      management in TF-A. One is based on the "Management Mode" (MM)
      design, the other is based on the Secure Partition Client Interface
      (SPCI) specification. Currently there is a dependency between their
      build flags that shouldn't exist, making further development
      harder than it should be. This patch removes that
      dependency, making the two flags function independently.
      
      Before: ENABLE_SPM=1 is required for using either implementation.
              By default, the SPCI-based implementation is enabled and
              this is overridden if SPM_MM=1.
      
      After: ENABLE_SPM=1 enables the SPCI-based implementation.
             SPM_MM=1 enables the MM-based implementation.
             The two build flags are mutually exclusive.
      
      Note that the name of the ENABLE_SPM flag remains a bit
      ambiguous - this will be improved in a subsequent patch. For this
      patch the intention was to leave the name as-is so that it is
      easier to track the changes that were made.
      
      Change-Id: I8e64ee545d811c7000f27e8dc8ebb977d670608a
      Signed-off-by: default avatarPaul Beesley <paul.beesley@arm.com>
      3f3c341a
  15. 19 Dec, 2019 1 commit