1. 10 Sep, 2020 1 commit
  2. 09 Aug, 2020 1 commit
  3. 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
  4. 19 Jun, 2020 1 commit
  5. 20 May, 2020 1 commit
    • Varun Wadekar's avatar
      Tegra: enable SDEI handling · d886628d
      Varun Wadekar authored
      
      
      This patch enables SDEI support for all Tegra platforms, with
      the following configuration settings.
      
      * SGI 8 as the source IRQ
      * Special Private Event 0
      * Three private, dynamic events
      * Three shared, dynamic events
      * Twelve general purpose explicit events
      
      Verified using TFTF SDEI test suite.
      
      ******************************* Summary *******************************
       Test suite 'SDEI'                                               Passed
       =================================
       Tests Skipped : 0
       Tests Passed  : 5
       Tests Failed  : 0
       Tests Crashed : 0
       Total tests   : 5
       =================================
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      Change-Id: I1922069931a7876a4594e53260ee09f2e4f09390
      d886628d
  6. 17 May, 2020 1 commit
  7. 22 Mar, 2020 1 commit
  8. 19 Mar, 2020 1 commit
  9. 31 Jan, 2020 1 commit
  10. 15 Aug, 2019 1 commit
  11. 01 Mar, 2019 1 commit
    • Varun Wadekar's avatar
      Tegra: dummy support for the io_storage backend · 8d56e24b
      Varun Wadekar authored
      
      
      This patch provides dummy macros and platform files to compile
      the io_storage driver backend. This patch is necessary to
      remove the "--unresolved=el3_panic" linker flag from Tegra's
      makefiles and allow us to revert this workaround, previously
      suggested by the ARM toolchain team.
      
      The "--unresolved=el3_panic" flag actually was a big hammer that
      allowed Tegra platforms to work with armlink previously but it
      masks legit errors with the code as well.
      
      Change-Id: I0421d35657823215229f84231896b84167f90548
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      8d56e24b
  12. 23 Jan, 2019 1 commit
  13. 18 Jan, 2019 1 commit
    • Varun Wadekar's avatar
      Tegra: lib: library for profiling the cold boot path · 087cf68a
      Varun Wadekar authored
      
      
      The non secure world would like to profile the boot path for
      the EL3 and S-EL1 firmwares. To allow it to do that, a non-secure
      DRAM region (4K) is allocated and the base address is passed to
      the EL3 firmware.
      
      This patch adds a library to allow the platform code to store the
      tag:timestamp pair to the shared memory. The tegra platform code
      then uses the `record` method to add timestamps.
      
      Original change by Akshay Sharan <asharan@nvidia.com>
      
      Change-Id: Idbbef9c83ed84a508b04d85a6637775960dc94ba
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      087cf68a
  14. 18 Dec, 2018 2 commits
  15. 28 Sep, 2018 1 commit
  16. 03 May, 2017 1 commit
  17. 26 Apr, 2017 1 commit
  18. 10 Apr, 2017 1 commit
    • Varun Wadekar's avatar
      Tegra: memctrl_v1: enable 'xlat_table_v2' library · c05a2197
      Varun Wadekar authored
      
      
      This patch enables the 'xlat_table_v2' library for the Tegra Memory
      Controller driver. This library allows us to dynamically map/unmap
      memory regions, with MMU enabled.
      
      The Memory Controller driver maps/unmaps non-overlapping Video Memory
      region, to clean it of any secure contents, before it resizes the
      region.
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      c05a2197
  19. 20 Mar, 2017 1 commit
  20. 03 Mar, 2017 1 commit
  21. 02 Mar, 2017 1 commit
  22. 28 Feb, 2017 3 commits
    • Varun Wadekar's avatar
      Tegra: implement FIQ interrupt handler · 78e2bd10
      Varun Wadekar authored
      
      
      This patch adds a handler for FIQ interrupts triggered when
      the CPU is in the NS world. The handler stores the NS world's
      context along with ELR_EL3/SPSR_EL3.
      
      The NS world driver issues an SMC initially to register it's
      handler. The monitor firmware stores this handler address and
      jumps to it when the FIQ interrupt fires. Upon entry into the
      NS world the driver then issues another SMC to get the CPU
      context when the FIQ fired. This allows the NS world driver to
      determine the CPU state and call stack when the interrupt
      fired. Generally, systems register watchdog interrupts as FIQs
      which are then used to get the CPU state during hangs/crashes.
      
      Change-Id: I733af61a08d1318c75acedbe9569a758744edd0c
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      78e2bd10
    • 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
    • Varun Wadekar's avatar
      Tegra: implement common handler `plat_get_target_pwr_state()` · 2693f1db
      Varun Wadekar authored
      
      
      This patch adds a platform handler to calculate the proper target power
      level at the specified affinity level.
      
      Tegra platforms assign a local state value in order of decreasing depth
      of the power state i.e. for two power states X & Y, if X < Y then X
      represents a shallower power state than Y. As a result, the coordinated
      target local power state for a power domain will be the maximum of the
      requested local power state values.
      
      Change-Id: I67360684b7f5b783fcfdd605b96da5375fa05417
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      2693f1db
  23. 23 Feb, 2017 1 commit
  24. 22 Feb, 2017 3 commits
  25. 09 Aug, 2016 1 commit
  26. 19 Jul, 2016 1 commit
    • Soby Mathew's avatar
      Include `plat_psci_common.c` from the new location · bb2162f1
      Soby Mathew authored
      The `plat_psci_common.c` was moved to the new location `plat/common`
      and a stub file was retained at previous location for compatibility. This
      patch modifies the platform makefiles to include the file from the new
      location.
      
      Change-Id: Iabddeeb824e9a5d72d176d7c644735966c8c0699
      bb2162f1
  27. 13 Apr, 2016 1 commit
    • Soby Mathew's avatar
      Migrate platform ports to the new xlat_tables library · 3e4b8fdc
      Soby Mathew authored
      This patch modifies the upstream platform port makefiles to use the new
      xlat_tables library files. This patch also makes mmap region setup common
      between AArch64 and AArch32 for FVP platform port. The file `fvp_common.c`
      is moved from the `plat/arm/board/fvp/aarch64` folder to the parent folder
      as it is not specific to AArch64.
      
      Change-Id: Id2e9aac45e46227b6f83cccfd1e915404018ea0b
      3e4b8fdc
  28. 04 Dec, 2015 1 commit
  29. 24 Jul, 2015 1 commit
  30. 17 Jul, 2015 2 commits
  31. 22 Jun, 2015 1 commit
    • Varun Wadekar's avatar
      Add missing features to the Tegra GIC driver · e1e094c7
      Varun Wadekar authored
      
      
      In order to handle secure/non-secure interrupts, overload the plat_ic_*
      functions and copy GIC helper functions from arm_gic.c. Use arm_gic.c
      as the reference to add Tegra's GIC helper functions.
      
      Now that Tegra has its own GIC implementation, we have no use for
      plat_gic.c and arm_gic.c files.
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      e1e094c7
  32. 12 Jun, 2015 1 commit
    • Varun Wadekar's avatar
      Reserve a Video Memory aperture in DRAM memory · 9a964510
      Varun Wadekar authored
      
      
      This patch adds support to reserve a memory carveout region in the
      DRAM on Tegra SoCs. The memory controller provides specific registers
      to specify the aperture's base and size. This aperture can also be
      changed dynamically in order to re-size the memory available for
      DRM video playback. In case of the new aperture not overlapping
      the previous one, the previous aperture has to be cleared before
      setting up the new one. This means we do not "leak" any video data
      to the NS world.
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      9a964510
  33. 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
  34. 28 Apr, 2015 1 commit
    • Dan Handley's avatar
      Add common ARM and CSS platform code · b4315306
      Dan Handley authored
      This major change pulls out the common functionality from the
      FVP and Juno platform ports into the following categories:
      
      *   (include/)plat/common. Common platform porting functionality that
      typically may be used by all platforms.
      
      *   (include/)plat/arm/common. Common platform porting functionality
      that may be used by all ARM standard platforms. This includes all
      ARM development platforms like FVP and Juno but may also include
      non-ARM-owned platforms.
      
      *   (include/)plat/arm/board/common. Common platform porting
      functionality for ARM development platforms at the board
      (off SoC) level.
      
      *   (include/)plat/arm/css/common. Common platform porting
      functionality at the ARM Compute SubSystem (CSS) level. Juno
      is an example of a CSS-based platform.
      
      *   (include/)plat/arm/soc/common. Common platform porting
      functionality at the ARM SoC level, which is not already defined
      at the ARM CSS level.
      
      No guarantees are made about the backward compatibility of
      functionality provided in (include/)plat/arm.
      
      Also remove any unnecessary variation between the ARM development
      platform ports, including:
      
      *   Unify the way BL2 passes `bl31_params_t` to BL3-1. Use the
      Juno implementation, which copies the information from BL2 memory
      instead of expecting it to persist in shared memory.
      
      *   Unify the TZC configuration. There is no need to add a region
      for SCP in Juno; it's enough to simply not allow any access to
      this reserved region. Also set region 0 to provide no access by
      default instead of assuming this is the case.
      
      *   Unify the number of memory map regions required for ARM
      development platforms, although the actual ranges mapped for each
      platform may be different. For the FVP port, this reduces the
      mapped peripheral address space.
      
      These latter changes will only be observed when the platform ports
      are migrated to use the new common platform code in subsequent
      patches.
      
      Change-Id: Id9c269dd3dc6e74533d0e5116fdd826d53946dc8
      b4315306