1. 11 Mar, 2020 9 commits
    • Varun Wadekar's avatar
      Tegra210: support for secure physical timer · f8827c60
      Varun Wadekar authored
      
      
      This patch enables on-chip timer1 interrupts for Tegra210 platforms.
      
      Change-Id: Ic7417dc0e69264d7c28aa012fe2322cd30838f3e
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      f8827c60
    • Varun Wadekar's avatar
      Tegra: smmu: export handlers to read/write SMMU registers · 91dd7edd
      Varun Wadekar authored
      
      
      This patch exports the SMMU register read/write handlers for platforms.
      
      Change-Id: If92f0d3ce820e4997c090b48be7614407bb582da
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      91dd7edd
    • Pritesh Raithatha's avatar
      Tegra: smmu: remove context save sequence · a391d494
      Pritesh Raithatha authored
      
      
      SMMU and MC registers are saved as part of the System Suspend sequence.
      The register list includes some NS world SMMU registers that need to be
      saved by NS world software instead. All that remains as a result are
      the MC registers.
      
      This patch moves code to MC file as a result and renames all the
      variables and defines to use the MC prefix instead of SMMU. The
      Tegra186 and Tegra194 platform ports are updated to provide the MC
      context register list to the parent driver. The memory required for
      context save is reduced due to removal of the SMMU registers.
      
      Change-Id: I83a05079039f52f9ce91c938ada6cd6dfd9c843f
      Signed-off-by: default avatarPritesh Raithatha <praithatha@nvidia.com>
      a391d494
    • Varun Wadekar's avatar
      Tegra: bpmp: fixup TEGRA_CLK_SE values for Tegra186/Tegra194 · e9044480
      Varun Wadekar authored
      
      
      This patch fixes the SE clock ID being used for Tegra186 and Tegra194
      SoCs. Previous assumption, that both SoCs use the same clock ID, was
      incorrect.
      
      Change-Id: I1ef0da5547ff2e14151b53968cad9cc78fee63bd
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      e9044480
    • Pritesh Raithatha's avatar
      Tegra194: memctrl: lock some more MC SID security configs · de3fd9b3
      Pritesh Raithatha authored
      
      
      The platform code already contains the initial set of MC SID
      security configs to be locked during boot. This patch adds some
      more configs to the list. Since the reset value of these registers
      is already as per expectations, there is no need to change it.
      
      MC SID security configs
      - PTCR,
      - MIU6R, MIU6W, MIU7R, MIU7W,
      - MPCORER, MPCOREW,
      - NVDEC1SRD, NVDEC1SRD1, NVDEC1SWR.
      
      Change-Id: Ia9a1f6a6b6d34fb2787298651f7a4792a40b88ab
      Signed-off-by: default avatarPritesh Raithatha <praithatha@nvidia.com>
      de3fd9b3
    • Jeetesh Burman's avatar
      Tegra194: add SE support to generate SHA256 of TZRAM · 029dd14e
      Jeetesh Burman authored
      
      
      The BL3-1 firmware code is stored in TZSRAM on Tegra194 platforms. This
      memory loses power when we enter System Suspend and so its contents are
      stored to TZDRAM, before entry. This opens up an attack vector where the
      TZDRAM contents might be tampered with when we are in the System Suspend
      mode. To mitigate this attack the SE engine calculates the hash of entire
      TZSRAM and stores it in PMC scratch, before we copy data to TZDRAM. The
      WB0 code will validate the TZDRAM and match the hash with the one in PMC
      scratch.
      
      This patch adds driver for the SE engine, with APIs to calculate the hash
      and store to PMC scratch registers.
      
      Change-Id: I04cc0eb7f54c69d64b6c34fc2ff62e4cfbdd43b2
      Signed-off-by: default avatarJeetesh Burman <jburman@nvidia.com>
      029dd14e
    • Jeetesh Burman's avatar
      Tegra194: store TZDRAM base/size to scratch registers · 2ac7b223
      Jeetesh Burman authored
      
      
      This patch saves the TZDRAM base and size values to secure scratch
      registers, for the WB0. The WB0 reads these values and uses them to
      verify integrity of the TZDRAM aperture.
      
      Change-Id: I2f5fd11c87804d20e2698de33be977991c9f6f33
      Signed-off-by: default avatarJeetesh Burman <jburman@nvidia.com>
      2ac7b223
    • kalyani chidambaram's avatar
      Tegra194: fix warnings for extra parentheses · 6dbe1c8f
      kalyani chidambaram authored
      
      
      armclang displays warnings for extra parentheses, leading to
      build failures as warnings are treated as errors.
      This patch removes the extra parentheses to fix this issue.
      
      Change-Id: Id2fd6a3086590436eecabc55502f40752a018131
      Signed-off-by: default avatarKalyani Chidambaram <kalyanic@nvidia.com>
      6dbe1c8f
    • Masahiro Yamada's avatar
      Factor xlat_table sections in linker scripts out into a header file · 665e71b8
      Masahiro Yamada authored
      
      
      TF-A has so many linker scripts, at least one linker script for each BL
      image, and some platforms have their own ones. They duplicate quite
      similar code (and comments).
      
      When we add some changes to linker scripts, we end up with touching
      so many files. This is not nice in the maintainability perspective.
      
      When you look at Linux kernel, the common code is macrofied in
      include/asm-generic/vmlinux.lds.h, which is included from each arch
      linker script, arch/*/kernel/vmlinux.lds.S
      
      TF-A can follow this approach. Let's factor out the common code into
      include/common/bl_common.ld.h
      
      As a start point, this commit factors out the xlat_table section.
      
      Change-Id: Ifa369e9b48e8e12702535d721cc2a16d12397895
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      665e71b8
  2. 10 Mar, 2020 1 commit
  3. 09 Mar, 2020 10 commits
  4. 06 Mar, 2020 5 commits
  5. 05 Mar, 2020 3 commits
  6. 04 Mar, 2020 1 commit
    • Manish Pandey's avatar
      SPMD: loading Secure Partition payloads · cb3b5344
      Manish Pandey authored
      
      
      This patch implements loading of Secure Partition packages using
      existing framework of loading other bl images.
      
      The current framework uses a statically defined array to store all the
      possible image types and at run time generates a link list and traverse
      through it to load different images.
      
      To load SPs, a new array of fixed size is introduced which will be
      dynamically populated based on number of SPs available in the system
      and it will be appended to the loadable images list.
      
      Change-Id: I8309f63595f2a71b28a73b922d20ccba9c4f6ae4
      Signed-off-by: default avatarManish Pandey <manish.pandey2@arm.com>
      cb3b5344
  7. 03 Mar, 2020 4 commits
  8. 02 Mar, 2020 1 commit
    • Leo Yan's avatar
      hikey960: Enable system power off callback · cfde1870
      Leo Yan authored
      
      
      On Hikey960 if outputs GPIO176 low level, it can tell PMIC to power off
      the whole board.  To avoid resetting the board and stay off, it also
      requires the SW2201's three switches 1/2/3 need to be all set to 0.
      
      Since current code doesn't contain complete GPIO modules and misses to
      support GPIO176.  This patch adds all known GPIO modules and initialize
      GPIO in BL31, and adds system power off callback to use GPIO176 for PMIC
      power off operation.
      
      Change-Id: Ia88859b8b7c87c061420ef75f0de3e2768667bb0
      Signed-off-by: default avatarLeo Yan <leo.yan@linaro.org>
      cfde1870
  9. 27 Feb, 2020 2 commits
  10. 26 Feb, 2020 1 commit
    • Masahiro Yamada's avatar
      uniphier: prepare uniphier_soc_info() for next SoC · dd53cfe1
      Masahiro Yamada authored
      
      
      The revision register address will be changed in the next SoC.
      
      The LSI revision is needed in order to know where the revision
      register is located, but you need to read out the revision
      register for that. This is impossible.
      
      We need to know the revision register address by other means.
      Use BL_CODE_BASE, where the base address of the TF image that is
      currently running. If it is bigger than 0x80000000 (i.e. the DRAM
      base is 0x80000000), we assume it is a legacy SoC.
      
      Change-Id: I9d7f4325fe2085a8a1ab5310025e5948da611256
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      dd53cfe1
  11. 25 Feb, 2020 3 commits
    • Alexei Fedorov's avatar
      FVP: Fix incorrect GIC mapping · b3c431f3
      Alexei Fedorov authored
      
      
      This patch fixes incorrect setting for DEVICE1_SIZE
      for FVP platforms with more than 8 PEs.
      The current value of 0x200000 supports only 8 PEs
      and causes exception for FVP platforms with the greater
      number of PEs, e.g. FVP_Base_Cortex_A65AEx8 with 16 PEs
      in one cluster.
      
      Change-Id: Ie6391509fe6eeafb8ba779303636cd762e7d21b2
      Signed-off-by: default avatarAlexei Fedorov <Alexei.Fedorov@arm.com>
      b3c431f3
    • Ahmad Fatoum's avatar
      stm32mp1: platform.mk: support generating multiple images in one build · e772a6d1
      Ahmad Fatoum authored
      
      
      Board Support for the stm32mp1 platform is contained in the device tree,
      so if we remove hardcoding of board name from the Makefile, we can build
      the intermediary objects once and generate one new tf-a-*.stm32 binary
      for every device tree specified. All in one go.
      
      With implicit rules implemented, we only need to change the top level
      target to support multi-image builds on the stm32mp1.
      
      Change-Id: I4cae7d32a4c03a3c29c559dc5332e002223902c1
      Signed-off-by: default avatarAhmad Fatoum <a.fatoum@pengutronix.de>
      e772a6d1
    • Ahmad Fatoum's avatar
      stm32mp1: platform.mk: migrate to implicit rules · a3db33fd
      Ahmad Fatoum authored
      
      
      Board Support for the stm32mp1 platform is contained in the device tree,
      so if we remove hardcoding of board name from the Makefile, we can build
      the intermediary objects once and generate one new tf-a-*.stm32 binary
      for every device tree specified. All in one go.
      
      Prepare for this by employing implicit rules.
      
      Change-Id: I5a022a89eb12696cd8cee7bf28ac6be54849901f
      Signed-off-by: default avatarAhmad Fatoum <a.fatoum@pengutronix.de>
      a3db33fd