
On 05/15/2013 07:00 PM, Axel Lin wrote:
2013/5/15 Stephen Warren swarren@wwwdotorg.org:
On 05/14/2013 09:04 PM, Axel Lin wrote:
cpu_init_crit() can be skipped, but the code is still enabled requiring a platform to supply lowlevel_init().
diff --git a/arch/arm/cpu/arm720t/start.S b/arch/arm/cpu/arm720t/start.S
+#ifndef CONFIG_SKIP_LOWLEVEL_INIT cpu_init_crit:
#if !defined(CONFIG_TEGRA) @@ -258,6 +259,7 @@ cpu_init_crit: #endif
mov pc, lr
+#endif /* CONFIG_SKIP_LOWLEVEL_INIT */
If you're going to make changes here, you should probably ensure that Tegra is setting CONFIG_SKIP_LOWLEVEL_INIT, and then remove the Tegra-specific ifdef from the body of that function. That's assuming that setting CONFIG_SKIP_LOWLEVEL_INIT doesn't have any other side-effects.
Tegra exists in both arm720t and armv7:
./arch/arm/cpu/arm720t/tegra-common ./arch/arm/cpu/arm720t/tegra30 ./arch/arm/cpu/arm720t/tegra20 ./arch/arm/cpu/arm720t/tegra114
./arch/arm/cpu/armv7/tegra-common ./arch/arm/cpu/armv7/tegra30 ./arch/arm/cpu/armv7/tegra20 ./arch/arm/cpu/armv7/tegra114
I'm wondering if we set CONFIG_SKIP_LOWLEVEL_INIT for tegra will also impact the code path in arch/arm/cpu/armv7/start.S ?
Yes, you certainly only want to set CONFIG_SKIP_LOWLEVEL_INIT for the SPL build. There's a whole section of include/configs/tegra-common-post.h which is ifdef CONFIG_SPL_BUILD, so it might make sense to #define CONFIG_SKIP_LOWLEVEL_INIT there.