1. 19 Mar, 2020 1 commit
    • Varun Wadekar's avatar
      Tegra186: disable PROGRAMMABLE_RESET_ADDRESS · 8336c94d
      Varun Wadekar authored
      
      
      This patch disables the code to program reset vector for secondary
      CPUs to a different entry point, than cold boot. The cold boot entry
      point has the ability to differentiate between a cold boot and a warm
      boot, that is controlled by the PROGRAMMABLE_RESET_ADDRESS macro. By
      reusing the same entry point, we can lock the CPU reset vector during
      cold boot.
      
      Change-Id: Iad400841d57c139469e1d29b5d467197e11958c4
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      8336c94d
  2. 09 Mar, 2020 2 commits
    • Jeetesh Burman's avatar
      Tegra186: add SE support to generate SHA256 of TZRAM · 4eed9c84
      Jeetesh Burman authored
      
      
      The BL3-1 firmware code is stored in TZSRAM on Tegra186 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 SE SHA256 hash-result to PMC scratch registers.
      
      Change-Id: Ib487d5629225d3d99bd35d44f0402d6d3cf27ddf
      Signed-off-by: default avatarJeetesh Burman <jburman@nvidia.com>
      4eed9c84
    • Jeetesh Burman's avatar
      Tegra186: add support for bpmp_ipc driver · 3827aa8a
      Jeetesh Burman authored
      
      
      This patch enables the bpmp-ipc driver for Tegra186 platforms,
      to ask BPMP firmware to toggle SE clock.
      
      Change-Id: Ie63587346c4d9b7e54767dbee17d0139fa2818ae
      Signed-off-by: default avatarJeetesh Burman <jburman@nvidia.com>
      3827aa8a
  3. 20 Feb, 2020 2 commits
  4. 05 Feb, 2019 2 commits
  5. 23 Jan, 2019 3 commits
  6. 18 Jan, 2019 3 commits
  7. 03 May, 2017 1 commit
  8. 13 Apr, 2017 2 commits
  9. 07 Apr, 2017 5 commits
  10. 30 Mar, 2017 1 commit
    • Varun Wadekar's avatar
      Tegra186: handlers to get BL31 arguments from previous bootloader · 48afb167
      Varun Wadekar authored
      
      
      This patch overrides the default handlers to get BL31 arguments from the
      previous bootloader. The previous bootloader stores the pointer to the
      arguments in PMC secure scratch register #53.
      
      BL31 is the first component running on the CPU, as there isn't a previous
      bootloader. We set the RESET_TO_BL31 flag to enable the path which assumes
      that there are no input parameters passed by the previous bootloader.
      
      Change-Id: Idacc1df292a70c9c1cb4d5c3a774bd796175d5e8
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      48afb167
  11. 23 Mar, 2017 3 commits
    • Varun Wadekar's avatar
      Tegra186: mce: enable LATIC for chip verification · 66ec1125
      Varun Wadekar authored
      
      
      This patch adds a new interface to allow for making an ARI call that
      will enable LATIC for the chip verification software harness.
      
      LATIC allows some MINI ISMs to be read in the CCPLEX. The ISMs are
      used for various measurements relevant ot particular locations in
      Silicon. They are small counters which can be polled to determine
      how fast a particular location in the Silicon is.
      
      Original change by Guy Sotomayor <gsotomayor@nvidia.com>
      
      Change-Id: Ifb49b8863a009d4cdd5d1ba38a23b5374500a4b3
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      66ec1125
    • Varun Wadekar's avatar
      Tegra186: save/restore BL31 context to/from TZDRAM · 68c7de6f
      Varun Wadekar authored
      
      
      This patch adds support to save the BL31 state to the TZDRAM
      before entering system suspend. The TZRAM loses state during
      system suspend and so we need to copy the entire BL31 code to
      TZDRAM before entering the state.
      
      In order to restore the state on exiting system suspend, a new
      CPU reset handler is implemented which gets copied to TZDRAM
      during boot. TO keep things simple we use this same reset handler
      for booting secondary CPUs too.
      
      Change-Id: I770f799c255d22279b5cdb9b4d587d3a4c54fad7
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      68c7de6f
    • Varun Wadekar's avatar
      Tegra186: re-configure MSS' client settings · e64ce3ab
      Varun Wadekar authored
      
      
      This patch reprograms MSS to make ROC deal with ordering of
      MC traffic after boot and system suspend exit. This is needed
      as device boots with MSS having all control but POR wants ROC
      to deal with the ordering. Performance is expected to improve
      with ROC but since no one has really tested the performance,
      keep the option configurable for now by introducing a platform
      level makefile variable.
      
      Change-Id: I2e782fea138ccf9d281eb043a6b2c3bb97c839a7
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      e64ce3ab
  12. 22 Mar, 2017 2 commits
    • Varun Wadekar's avatar
      Tegra186: implement support for System Suspend · 50402b17
      Varun Wadekar authored
      
      
      This patch adds the chip level support for System Suspend entry
      and exit. As part of the entry sequence we first query the MCE
      firmware to check if it is safe to enter system suspend. Once
      we get a green light, we save hardware block settings and enter
      the power state. As expected, all the hardware settings are
      restored once we exit the power state.
      
      Change-Id: I6d192d7568d6a555eb10efdfd45f6d79c20f74ea
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      50402b17
    • Varun Wadekar's avatar
      Tegra186: smmu: driver for the smmu hardware block · 4122151f
      Varun Wadekar authored
      
      
      This patch adds a device driver for the SMMU hardware block on
      Tegra186 SoCs. We use the generic ARM SMMU-500 IP block on
      Tegra186. The driver only supports saving the SMMU settings
      before entering system suspend. The MC driver and the NS world
      clients take care of programming their own settings.
      
      Change-Id: Iab5a90310ee10f6bc8745451ce50952ab3de7188
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      4122151f
  13. 20 Mar, 2017 4 commits
    • Varun Wadekar's avatar
      Tegra: memctrl_v2: check GPU state before VPR programming · 67bc721b
      Varun Wadekar authored
      
      
      The GPU is the real consumer of the video protected memory region
      and it needs to be in reset to pick up the new region.
      
      This patch checks if the GPU is in reset before we program the new
      video protected memory region settings.
      
      Change-Id: I44f553bfcf07b1975abad53b245954be966c8aeb
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      67bc721b
    • Varun Wadekar's avatar
      Tegra186: relocate bl31.bin to the SYSRAM · b5ef9569
      Varun Wadekar authored
      
      
      Tegra186 has an on-die, 320KB, "System RAM" memory. Out of the total
      size, 256KB are allocated for the CPU TrustZone binaries - EL3 monitor
      and Trusted OS.
      
      This patch changes the base address for bl31.bin to the SysRAM base
      address. The carveout is too small for the Trusted OS, so we relocate
      only the monitor binary.
      
      Change-Id: Ib4b667ff2a7a619589851338f9d0bfb02078c575
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      b5ef9569
    • Varun Wadekar's avatar
      Tegra186: mce: driver for the CPU complex power manager block · 7808b06b
      Varun Wadekar authored
      
      
      The CPU Complex (CCPLEX) Power Manager (Denver MCE, or DMCE) is an
      offload engine for BPMP to do voltage related sequencing and for
      hardware requests to be handled in a better latency than BPMP-firmware.
      
      There are two interfaces to the MCEs - Abstract Request Interface (ARI)
      and the traditional NVGINDEX/NVGDATA interface.
      
      MCE supports various commands which can be used by CPUs - ARM as well
      as Denver, for power management and reset functionality. Since the
      linux kernel is the master for all these scenarios, each MCE command
      can be issued by a corresponding SMC. These SMCs have been moved to
      SiP SMC space as they are specific to the Tegra186 SoC.
      
      Change-Id: I67bee83d2289a8ab63bc5556e5744e5043803e51
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      7808b06b
    • Varun Wadekar's avatar
      Tegra186: platform support for Tegra "T186" SoC · 3cf3183f
      Varun Wadekar authored
      
      
      Tegra186 is the newest SoC in the Tegra family which consists
      of two CPU clusters - Denver and A57. The Denver cluster hosts
      two next gen Denver15 CPUs while the A57 cluster hosts four ARM
      Cortex-A57 CPUs. Unlike previous Tegra generations, all the six
      cores on this SoC would be available to the system at the same
      time and individual clusters can be powered down to conserve
      power.
      
      Change-Id: Id0c9919dbf5186d2938603e0b11e821b5892985e
      Signed-off-by: default avatarWayne Lin <wlin@nvidia.com>
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      3cf3183f
  14. 22 Feb, 2017 5 commits
  15. 31 Jul, 2015 1 commit
  16. 24 Jul, 2015 2 commits
  17. 17 Jul, 2015 1 commit