1. 31 Jul, 2020 1 commit
    • Manish Pandey's avatar
      tbbr/dualroot: rename SP package certificate file · 03a5225c
      Manish Pandey authored
      
      
      Currently only single signing domain is supported for SP packages but
      there is plan to support dual signing domains if CoT is dualroot.
      
      SP_CONTENT_CERT_ID is the certificate file which is currently generated
      and signed with trusted world key which in-turn is derived from Silicon
      provider RoT key.
      To allow dual signing domain for SP packages, other certificate file
      will be derived from Platform owned RoT key.
      
      This patch renames "SP_CONTENT_CERT_ID" to "SIP_SP_CONTENT_CERT_ID" and
      does other related changes.
      Signed-off-by: default avatarManish Pandey <manish.pandey2@arm.com>
      Change-Id: I0bc445a3ab257e2dac03faa64f46e36a9fed5e93
      03a5225c
  2. 30 Jul, 2020 3 commits
  3. 26 Jul, 2020 1 commit
  4. 24 Jul, 2020 2 commits
  5. 23 Jul, 2020 5 commits
  6. 22 Jul, 2020 1 commit
    • Alexei Fedorov's avatar
      plat/arm/board/fvp: Add support for Measured Boot · 4a135bc3
      Alexei Fedorov authored
      
      
      This patch adds support for Measured Boot functionality
      to FVP platform code. It also defines new properties
      in 'tpm_event_log' node to store Event Log address and
      it size
      'tpm_event_log_sm_addr'
      'tpm_event_log_addr'
      'tpm_event_log_size'
      in 'event_log.dtsi' included in 'fvp_tsp_fw_config.dts'
      and 'fvp_nt_fw_config.dts'. The node and its properties
      are described in binding document
      'docs\components\measured_boot\event_log.rst'.
      
      Change-Id: I087e1423afcb269d6cfe79c1af9c348931991292
      Signed-off-by: default avatarAlexei Fedorov <Alexei.Fedorov@arm.com>
      4a135bc3
  7. 21 Jul, 2020 4 commits
  8. 20 Jul, 2020 1 commit
    • Alexei Fedorov's avatar
      TF-A GICv2 driver: Introduce makefile · 1322dc94
      Alexei Fedorov authored
      
      
      This patch moves all GICv2 driver files into new added
      'gicv2.mk' makefile for the benefit of the generic driver
      which can evolve in the future without affecting platforms.
      
      NOTE: Usage of 'drivers/arm/gic/common/gic_common.c' file
      is now deprecated and platforms with GICv2 driver need to
      be modified to include 'drivers/arm/gic/v2/gicv2.mk' in
      their makefiles.
      
      Change-Id: Ib10e71bdda0e5c7e80a049ddce2de1dd839602d1
      Signed-off-by: default avatarAlexei Fedorov <Alexei.Fedorov@arm.com>
      1322dc94
  9. 10 Jul, 2020 2 commits
    • Manish V Badarkhe's avatar
      plat/arm: Fix build failure due to increase in BL2 size · fdf50a25
      Manish V Badarkhe authored
      
      
      BL2 size gets increased due to the libfdt library update and 
      that eventually cause no-optimization build failure for BL2 as below:
      aarch64-none-elf-ld.bfd: BL2 image has exceeded its limit.
      aarch64-none-elf-ld.bfd: region `RAM' overflowed by 4096 bytes
      Makefile:1070: recipe for target 'build/fvp/debug/bl2/bl2.elf' failed
      make: *** [build/fvp/debug/bl2/bl2.elf] Error 1
      
      Fixed build failure by increasing BL2 image size limit by 4Kb.
      Signed-off-by: default avatarManish V Badarkhe <Manish.Badarkhe@arm.com>
      Change-Id: I92a57eb4db601561a98e254b64994bb921a88db3
      fdf50a25
    • Manish V Badarkhe's avatar
      plat/arm, dts: Update platform device tree for CoT · 2a0ef943
      Manish V Badarkhe authored
      
      
      Included cot_descriptors.dtsi in platform device tree
      (fvp_tb_fw_config.dts).
      
      Also, updated the maximum size of tb_fw_config to 0x1800
      in order to accomodate the device tree for CoT descriptors.
      
      Follow up patch will parse the device tree for these CoT descriptors
      and fill the CoT descriptor structures at runtime instead of using
      static CoT descriptor structures in the code base.
      Signed-off-by: default avatarManish V Badarkhe <Manish.Badarkhe@arm.com>
      Change-Id: I90122bc713f6842b82fb019b04caf42629b4f45a
      2a0ef943
  10. 09 Jul, 2020 3 commits
  11. 06 Jul, 2020 1 commit
    • Abdellatif El Khlifi's avatar
      corstone700: splitting the platform support into FVP and FPGA · ef93cfa3
      Abdellatif El Khlifi authored
      
      
      This patch performs the following:
      
      - Creating two corstone700 platforms under corstone700 board:
      
        fvp and fpga
      
      - Since the FVP and FPGA have IP differences, this commit provides a specific DTS for each platform
      - The platform can be specified using the TARGET_PLATFORM Makefile variable
      (possible values are: fvp or fpga)
      - Allowing to use u-boot by:
        - Enabling NEED_BL33 option
        - Fixing non-secure image base: For no preloaded bl33 we want to
          have the NS base set on shared ram. Setup a memory map region
          for NS in shared map and set the bl33 address in the area.
      - Setting the SYS_COUNTER_FREQ_IN_TICKS based on the selected
      platform
      - Setting ARM_MAP_SHARED_RAM and ARM_MAP_NS_SHARED_RAM to use MT_MEMORY
      
      Change-Id: I4c8ac3387acb1693ab617bcccab00d80e340c163
      Signed-off-by: default avatarRui Miguel Silva <rui.silva@linaro.org>
      Signed-off-by: default avatarAbdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
      ef93cfa3
  12. 29 Jun, 2020 1 commit
  13. 27 Jun, 2020 1 commit
  14. 26 Jun, 2020 2 commits
    • Andre Przywara's avatar
      arm_fpga: Fix MPIDR topology checks · 53baf7f0
      Andre Przywara authored
      
      
      The plat_core_pos_by_mpidr() implementation for the Arm FPGA port has
      some issues, which leads to problems when matching GICv3 redistributors
      with cores:
      - The power domain tree was not taking multithreading into account, so
        we ended up with the wrong mapping between MPIDRs and core IDs.
      - Before even considering an MPIDR, we try to make sure Aff2 is 0.
        Unfortunately this is the cluster ID when the MT bit is set.
      - We mask off the MT bit in MPIDR, before basing decisions on it.
      - When detecting the MT bit, we are properly calculating the thread ID,
        but don't account for the shift in the core and cluster ID checks.
      
      Those problems lead to early rejections of MPIDRs values, in particular
      when called from the GIC code. As a result, CPU_ON for secondary cores
      was failing for most of the cores.
      
      Fix this by properly handling the MT bit in plat_core_pos_by_mpidr(),
      also pulling in FPGA_MAX_PE_PER_CPU when populating the power domain
      tree.
      
      Change-Id: I71b2255fc0d27bfe5806511df479ab38e4e33fc4
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      53baf7f0
    • Manish V Badarkhe's avatar
      plat/arm: Use only fw_config between bl2 and bl31 · 7fb9bcd8
      Manish V Badarkhe authored
      
      
      Passed the address of fw_config instead of soc_fw_config
      as arg1 to BL31 from BL2 for ARM fvp platform.
      
      BL31 then retrieve load-address of other device trees
      from fw_config device tree.
      Signed-off-by: default avatarLouis Mayencourt <louis.mayencourt@arm.com>
      Signed-off-by: default avatarManish V Badarkhe <Manish.Badarkhe@arm.com>
      Change-Id: Ib7e9581cd765d76111dcc3b7e0dafc12503c83c1
      7fb9bcd8
  15. 25 Jun, 2020 2 commits
    • Manish V Badarkhe's avatar
      plat/arm: Increase size of firmware configuration area · ce4ca1a8
      Manish V Badarkhe authored
      
      
      Increased the size of firmware configuration area to accommodate
      all configs.
      
      Updated maximum size of following bootloaders due to increase
      in firmware configs size and addition of the code in the BL2.
      
      1. Increased maximum size of BL2 for Juno platform in no
         optimisation case.
      2. Reduced maximum size of BL31 for fvp and Juno platform.
      3. Reduced maximum size of BL32 for Juno platform.
      
      Change-Id: Ifba0564df0d1fe86175bed9fae87fdcf013b1831
      Signed-off-by: default avatarManish V Badarkhe <Manish.Badarkhe@arm.com>
      ce4ca1a8
    • Manish V Badarkhe's avatar
      plat/arm: Load and populate fw_config and tb_fw_config · 82869675
      Manish V Badarkhe authored
      
      
      Modified the code to do below changes:
      
      1. Load tb_fw_config along with fw_config by BL1.
      2. Populate fw_config device tree information in the
         BL1 to load tb_fw_config.
      3. In BL2, populate fw_config information to retrieve
         the address of tb_fw_config and then tb_fw_config
         gets populated using retrieved address.
      4. Avoid processing of configuration file in case of error
         value returned from "fw_config_load" function.
      5. Updated entrypoint information for BL2 image so
         that it's arg0 should point to fw_config address.
      Signed-off-by: default avatarManish V Badarkhe <Manish.Badarkhe@arm.com>
      Signed-off-by: default avatarLouis Mayencourt <louis.mayencourt@arm.com>
      Change-Id: Ife6f7b673a074e7f544ee3d1bda7645fd5b2886c
      82869675
  16. 24 Jun, 2020 6 commits
  17. 17 Jun, 2020 1 commit
    • Manish V Badarkhe's avatar
      plat/arm: Fix load address of TB_FW_CONFIG · 15865870
      Manish V Badarkhe authored
      
      
      Load address of tb_fw_config is incorrectly mentioned
      in below device trees:
      1. rdn1edge_fw_config.dts
      2. tc0_fw_config.dts
      
      Till now, tb_fw_config load-address is not being retrieved from
      device tree and hence never exeprienced any issue for tc0 and
      rdn1edge platform.
      
      For tc0 and rdn1edge platform, Load-address of tb_fw_config should
      be the SRAM base address + 0x300 (size of fw_config device tree)
      Hence updated these platform's fw_config.dts accordingly to reflect
      this load address change.
      
      Change-Id: I2ef8b05d49be10767db31384329f516df11ca817
      Signed-off-by: default avatarManish V Badarkhe <Manish.Badarkhe@arm.com>
      15865870
  18. 09 Jun, 2020 3 commits
    • Madhukar Pappireddy's avatar
      plat/fvp: Add support for dynamic description of secure interrupts · 452d5e5e
      Madhukar Pappireddy authored
      
      
      Using the fconf framework, the Group 0 and Group 1 secure interrupt
      descriptors are moved to device tree and retrieved in runtime. This
      feature is enabled by the build flag SEC_INT_DESC_IN_FCONF.
      
      Change-Id: I360c63a83286c7ecc2426cd1ff1b4746d61e633c
      Signed-off-by: default avatarMadhukar Pappireddy <madhukar.pappireddy@arm.com>
      452d5e5e
    • 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
    • Manish Pandey's avatar
      dualroot: add chain of trust for secure partitions · 44f1aa8e
      Manish Pandey authored
      
      
      A new certificate "sip-sp-cert" has been added for Silicon Provider(SiP)
      owned Secure Partitions(SP). A similar support for Platform owned SP can
      be added in future. The certificate is also protected against anti-
      rollback using the trusted Non-Volatile counter.
      
      To avoid deviating from TBBR spec, support for SP CoT is only provided
      in dualroot.
      Secure Partition content certificate is assigned image ID 31 and SP
      images follows after it.
      
      The CoT for secure partition look like below.
      +------------------+       +-------------------+
      | ROTPK/ROTPK Hash |------>| Trusted Key       |
      +------------------+       | Certificate       |
                                 | (Auth Image)      |
                                /+-------------------+
                               /                   |
                              /                    |
                             /                     |
                            /                      |
                           L                       v
      +------------------+       +-------------------+
      | Trusted World    |------>| SiP owned SPs     |
      | Public Key       |       | Content Cert      |
      +------------------+       | (Auth Image)      |
                              /   +-------------------+
                             /                      |
                            /                      v|
      +------------------+ L     +-------------------+
      | SP_PKG1 Hash     |------>| SP_PKG1           |
      |                  |       | (Data Image)      |
      +------------------+       +-------------------+
              .                           .
              .                           .
              .                           .
      +------------------+       +-------------------+
      | SP_PKG8 Hash     |------>| SP_PKG8           |
      |                  |       | (Data Image)      |
      +------------------+       +-------------------+
      Signed-off-by: default avatarManish Pandey <manish.pandey2@arm.com>
      Change-Id: Ia31546bac1327a3e0b5d37e8b99c808442d5e53f
      44f1aa8e