linux/arch/arm/mach-tegra
Stephen Warren c34f30e588 ARM: tegra: add CPU errata WARs to Tegra reset handler
The CPU cores in Tegra contain some errata. Workarounds must be applied
for these every time a CPU boots. Implement those workarounds directly
in the Tegra-specific CPU reset vector.

Many of these workarounds duplicate code in the core ARM kernel.

However, the core ARM kernel cannot enable those workarounds when
building a multi-platform kernel, since they require writing to secure-
only registers, and a multi-platform kernel often does not run in secure
mode, and also cannot generically/architecturally detect whether it is
running in secure mode, and hence cannot either unconditionally or
conditionally apply these workarounds.

Instead, the workarounds must be applied in architecture-specific reset
code, which is able to have more direct knowledge of the secure/normal
state. On Tegra, we will be able to detect this using a non-architected
register in the future, although we currently assume the kernel runs only
in secure mode. Other SoCs may never run the kernel in secure mode, and
hence always rely on a secure monitor to enable the workarounds, and
hence never implement them in the kernel.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
2013-03-11 14:29:22 -06:00
..
include/mach arm-soc: soc-specific updates 2013-02-21 15:27:22 -08:00
apbio.c ARM: tegra: Make variables static 2013-01-28 10:21:28 -07:00
apbio.h ARM: tegra: apbio access using dma for tegra20 only 2012-07-06 11:48:56 -06:00
board-dt-tegra20.c ARM: tegra: USB driver cleanup 2013-02-05 12:45:39 -08:00
board-dt-tegra30.c ARM: tegra: Common Clock Framework rework 2013-02-05 12:13:10 -08:00
board-dt-tegra114.c Merge branch 'tegra/t114' into next/soc 2013-02-09 17:53:02 -08:00
board-harmony-pcie.c ARM: dt: tegra: harmony: add regulators 2012-09-14 11:31:37 -06:00
board-paz00.c Merge branch 'multiplatform/platform-data' into next/multiplatform 2012-09-22 01:07:21 -07:00
board-paz00.h ARM: tegra: remove board (but not DT) support for Paz00 2012-09-14 11:31:36 -06:00
board.h ARM: tegra: Fix build error w/ ARCH_TEGRA_114_SOC w/o ARCH_TEGRA_3x_SOC 2013-02-09 17:46:51 -08:00
common.c Merge branch 'tegra/t114' into next/soc 2013-02-09 17:53:02 -08:00
common.h ARM: tegra: moving the clock gating procedure to tegra_cpu_kill 2013-01-28 10:21:48 -07:00
cpu-tegra.c arm-soc: soc-specific updates 2013-02-21 15:27:22 -08:00
cpuidle-tegra20.c ARM: tegra20: cpuidle: apply coupled cpuidle for powered-down mode 2013-01-28 11:20:38 -07:00
cpuidle-tegra30.c ARM: tegra: move tegra_cpu_car.h to linux/clk/tegra.h 2013-01-28 11:19:06 -07:00
cpuidle-tegra114.c ARM: tegra: add Tegra114 ARM_CPUIDLE_WFI_STATE support 2013-01-29 11:01:23 -07:00
cpuidle.c ARM: tegra: add Tegra114 ARM_CPUIDLE_WFI_STATE support 2013-01-29 11:01:23 -07:00
cpuidle.h ARM: tegra: add Tegra114 ARM_CPUIDLE_WFI_STATE support 2013-01-29 11:01:23 -07:00
flowctrl.c ARM: tegra20: flowctrl: add support for cpu_suspend_enter/exit 2013-01-28 11:20:38 -07:00
flowctrl.h ARM: tegra20: flowctrl: add support for cpu_suspend_enter/exit 2013-01-28 11:20:38 -07:00
fuse.c ARM: tegra: add function to read chipid 2013-01-28 11:19:06 -07:00
fuse.h ARM: tegra: fuse: Add chip ID Tegra114 0x35 2013-01-28 11:23:00 -07:00
gpio-names.h [ARM] tegra: add GPIO support 2010-08-05 14:57:02 -07:00
headsmp.S Merge branch 'socfpga/hw' into next/soc 2013-02-11 19:37:51 -08:00
hotplug.c ARM: tegra: move tegra_cpu_car.h to linux/clk/tegra.h 2013-01-28 11:19:06 -07:00
io.c ARM: tegra: don't include iomap.h from debug-macro.S 2012-11-16 12:22:17 -07:00
iomap.h ARM: tegra: remove USB address related macros from iomap.h 2013-01-28 11:20:04 -07:00
irammap.h ARM: tegra: decouple uncompress.h and debug-macro.S 2012-11-16 12:22:17 -07:00
irq.c ARM: tegra: cpuidle enhancements 2013-02-05 12:46:18 -08:00
irq.h ARM: tegra: add pending SGI checking API 2013-01-28 11:20:38 -07:00
Kconfig ARM: tegra: sort Kconfig selects for Tegra114 2013-02-09 17:52:07 -08:00
Makefile ARM: tegra: add Tegra114 ARM_CPUIDLE_WFI_STATE support 2013-01-29 11:01:23 -07:00
Makefile.boot ARM: tegra: Add Avionic Design Tamonten Evaluation Carrier support 2012-09-20 09:34:01 -06:00
pcie.c ARM: tegra: migrate to new clock code 2013-01-28 11:19:07 -07:00
platsmp.c ARM: tegra: remove empty tegra_smp_init_cpus() 2013-02-05 13:13:08 -08:00
pm.c ARM: tegra20: cpuidle: add powered-down state for secondary CPU 2013-01-28 11:20:38 -07:00
pm.h ARM: tegra: retain L2 content over CPU suspend/resume 2012-11-15 15:09:22 -07:00
pmc.c ARM: tegra: move iomap.h to mach-tegra 2012-11-05 11:36:06 -07:00
pmc.h ARM: tegra: Add a simple PMC driver 2012-02-06 18:25:01 -08:00
powergate.c ARM: tegra: migrate to new clock code 2013-01-28 11:19:07 -07:00
reset-handler.S ARM: tegra: add CPU errata WARs to Tegra reset handler 2013-03-11 14:29:22 -06:00
reset.c ARM: tegra: make device can run on UP 2013-01-28 11:14:06 -07:00
reset.h ARM: tegra30: cpuidle: add powered-down state for secondary CPUs 2012-11-15 15:09:21 -07:00
sleep-tegra20.S ARM: tegra20: cpuidle: apply coupled cpuidle for powered-down mode 2013-01-28 11:20:38 -07:00
sleep-tegra30.S ARM: tegra: update the cache maintenance order for CPU shutdown 2013-01-28 10:21:44 -07:00
sleep.h ARM: tegra20: cpuidle: apply coupled cpuidle for powered-down mode 2013-01-28 11:20:38 -07:00
sleep.S ARM: tegra20: cpuidle: apply coupled cpuidle for powered-down mode 2013-01-28 11:20:38 -07:00
tegra2_emc.c ARM: Convert to devm_ioremap_resource() 2013-01-25 12:21:45 -08:00
tegra2_emc.h ARM: tegra: emc: convert tegra2_emc to a platform driver 2012-02-06 18:24:59 -08:00
tegra20_speedo.c ARM: tegra: Add speedo-based process identification 2012-11-15 14:34:20 -07:00
tegra30_speedo.c ARM: tegra: Tegra30 speedo-based process identification 2012-11-15 14:36:59 -07:00