1. 29 Mar, 2021 3 commits
    • Thomas Abraham's avatar
      plat/sgi: improve macros defining cper buffer memory region · d306eb80
      Thomas Abraham authored
      
      
      Remove the 'ARM_' prefix from the macros defining the CPER buffer memory
      and replace it with 'CSS_SGI_' prefix. These macros are applicable only
      for platforms supported within plat/sgi. In addition to this, ensure
      that these macros are defined only if the RAS_EXTENSION build option is
      enabled.
      Signed-off-by: default avatarThomas Abraham <thomas.abraham@arm.com>
      Change-Id: I44df42cded18d9d3a4cb13e5c990e9ab3194daee
      d306eb80
    • Thomas Abraham's avatar
      plat/sgi: refactor DMC-620 error handling SMC function id · 513ba5c9
      Thomas Abraham authored
      
      
      The macros defining the SMC function ids for DMC-620 error handling are
      listed in the sgi_base_platform_def.h header file. But these macros are
      not applicable for all platforms supported under plat/sgi. So move these
      macro definitions to sgi_ras.c file in which these are consumed. While
      at it, remove the AArch32 and error injection function ids as these are
      unused.
      Signed-off-by: default avatarThomas Abraham <thomas.abraham@arm.com>
      Change-Id: I249b54bf4c1b1694188a1e3b297345b942f16bc9
      513ba5c9
    • Thomas Abraham's avatar
      plat/sgi: refactor SDEI specific macros · a8834474
      Thomas Abraham authored
      
      
      The macros specific to SDEI defined in the sgi_base_platform_def.h are
      not applicable for all the platforms supported by plat/sgi. So refactor
      the SDEI specific macros into a new header file and include this file on
      only on platforms it is applicable on.
      Signed-off-by: default avatarThomas Abraham <thomas.abraham@arm.com>
      Change-Id: I0cb7125334f02a21cae1837cdfd765c16ab50bf5
      a8834474
  2. 17 Feb, 2021 1 commit
  3. 29 Jan, 2021 1 commit
  4. 20 Jan, 2021 2 commits
    • Ming Huang's avatar
      plat/arm/css/sgi: Fix assert expression issue · 0301d09c
      Ming Huang authored
      
      
      Violation of MISRA-C Rule 14.4
      Signed-off-by: default avatarMing Huang <huangming@linux.alibaba.com>
      Change-Id: I44ef50dadb54fb056a91f3de962b6e63ba6d7ac4
      0301d09c
    • Ming Huang's avatar
      plat/arm/css/sgi: Fix bl32 receive event - 0xC4000061 issue · 9feb1e2f
      Ming Huang authored
      
      
      The issue is that, when interrupt is triggered and RAS handler
      is entered, after interrupt handler finishes, TF-A will re-enter
      bl32 and then crash.
      sdei_dispatch_event() may return failing result in some cases,
      for example kernel may not have registered a handler or RAS event
      may happen early during boot. We restore the NS context when
      sdei_dispatch_event() returns failing result.
      
      error log :
      Received delegated event
      X0 :  0xC4000061
      X1 :  0x0
      X2 :  0x0
      X3 :  0x0
      Received event - 0xC4000061 on cpu 0
      UnRecognized Event - 0xC4000061
      Failed delegated event 0xC4000061, Status Invalid Parameter
      Unhandled Exception in EL3.
      x30            = 0x000000000401f700
      x0             = 0xfffffffffffffffe
      x1             = 0xfffffffffffffffe
      x2             = 0x00000000600003c0
      Signed-off-by: default avatarMing Huang <huangming@linux.alibaba.com>
      Change-Id: I9802e9a32eee0ac3b5a8bcc0362d0b0e3b71dc9f
      9feb1e2f
  5. 11 Jan, 2021 1 commit
  6. 09 Dec, 2020 5 commits
  7. 24 Sep, 2020 1 commit
    • Sami Mujawar's avatar
      plat/arm/css/sgi: Map flash used for mem_protect · 7c15a8c1
      Sami Mujawar authored
      
      
      The SGI platform defines the macro PLAT_ARM_MEM_PROT_ADDR which
      indicates that the platform has mitigation for cold reboot attacks.
      
      However, the flash memory used for the mem_protect region was not
      mapped. This results in a crash when an OS calls PSCI MEM_PROTECT.
      
      To fix this map the flash region used for mem_protect.
      
      Change-Id: Ia494f924ecfe2ce835c045689ba8f942bf0941f4
      Signed-off-by: default avatarSami Mujawar <sami.mujawar@arm.com>
      7c15a8c1
  8. 31 Jul, 2020 1 commit
  9. 09 Jun, 2020 1 commit
    • Andre Przywara's avatar
      GICv3: GIC-600: Detect GIC-600 at runtime · b4ad365a
      Andre Przywara authored
      
      
      The only difference between GIC-500 and GIC-600 relevant to TF-A is the
      differing power management sequence.
      A certain GIC implementation is detectable at runtime, for instance by
      checking the IIDR register. Let's add that test before initiating the
      GIC-600 specific sequence, so the code can be used on both GIC-600 and
      GIC-500 chips alike, without deciding on a GIC chip at compile time.
      
      This means that the GIC-500 "driver" is now redundant. To allow minimal
      platform support, add a switch to disable GIC-600 support.
      
      Change-Id: I17ea97d9fb05874772ebaa13e6678b4ba3415557
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      b4ad365a
  10. 14 Apr, 2020 1 commit
    • Aditya Angadi's avatar
      plat/arm/sgi: update mmap and xlat count · def3b54b
      Aditya Angadi authored
      
      
      A single chip platform requires five mmap entries and a corresponding
      number of translation tables. For every additional chip in the system,
      three additional mmap entries are required to map the shared SRAM and
      the IO regions. A corresponding number of additional translation
      tables are required as well.
      
      Change-Id: I1332a1305f2af62181387cf36954f6fb0e6f11ed
      Signed-off-by: default avatarAditya Angadi <aditya.angadi@arm.com>
      def3b54b
  11. 07 Apr, 2020 1 commit
    • Manish V Badarkhe's avatar
      Increase maximum size of BL2 image · 9dfe46c2
      Manish V Badarkhe authored
      
      
      Increased the maximum size of BL2 image in order to
      accommodate the BL2 image when TF-A build with no compiler
      optimization for ARM platform.
      
      Note: As of now, "no compiler optimization" build works
      only when TRUSTED_BOOT_BOARD option is set to 0.
      
      This change is verified using below CI configuration:
      1. juno-no-optimize-default:juno-linux.uboot
      2. fvp-no-optimize-default,fvp-default:fvp-tftf-fip.tftf-aemv8a-debug
      
      Change-Id: I5932621237f8acd1b510682388f3ba78eae90ea4
      Signed-off-by: default avatarManish V Badarkhe <Manish.Badarkhe@arm.com>
      9dfe46c2
  12. 30 Mar, 2020 1 commit
    • Alexei Fedorov's avatar
      TF-A GICv3 driver: Introduce makefile · a6ea06f5
      Alexei Fedorov authored
      
      
      This patch moves all GICv3 driver files into new added
      'gicv3.mk' makefile for the benefit of the generic driver
      which can evolve in the future without affecting platforms.
      The patch adds GICv3 driver configuration flags
      'GICV3_IMPL', 'GICV3_IMPL_GIC600_MULTICHIP' and
      'GICV3_OVERRIDE_DISTIF_PWR_OPS' described in
      'GICv3 driver options' section of 'build-option.rst'
      document.
      
      NOTE: Platforms with GICv3 driver need to be modified to
      include 'drivers/arm/gic/v3/gicv3.mk' in their makefiles.
      
      Change-Id: If055f6770ff20f5dee5a3c99ae7ced7cdcac5c44
      Signed-off-by: default avatarAlexei Fedorov <Alexei.Fedorov@arm.com>
      a6ea06f5
  13. 27 Mar, 2020 1 commit
  14. 13 Mar, 2020 1 commit
  15. 11 Mar, 2020 1 commit
  16. 10 Mar, 2020 1 commit
  17. 19 Feb, 2020 1 commit
    • Suyash Pathak's avatar
      plat/arm: allow boards to specify second DRAM Base address · 86f297a3
      Suyash Pathak authored
      
      
      The base address for second DRAM varies across different platforms.
      So allow platforms to define second DRAM by moving Juno/SGM-775 specific
      definition of second DRAM base address to Juno/SGM-775 board definition
      respectively, SGI/RD specific definition of DRAM 2 base address to SGI
      board definition.
      
      Change-Id: I0ecd3a2bd600b6c7019c7f06f8c452952bd07cae
      Signed-off-by: default avatarSuyash Pathak <suyash.pathak@arm.com>
      86f297a3
  18. 07 Feb, 2020 10 commits
  19. 27 Jan, 2020 1 commit
  20. 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