1. 09 Mar, 2020 1 commit
    • Harvey Hsieh's avatar
      Tegra210: SE: add context save support · 41554fb2
      Harvey Hsieh authored
      
      
      Tegra210B01 SoCs support atomic context save for the two SE
      hardware engines. Tegra210 SoCs have support for only one SE
      engine and support a software based save/restore mechanism
      instead.
      
      This patch updates the SE driver to make this change.
      
      Change-Id: Ia5e5ed75d0fe011f17809684bbc2ed2338925946
      Signed-off-by: default avatarHarvey Hsieh <hhsieh@nvidia.com>
      41554fb2
  2. 20 Feb, 2020 2 commits
    • kalyani chidambaram's avatar
      Tegra210: secure PMC hardware block · 37f76024
      kalyani chidambaram authored
      
      
      This patch sets the "secure" bit to mark the PMC hardware block
      as accessible only from the secure world. This setting must be
      programmed during cold boot and System Resume.
      
      The sc7entry-fw, running on the COP, needs access to the PMC block
      to enter System Suspend state, so "unlock" the PMC block before
      passing control to the COP.
      
      Change-Id: I00e39a49ae6b9f8c8eafe0cf7ff63fe6a67fdccf
      Signed-off-by: default avatarkalyani chidambaram <kalyanic@nvidia.com>
      37f76024
    • kalyani chidambaram's avatar
      Tegra210: resume PMC hardware block for all platforms · 3414bad8
      kalyani chidambaram authored
      
      
      The PMC hardware block resume handler was called for Tegra210
      platforms, only if the sc7entry-fw was present on the device.
      This would cause problems for devices that do not support this
      firmware.
      
      This patch fixes this logic and resumes the PMC block even if
      the sc7entry-fw is not present on the device.
      
      Change-Id: I6f0eb7878126f624ea98392f583ed45a231d27db
      Signed-off-by: default avatarKalyani Chidambaram <kalyanic@nvidia.com>
      3414bad8
  3. 31 Jan, 2020 2 commits
  4. 03 Apr, 2019 1 commit
  5. 31 Jan, 2019 10 commits
    • Varun Wadekar's avatar
      Tegra: restrict non-secure PMC accesses · a01b0f16
      Varun Wadekar authored
      
      
      Platforms that do not support bpmp firmware, do not need access
      to the PMC block from outside of the CPU complex. The agents
      running on the CPU can always access the PMC through the EL3
      exception space.
      
      This patch restricts non-secure world access to the PMC block on
      such platforms.
      
      Change-Id: I2c4318dc07ddf6407c1700595e0f4aac377ba258
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      a01b0f16
    • Varun Wadekar's avatar
      Tegra210: toggle ring oscillator across cluster idle · 6a397d1d
      Varun Wadekar authored
      
      
      This patch toggles the ring oscillator state across cluster idle
      as DFLL loses its state. We dont want garbage values being written
      to the pmic when we enter cluster idle state, so enable "open loop"
      when we enter CC6 and restore the state to "closed loop" on exit.
      
      Change-Id: I56f4649f57bcc651d6c415a6dcdc978e9444c97b
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      6a397d1d
    • kalyani chidambaram's avatar
      Tegra210: clear PMC_DPD registers on resume · da0f4743
      kalyani chidambaram authored
      
      
      This patch clears the PMC's DPD registers on resuming from System
      Suspend, for all Tegra210 platforms that support the sc7entry-fw.
      
      Change-Id: I7881ef0a5f609ed28b158bc2f4016abea3c7f305
      Signed-off-by: default avatarkalyani chidambaram <kalyanic@nvidia.com>
      da0f4743
    • Varun Wadekar's avatar
      Tegra210: suspend/resume bpmp interface across System Suspend · e275ae7a
      Varun Wadekar authored
      
      
      The BPMP firmware takes some time to initialise its state on exiting
      System Suspend state. The CPU needs to synchronize with the BPMP during
      this process to avoid any race conditions. This patch suspends and resumes
      the BPMP interface across a System Suspend cycle, to fix this race.
      
      Change-Id: I82a61d12ef3eee267bdd8d4386bed23397fbfd2d
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      e275ae7a
    • Varun Wadekar's avatar
      Tegra210: skip past sc7entry-fw signature header · c33473d5
      Varun Wadekar authored
      
      
      This patch skips past the signature header added to the sc7entry-fw
      binary by the previous level bootloader. Currently, the size of
      the header is 1KB, so adjust the start address and the binary size
      at the time of copy.
      
      Change-Id: Id0494548009749035846d54df417a960c640c8f9
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      c33473d5
    • Varun Wadekar's avatar
      Tegra210: move sc7entry-fw inside the TZDRAM fence · 7350277b
      Varun Wadekar authored
      
      
      This patch uses the sc7entry-fw base/size values to calculate the
      TZDRAM fence, so as to move sc7entry-fw inside the TZDRAM fence.
      
      Change-Id: I91aeeeece857076c478cdc4c18a6ad70dc265031
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      7350277b
    • Varun Wadekar's avatar
      Tegra210: power off all DMA masters before System Suspend entry · 2d5560f9
      Varun Wadekar authored
      
      
      This patch puts all the DMA masters in reset before starting the System
      Suspend sequence. This helps us make sure that there are no rogue agents
      in the system trying to over-write the SC7 Entry Firmware with their own.
      
      Change-Id: I7eb39999d229951e612fbfeb9f86c4efb8f98b5a
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      2d5560f9
    • Varun Wadekar's avatar
      Tegra: support for System Suspend using sc7entry-fw binary · 3ca3c27c
      Varun Wadekar authored
      
      
      This patch adds support to enter System Suspend on Tegra210 platforms
      without the traditional BPMP firmware. The BPMP firmware will no longer
      be supported on Tegra210 platforms and its functionality will be
      divided across the CPU and sc7entry-fw.
      
      The sc7entry-fw takes care of performing the hardware sequence required
      to enter System Suspend (SC7 power state) from the COP. The CPU is required
      to load this firmware to the internal RAM of the COP and start the sequence.
      The CPU also make sure that the COP is off after cold boot and is only
      powered on when we want to start the actual System Suspend sequence.
      
      The previous bootloader loads the firmware to TZDRAM and passes its base and
      size as part of the boot parameters. The EL3 layer is supposed to sanitize
      the parameters before touching the firmware blob.
      
      To assist the warmboot code with the PMIC discovery, EL3 is also supposed to
      program PMC's scratch register #210, with appropriate values. Without these
      settings the warmboot code wont be able to get the device out of System
      Suspend.
      
      Change-Id: I5a7b868512dbfd6cfefd55acf3978a1fd7ebf1e2
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      3ca3c27c
    • Varun Wadekar's avatar
      Tegra210: remove support for cluster power down · 93e3b0f3
      Varun Wadekar authored
      
      
      This patch removes support for powering down a CPU cluster on
      Tegra210 platforms as none of them actually use it.
      
      Change-Id: I9665634cf2b5b7b8a1b5a2700cae152dc9165fe3
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      93e3b0f3
    • Varun Wadekar's avatar
      Tegra210: support for cluster idle from the CPU · 7db077f2
      Varun Wadekar authored
      
      
      This patch adds support to enter/exit to/from cluster idle power
      state on Tegra210 platforms that do not load BPMP firmware.
      
      The CPU initates the cluster idle sequence on the last standing
      CPU, by following these steps:
      
      Entry
      -----
      * stop other CPUs from waking up
      * program the PWM pinmux to tristate for OVR PMIC
      * program the flow controller to enter CC6 state
      * skip L1 $ flush during cluster power down, as L2 $ is inclusive
        of L1 $ on Cortex-A57 CPUs
      
      Exit
      ----
      * program the PWM pinmux to un-tristate for OVR PMIC
      * allow other CPUs to wake up
      
      This patch also makes sure that cluster idle state entry is not
      enabled until CL-DVFS is ready.
      
      Change-Id: I54cf31bf72b4a09d9bf9d2baaed6ee5a963c7808
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      7db077f2
  6. 23 Jan, 2019 1 commit
  7. 18 Jan, 2019 1 commit
    • Harvey Hsieh's avatar
      Tegra210: save TZSRAM context from the "_wfi" handler · e680a397
      Harvey Hsieh authored
      
      
      This patch saves the TZSRAM context and takes the SoC into System Suspend
      from the "_wfi" handler. This helps us save the entire CPU context from
      the TZSRAM, before entering System Suspend. In the previous implementation
      we missed saving some part of the state machine context leading to an assert
      on System Suspend exit.
      
      Change-Id: I4895a8b4a5e3c3e983c245746ea388e42da8229c
      Signed-off-by: default avatarHarvey Hsieh <hhsieh@nvidia.com>
      e680a397
  8. 16 Jan, 2019 3 commits
    • Sam Payne's avatar
      Tegra210: Enable ECC reporting for B01 SKUs · 53ea1585
      Sam Payne authored
      
      
      This patch enables L2 error correction and parity protection
      for Tegra210 on boot and exit from suspend. The previous bootloader
      sets the boot parameter, indicating ECC reporting, only for B01 SKUs.
      
      Change-Id: I6927884d375a64c69e2f1e9aed85f95c5e3cb17c
      Signed-off-by: default avatarSam Payne <spayne@nvidia.com>
      53ea1585
    • Varun Wadekar's avatar
      Tegra210: bpmp: power management interface · dd1a71f1
      Varun Wadekar authored
      
      
      This patch adds the driver to communicate with the BPMP processor
      for power management use cases. BPMP controls the entry into cluster
      and system power states. The Tegra210 platform port queries the BPMP
      to calculate the target state for the cluster. In case BPMP does not
      allow CCx entry, the core enters a power down state.
      
      Change-Id: I9c40aef561607a0b02c49b7f8118570eb9105cc9
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      dd1a71f1
    • Marvin Hsu's avatar
      Tegra210B01: SE1 and SE2/PKA1 context save (atomic) · ce3c97c9
      Marvin Hsu authored
      
      
      This patch adds the implementation of the SE atomic context save
      sequence. The atomic context-save consistently saves to the TZRAM
      carveout; thus there is no need to declare context save buffer or
      map MMU region in TZRAM for context save. The atomic context-save
      routine is responsible to validate the context-save progress
      counter, where CTX_SAVE_CNT=133(SE1)/646(SE2), and the SE error
      status to ensure the context save procedure complete successfully.
      
      Change-Id: Ic80843902af70e76415530266cb158f668976c42
      Signed-off-by: default avatarMarvin Hsu <marvinh@nvidia.com>
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      ce3c97c9
  9. 04 Jan, 2019 1 commit
    • Antonio Nino Diaz's avatar
      Sanitise includes across codebase · 09d40e0e
      Antonio Nino Diaz authored
      Enforce full include path for includes. Deprecate old paths.
      
      The following folders inside include/lib have been left unchanged:
      
      - include/lib/cpus/${ARCH}
      - include/lib/el3_runtime/${ARCH}
      
      The reason for this change is that having a global namespace for
      includes isn't a good idea. It defeats one of the advantages of having
      folders and it introduces problems that are sometimes subtle (because
      you may not know the header you are actually including if there are two
      of them).
      
      For example, this patch had to be created because two headers were
      called the same way: e0ea0928 ("Fix gpio includes of mt8173 platform
      to avoid collision."). More recently, this patch has had similar
      problems: 46f9b2c3 ("drivers: add tzc380 support").
      
      This problem was introduced in commit 4ecca339
      
       ("Move include and
      source files to logical locations"). At that time, there weren't too
      many headers so it wasn't a real issue. However, time has shown that
      this creates problems.
      
      Platforms that want to preserve the way they include headers may add the
      removed paths to PLAT_INCLUDES, but this is discouraged.
      
      Change-Id: I39dc53ed98f9e297a5966e723d1936d6ccf2fc8f
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      09d40e0e
  10. 14 Jul, 2017 1 commit
  11. 14 Jun, 2017 1 commit
  12. 03 May, 2017 1 commit
  13. 01 May, 2017 1 commit
  14. 02 Mar, 2017 2 commits
  15. 23 Feb, 2017 2 commits
  16. 04 Dec, 2015 1 commit
  17. 10 Nov, 2015 1 commit
  18. 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
  19. 24 Jul, 2015 1 commit
  20. 17 Jul, 2015 1 commit
  21. 06 Jul, 2015 1 commit
  22. 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