u-boot/arch/arm/cpu/tegra-common
Tom Warren dbc000bfb5 ARM: tegra: only enable SCU on Tegra20
The non-SPL build of U-Boot on Tegra only runs on a single CPU, and
hence there is no need to enable the SCU when running U-Boot. If an
SMP OS is booted, and it needs the SCU enabled, it will enable the SCU
itself. U-Boot doing so is redundant.

The one exception is Tegra20, where an enabled SCU is required for some
aspects of PCIe to work correctly.

Some Tegra SoCs contain CPUs without a software-controlled SCU. In this
case, attempting to turn it on actively causes problems. This is the case
for Tegra114. For example, when running Linux, the first (or at least
some very early) user-space process will trigger the following kernel
message:

Unhandled fault: imprecise external abort (0x406) at 0x00000000

This is typically accompanied by that process receving a fatal signal,
and exiting. Since this process is usually pid 1, this causes total
system boot failure.

Signed-off-by: Tom Warren <twarren@nvidia.com>
[swarren, fleshed out description, ported to upstream chipid APIs]
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
2013-06-06 09:12:32 -07:00
..
ap.c ARM: tegra: only enable SCU on Tegra20 2013-06-06 09:12:32 -07:00
board.c Tegra114: Add common CPU (shared) files 2013-02-11 10:35:25 -07:00
cache.c Tegra: Configure L2 cache control reg properly. 2013-04-15 11:01:38 -07:00
clock.c Tegra: clk: always use find_best_divider() for periph clocks 2013-05-28 12:58:42 -07:00
lowlevel_init.S Tegra20: Move some code files to common directories for upcoming Tegra30 patches. 2012-10-15 11:54:06 -07:00
Makefile Tegra: Configure L2 cache control reg properly. 2013-04-15 11:01:38 -07:00
sys_info.c Tegra30: Add common CPU (shared) files 2013-01-16 13:40:07 -07:00
timer.c arm: Move lastinc to arch_global_data 2013-02-01 15:07:50 -05:00