9
0
Fork 0

tegra: avp_init: write DT address register earlier

Otherwise the write would be skipped if we are already running on the main CPU
cluster. In practice this means that a second stage barebox will reuse the DT
of the first stage, instead of using it's own.

Signed-off-by: Lucas Stach <dev@lynxeye.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Lucas Stach 2015-03-02 22:47:20 +01:00 committed by Sascha Hauer
parent 0b6ddeecb5
commit 09c4b63aa2
1 changed files with 3 additions and 3 deletions

View File

@ -262,6 +262,9 @@ void tegra_avp_reset_vector(uint32_t boarddata)
int num_cores;
unsigned int entry_address = 0;
/* put boarddata in scratch reg, for main CPU to fetch after startup */
writel(boarddata, TEGRA_PMC_BASE + PMC_SCRATCH(10));
if (tegra_cpu_is_maincomplex())
tegra_maincomplex_entry();
@ -291,9 +294,6 @@ void tegra_avp_reset_vector(uint32_t boarddata)
}
writel(entry_address, TEGRA_EXCEPTION_VECTORS_BASE + 0x100);
/* put boarddata in scratch reg, for main CPU to fetch after startup */
writel(boarddata, TEGRA_PMC_BASE + PMC_SCRATCH(10));
/* bring up main CPU complex */
start_cpu0_clocks();
maincomplex_powerup();