1. 20 Mar, 2017 7 commits
    • 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: implement prepare_system_off handler · c7ec0892
      Varun Wadekar authored
      
      
      This patch issues the 'System Off' ARI to power off the entire
      system from the 'prepare_system_off' handler.
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      c7ec0892
    • Varun Wadekar's avatar
      Tegra186: power on/off secondary CPUs · b47d97b3
      Varun Wadekar authored
      
      
      This patch add code to power on/off the secondary CPUs on the Tegra186
      chip. The MCE block is the actual hardware that takes care of the
      power on/off sequence. We pass the constructed CPU #, depending on the
      MIDR_IMPL field, to the MCE CPU handlers.
      
      This patch also programs the reset vector addresses to allow the
      CPUs to power on through the monitor and then jump to the linux
      world.
      
      Change-Id: Idc164586cda91c2009d66f3e09bf4464de9662db
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      b47d97b3
    • Varun Wadekar's avatar
      Tegra186: SiP calls to interact with the MCE driver · bb844c1f
      Varun Wadekar authored
      
      
      This patch adds the new SiP SMC calls to allow the NS world to
      interact with the MCE hardware block on Tegra186 chips.
      
      Change-Id: I79c6b9f76d68a87abd57a940613ec070562d2eac
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      bb844c1f
    • 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
    • Andre Przywara's avatar
      plat/tegra: Enable Cortex-A53 erratum 855873 workaround · baac5dd4
      Andre Przywara authored
      
      
      The NVidia Tegra 210 SoC contains Cortex-A53 CPUs which are affected by
      erratum 855873.
      
      Enable the workaround that TF provides to fix this erratum.
      
      Change-Id: I6cef4ac60ae745e9ce299ee22c93b9d2c4f6c5f2
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      baac5dd4
  2. 07 Mar, 2017 1 commit
    • Varun Wadekar's avatar
      Tegra210: enable errata for Cortex-A57 and Cortex-A53 CPUs · 1f38d3c9
      Varun Wadekar authored
      
      
      This patch enables the following erratas for the Tegra210 SoC:
      
      * Cortex-A57
      =============
      - A57_DISABLE_NON_TEMPORAL_HINT
      - ERRATA_A57_826974
      - ERRATA_A57_826977
      - ERRATA_A57_828024
      - ERRATA_A57_829520
      - ERRATA_A57_833471
      
      * Cortex-A53
      =============
      - A53_DISABLE_NON_TEMPORAL_HINT
      - ERRATA_A53_826319
      - ERRATA_A53_836870
      
      Tegra210 uses Cortex-A57 revision: r1p1 and Cortex-A53 revision: r0p2.
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      1f38d3c9
  3. 02 Mar, 2017 3 commits
  4. 28 Feb, 2017 1 commit
    • Varun Wadekar's avatar
      Tegra: GIC: enable FIQ interrupt handling · d3360301
      Varun Wadekar authored
      
      
      Tegra chips support multiple FIQ interrupt sources. These interrupts
      are enabled in the GICD/GICC interfaces by the tegra_gic driver. A
      new FIQ handler would be added in a subsequent change which can be
      registered by the platform code.
      
      This patch adds the GIC programming as part of the tegra_gic_setup()
      which now takes an array of all the FIQ interrupts to be enabled for
      the platform. The Tegra132 and Tegra210 platforms right now do not
      register for any FIQ interrupts themselves, but will definitely use
      this support in the future.
      
      Change-Id: I0ea164be901cd6681167028fea0567399f18d4b8
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      d3360301
  5. 23 Feb, 2017 4 commits
  6. 22 Feb, 2017 6 commits
  7. 20 May, 2016 1 commit
  8. 21 Apr, 2016 1 commit
    • Yatharth Kochar's avatar
      Move `plat_get_syscnt_freq()` to arm_common.c · c073fda1
      Yatharth Kochar authored
      This patch moves the definition for `plat_get_syscnt_freq()`
      from arm_bl31_setup.c to arm_common.c. This could be useful
      in case a delay timer needs to be installed based on the
      generic timer in other BLs.
      This patch also modifies the return type for this function
      from `uint64_t` to `unsigned long long` within ARM and other
      platform files.
      
      Change-Id: Iccdfa811948e660d4fdcaae60ad1d700e4eda80d
      c073fda1
  9. 04 Dec, 2015 1 commit
  10. 10 Nov, 2015 1 commit
  11. 24 Aug, 2015 1 commit
    • Varun Wadekar's avatar
      Tegra210: wait for 512 timer ticks before retention entry · b42192bc
      Varun Wadekar authored
      
      
      This patch programs the CPUECTLR_EL1 and L2ECTLR_EL1 registers,
      so that the core waits for 512 generic timer CNTVALUEB ticks before
      entering retention state, after executing a WFI instruction.
      
      This functionality is configurable and can be enabled for platforms
      by setting the newly defined 'ENABLE_L2_DYNAMIC_RETENTION' and
      'ENABLE_CPU_DYNAMIC_RETENTION' flag.
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      b42192bc
  12. 31 Jul, 2015 1 commit
  13. 27 Jul, 2015 1 commit
    • Varun Wadekar's avatar
      Tegra210: enable WRAP to INCR burst type conversions · 42ca2d86
      Varun Wadekar authored
      
      
      The Memory Select Switch Controller routes any CPU transactions to
      the appropriate slave depending on the transaction address. During
      system suspend, it loses all config settings and hence the CPU has
      to restore them during resume.
      
      This patch restores the controller's settings for enabling WRAP to
      INCR burst type conversions on the master ports, for any incoming
      requests from the AXI slave ports.
      
      Tested by performing multiple system suspend cycles.
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      42ca2d86
  14. 24 Jul, 2015 3 commits
  15. 17 Jul, 2015 3 commits
  16. 06 Jul, 2015 1 commit
  17. 29 May, 2015 1 commit
    • Varun Wadekar's avatar
      Support for NVIDIA's Tegra T210 SoCs · 08438e24
      Varun Wadekar authored
      
      
      T210 is the latest chip in the Tegra family of SoCs from NVIDIA. It is an
      ARM v8 dual-cluster (A57/A53) SoC, with any one of the clusters being active
      at a given point in time.
      
      This patch adds support to boot the Trusted Firmware on T210 SoCs. The patch
      also adds support to boot secondary CPUs, enter/exit core power states for
      all CPUs in the slow/fast clusters. The support to switch between clusters
      is still not available in this patch and would be available later.
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      08438e24