- 20 Mar, 2017 14 commits
-
-
Varun Wadekar authored
This patch implements the 'prepare_system_reset' handler to issue the 'system reset' command to the MCE. Change-Id: I83d8d0b4167aac5963d640fe77d5754dc7ef05b1 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Varun Wadekar authored
This patch implements the CPU_OFF handler for powering down a CPU using the MCE driver. Change-Id: I8d455005d0b547cc61cc7778bfe9eb84b7e5480c Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Varun Wadekar authored
The System Counter Frequency has been updated to 31.25MHz after some experiments as the previous value was too high. Change-Id: I79986ee1c0c88700a3a2b1dbff2d3f00c0c412b9 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
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: Varun Wadekar <vwadekar@nvidia.com>
-
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: Varun Wadekar <vwadekar@nvidia.com>
-
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: Varun Wadekar <vwadekar@nvidia.com>
-
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: Varun Wadekar <vwadekar@nvidia.com>
-
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: Varun Wadekar <vwadekar@nvidia.com> Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
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: Wayne Lin <wlin@nvidia.com> Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Varun Wadekar authored
This patch adds driver for the Memory Controller (v2) in the newer Tegra SoCs. The newer hardware uses ARM's SMMU hardware instead of the proprietary block in the past. Change-Id: I78359da780dc840213b6e99954e45e34428d4fff Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Varun Wadekar authored
This patch opens up the interfaces to read the chip's major/minor versions for all Tegra drivers to use. Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
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: Andre Przywara <andre.przywara@arm.com>
-
Andre Przywara authored
The Mediatek 8173 SoC contains Cortex-A53 CPUs which are affected by erratum 855873. Enable the workaround that TF provides to fix this erratum. Change-Id: I6e1c7822c320d81bdd46b8942d1d755883dac1f5 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-
Andre Przywara authored
ARM erratum 855873 applies to all Cortex-A53 CPUs. The recommended workaround is to promote "data cache clean" instructions to "data cache clean and invalidate" instructions. For core revisions of r0p3 and later this can be done by setting a bit in the CPUACTLR_EL1 register, so that hardware takes care of the promotion. As CPUACTLR_EL1 is both IMPLEMENTATION DEFINED and can be trapped to EL3, we set the bit in firmware. Also we dump this register upon crashing to provide more debug information. Enable the workaround for the Juno boards. Change-Id: I3840114291958a406574ab6c49b01a9d9847fec8 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-
- 08 Mar, 2017 3 commits
-
-
Antonio Nino Diaz authored
Modify ARM common makefile to use version 2 of the translation tables library and include the new header in C files. Simplify header dependencies related to this library to simplify the change. The following table contains information about the size increase in bytes for BL1 after applying this patch. The code has been compiled for different configurations of FVP in AArch64 mode with compiler GCC 4.9.3 20150413. The sizes have been calculated with the output of `nm` by adding the size of all regions and comparing the total size before and after the change. They are sumarized in the table below: text bss data total Release +660 -20 +88 +728 Debug +740 -20 +242 +962 Debug (LOG_LEVEL=50) +1120 -20 +317 +1417 Change-Id: I539e307f158ab71e3a8b771640001fc1bf431b29 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
-
Antonio Nino Diaz authored
TLBI instructions for EL3 won't have the desired effect under specific circumstances in Cortex-A57 r0p0. The workaround is to execute DSB and TLBI twice each time. Even though this errata is only needed in r0p0, the current errata framework is not prepared to apply run-time workarounds. The current one is always applied if compiled in, regardless of the CPU or its revision. This errata has been enabled for Juno. The `DSB` instruction used when initializing the translation tables has been changed to `DSB ISH` as an optimization and to be consistent with the barriers used for the workaround. Change-Id: Ifc1d70b79cb5e0d87e90d88d376a59385667d338 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
-
Antonio Nino Diaz authored
The files affected by this patch don't really depend on `xlat_tables.h`. By changing the included file it becomes easier to switch between the two versions of the translation tables library. Change-Id: Idae9171c490e0865cb55883b19eaf942457c4ccc Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
-
- 07 Mar, 2017 1 commit
-
-
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: Varun Wadekar <vwadekar@nvidia.com>
-
- 03 Mar, 2017 2 commits
-
-
Varun Wadekar authored
This patch enables the SEPARATE_CODE_AND_RODATA build flag for all Tegra platforms, to allow setting proper MMU attributes for the RO data and the code. Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
tony.xie authored
Change-Id: I6d39b4cac9b34b1f841e9bbddaf9c49785ba0c5e Signed-off-by: tony.xie <tony.xie@rock-chips.com>
-
- 02 Mar, 2017 11 commits
-
-
Harvey Hsieh authored
The linux kernel v3.10 does not use System Suspend function ID, whereas v4.4 uses it. This means affinity levels 0/1 will have different state id values during System Suspend entry. This patch updates the assert criteria to check both the state id values. Change-Id: I07fcaf99501cc9622e40d0a2c1eb4a4a160be10a Signed-off-by: Harvey Hsieh <hhsieh@nvidia.com> Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Harvey Hsieh authored
This patch allows the NS world to pass 64-bit base address for the Video Memory carveout region. Change-Id: I7e47cc1f5425bd39c6763755b801517013e1e0cd Signed-off-by: Harvey Hsieh <hhsieh@nvidia.com> Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Steven Kao authored
This patch increases the ADDR_SPACE_SIZE macro (virtual address) to 35 bits, to support max memory of 32G, for all Tegra platforms. Change-Id: I8e6861601d3a667d7428988c7596b0adebfa0548 Signed-off-by: Steven kao <skao@nvidia.com> Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Damon Duan authored
Some platforms might want to keep the uart console disabled during boot. This patch checks if the platform supports a console, before calling console_init(). Change-Id: Icc9c59cb979d91fd0a72e4732403b3284bdd2dfc Signed-off-by: Damon Duan <danield@nvidia.com> Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Varun Wadekar authored
This patch modifies the TZDRAM base address to the new aperture allocated by the bootloader. Change-Id: Id158d15b1ec9aa681136d258e90fbba930aebf92 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Varun Wadekar authored
This patch sets the core power state during cluster power down, so that the 'get_target_pwr_state' handler can calculate the proper states for all the affinity levels. Change-Id: If4adb001011208916427ee1623c6c923bed99985 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Varun Wadekar authored
This patch fixes the 'tegra_soc_get_target_pwr_state' handler used to calculate the proper state for each of the affinity levels. Change-Id: Id16bd15b96f0fc633ffeac2d7a390592fbd0454b Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Varun Wadekar authored
This patch uses GICD_BASE to calculate the GICD_ISPENDR regsiter address in the platform's 'plat_crash_print_regs' routine. Reported by: Seth Eatinger <seatinger@nvidia.com> Change-Id: Ic7be29abc781f475ad25b59582ae60a0a2497377 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Varun Wadekar authored
This patch removes the console_init() from runtime_setup() as we already initialize it earlier and disables/enables it across "System Suspend". Change-Id: I992d3ca56ff4797faf83e8d7fa52c0ef3e1c3367 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Varun Wadekar authored
This patch adds support to identify the underlying platform on which we are running. The currently supported platforms are actual silicon and simulation platforms. Change-Id: Iadf96e79ec663b3dbd1a18e9bb95ffcdb82fc8af Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Soby Mathew authored
This patch makes the default MP definitions of plat_get_my_stack() and plat_set_my_stack() as weak so that they can be overridden by the AArch32 Secure Payload if it requires. Change-Id: I3b6ddff5750443a776505e3023ff2934227592b6 Signed-off-by: Soby Mathew <soby.mathew@arm.com>
-
- 01 Mar, 2017 1 commit
-
-
tony.xie authored
Remove struct rockchip_pm_ops_cb and instead of using weak functions implement; in this way we want the codes look clear and simple; Change-Id: Ib9e8a5e932fdfc2b3e6a1ec502c40dfe720ac400 Signed-off-by: tony.xie <tony.xie@rock-chips.com>
-
- 28 Feb, 2017 8 commits
-
-
Varun Wadekar authored
This patch implements a per-soc handler to calculate the target power state for the cluster/system. A weak implementation of the handler is provided for platforms to use by default. For SoCs with multiple CPU clusters, this handler would provide the individual cluster/system state, allowing the PSCI service to flush caches during cluster/system power down. Change-Id: I568cdb42204f9841a8430bd9105bd694f71cf91d Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Varun Wadekar authored
This patch adds support to relocate the BL32 image from the NS memory to TZDRAM during cold boot. The NS memory buffer is cleared out after the process completes. Change-Id: I1a033ffe73b8c309449f874d5187708d0a8846d2 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Varun Wadekar authored
This patch implements handlers which platforms can override to get the BL31 arguments passed by the previous bootloader. Change-Id: I6b9628a984644ce1b5de5aa6d7cd890e57241d89 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Varun Wadekar authored
This patch returns pointer to the BL32 entrypoint info only if it is valid. Change-Id: I71ce3c4626681753c94f3a7bbaa50c26c74874cb Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Varun Wadekar authored
This patch configures the TZDRAM fence during early platform setup to allow the memory controller to enable DRAM encryption before the TZDRAM actually gets used. Change-Id: I0169ef9dda75699527b4e30c9e617a9036ba1d76 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Varun Wadekar authored
This patch restores the TZRAM fence and the access permissions on exiting the "System Suspend" state. Change-Id: Ie313fca5a861c73f80df9639b01115780fb6e217 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Varun Wadekar authored
This patch enables L2 ECC and Parity Protection for ARM Cortex-A57 CPUs for Tegra SoCs. Change-Id: I038fcd529991d0201a4951ce2730ab71b1c980f9 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-
Varun Wadekar authored
This patch modifies the secure IRQ registration process to allow platforms to specify the target CPUs as well as the owner of the IRQ. IRQs "owned" by the EL3 would return INTR_TYPE_EL3 whereas those owned by the Trusted OS would return INTR_TYPE_S_EL1 as a result. Change-Id: I528f7c8220d0ae0c0f354e78d69e188abb666ef6 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-