[U-Boot-Users] [Patch] U-Boot-V2: Introduce CONFIG_ARCH_HAS_INIT_LOWLEVEL

Based on http://sourceforge.net/mailarchive/forum.php?thread_name=20080508151609.GB94... I am splitting the patches into two. This is the first one for introducing arch specific config.
This introduces CONFIG_ARCH_HAS_INIT_LOWLEVEL which can be enabled for SOC designs which require additional initialization.
Signed-off-by: Nishanth Menon x0nishan@ti.com
Index: u-boot-v2.git/arch/arm/cpu/start-arm.S =================================================================== --- u-boot-v2.git.orig/arch/arm/cpu/start-arm.S 2008-05-08 11:17:09.000000000 -0500 +++ u-boot-v2.git/arch/arm/cpu/start-arm.S 2008-05-08 11:17:29.000000000 -0500 @@ -131,7 +131,7 @@ orr r0,r0,#0xd3 msr cpsr,r0
-#ifdef ARCH_HAS_INIT_LOWLEVEL +#ifdef CONFIG_ARCH_HAS_INIT_LOWLEVEL bl arch_init_lowlevel #endif /* Index: u-boot-v2.git/arch/m68k/cpu/start-mcfv4e.S =================================================================== --- u-boot-v2.git.orig/arch/m68k/cpu/start-mcfv4e.S 2008-05-08 11:17:40.000000000 -0500 +++ u-boot-v2.git/arch/m68k/cpu/start-mcfv4e.S 2008-05-08 11:17:50.000000000 -0500 @@ -406,7 +406,7 @@ * standard reset vector file, but also do some special things * required only on their specific CPU. */ -#ifdef ARCH_HAS_INIT_LOWLEVEL +#ifdef CONFIG_ARCH_HAS_INIT_LOWLEVEL bsr.l arch_init_lowlevel nop #endif Index: u-boot-v2.git/common/Kconfig =================================================================== --- u-boot-v2.git.orig/common/Kconfig 2008-05-08 11:15:05.000000000 -0500 +++ u-boot-v2.git/common/Kconfig 2008-05-08 11:18:33.000000000 -0500 @@ -65,6 +65,13 @@ allowing it to relocate to the end of the available RAM. This way you have the whole memory in a single piece.
+config ARCH_HAS_INIT_LOWLEVEL + bool "Architecture has low level init" + default n + help + Architectures that have additional initialization can enable + this functionality. + config PROMPT string prompt "U-Boot command prompt"

On Thu, May 08, 2008 at 11:42:18AM -0500, Menon, Nishanth wrote:
Based on http://sourceforge.net/mailarchive/forum.php?thread_name=20080508151609.GB94... I am splitting the patches into two. This is the first one for introducing arch specific config.
This introduces CONFIG_ARCH_HAS_INIT_LOWLEVEL which can be enabled for SOC designs which require additional initialization.
Signed-off-by: Nishanth Menon x0nishan@ti.com
Index: u-boot-v2.git/arch/arm/cpu/start-arm.S
--- u-boot-v2.git.orig/arch/arm/cpu/start-arm.S 2008-05-08 11:17:09.000000000 -0500 +++ u-boot-v2.git/arch/arm/cpu/start-arm.S 2008-05-08 11:17:29.000000000 -0500 @@ -131,7 +131,7 @@ orr r0,r0,#0xd3 msr cpsr,r0
-#ifdef ARCH_HAS_INIT_LOWLEVEL +#ifdef CONFIG_ARCH_HAS_INIT_LOWLEVEL bl arch_init_lowlevel #endif /* Index: u-boot-v2.git/arch/m68k/cpu/start-mcfv4e.S =================================================================== --- u-boot-v2.git.orig/arch/m68k/cpu/start-mcfv4e.S 2008-05-08 11:17:40.000000000 -0500 +++ u-boot-v2.git/arch/m68k/cpu/start-mcfv4e.S 2008-05-08 11:17:50.000000000 -0500 @@ -406,7 +406,7 @@ * standard reset vector file, but also do some special things * required only on their specific CPU. */ -#ifdef ARCH_HAS_INIT_LOWLEVEL +#ifdef CONFIG_ARCH_HAS_INIT_LOWLEVEL bsr.l arch_init_lowlevel nop #endif Index: u-boot-v2.git/common/Kconfig =================================================================== --- u-boot-v2.git.orig/common/Kconfig 2008-05-08 11:15:05.000000000 -0500 +++ u-boot-v2.git/common/Kconfig 2008-05-08 11:18:33.000000000 -0500 @@ -65,6 +65,13 @@ allowing it to relocate to the end of the available RAM. This way you have the whole memory in a single piece.
+config ARCH_HAS_INIT_LOWLEVEL
- bool "Architecture has low level init"
- default n
- help
Architectures that have additional initialization can enable
this functionality.
This won't work out. The user is prompted for a question he cannot answer. The wrong answer will result in a linker error if he says 'yes' here and the architecture does not have a lowlevel init function. Other possibility would be that the user ends up with a unusable U-Boot if he answers 'no' here while the architecture has (and probably needs) a lowlevel init function. Another problem is that for example powerpc users will be prompted for this option which effectively does nothing.
Moving this to the config system is generally a good idea, but ARCH_HAS_INIT_LOWLEVEL should be an invisible option which gets selected by architectures that actually need it.
Sascha

Sascha,
-----Original Message----- From: Sascha Hauer [mailto:s.hauer@pengutronix.de] Sent: Friday, May 09, 2008 2:45 AM To: Menon, Nishanth Cc: u-boot-users@lists.sourceforge.net Subject: Re: [Patch] U-Boot-V2: Introduce CONFIG_ARCH_HAS_INIT_LOWLEVEL
This won't work out. The user is prompted for a question he cannot answer. The wrong answer will result in a linker error if he says 'yes' here and the architecture does not have a lowlevel init function. Other possibility would be that the user ends up with a unusable U-Boot if he answers 'no' here while the architecture has (and probably needs) a lowlevel init function. Another problem is that for example powerpc users will be prompted for this option which effectively does nothing.
Moving this to the config system is generally a good idea, but ARCH_HAS_INIT_LOWLEVEL should be an invisible option which gets selected by architectures that actually need it.
Yes. Accepted. Here is try 2 of the patch.
Signed-off-by: Nishanth Menon x0nishan@ti.com
Index: u-boot-v2.git/arch/arm/cpu/start-arm.S =================================================================== --- u-boot-v2.git.orig/arch/arm/cpu/start-arm.S 2008-05-08 18:02:47.000000000 -0500 +++ u-boot-v2.git/arch/arm/cpu/start-arm.S 2008-05-09 06:40:11.000000000 -0500 @@ -131,7 +131,7 @@ orr r0,r0,#0xd3 msr cpsr,r0
-#ifdef ARCH_HAS_INIT_LOWLEVEL +#ifdef CONFIG_ARCH_HAS_INIT_LOWLEVEL bl arch_init_lowlevel #endif /* Index: u-boot-v2.git/arch/m68k/cpu/start-mcfv4e.S =================================================================== --- u-boot-v2.git.orig/arch/m68k/cpu/start-mcfv4e.S 2008-05-08 18:02:47.000000000 -0500 +++ u-boot-v2.git/arch/m68k/cpu/start-mcfv4e.S 2008-05-09 06:40:11.000000000 -0500 @@ -406,7 +406,7 @@ * standard reset vector file, but also do some special things * required only on their specific CPU. */ -#ifdef ARCH_HAS_INIT_LOWLEVEL +#ifdef CONFIG_ARCH_HAS_INIT_LOWLEVEL bsr.l arch_init_lowlevel nop #endif Index: u-boot-v2.git/common/Kconfig =================================================================== --- u-boot-v2.git.orig/common/Kconfig 2008-05-08 18:02:47.000000000 -0500 +++ u-boot-v2.git/common/Kconfig 2008-05-09 06:44:11.000000000 -0500 @@ -65,6 +65,9 @@ allowing it to relocate to the end of the available RAM. This way you have the whole memory in a single piece.
+config ARCH_HAS_INIT_LOWLEVEL + bool + config PROMPT string prompt "U-Boot command prompt"

Sascha,
-----Original Message----- From: u-boot-users-bounces@lists.sourceforge.net [mailto:u-boot-users-bounces@lists.sourceforge.net] On Behalf Of Menon, Nishanth Sent: Friday, May 09, 2008 6:49 AM To: Sascha Hauer Cc: u-boot-users@lists.sourceforge.net Subject: Re: [U-Boot-Users] [Patch] U-Boot-V2: IntroduceCONFIG_ARCH_HAS_INIT_LOWLEVEL
Moving this to the config system is generally a good idea, but ARCH_HAS_INIT_LOWLEVEL should be an invisible option which gets selected by architectures that actually need it.
Resending the patch with proper subject
Signed-off-by: Nishanth Menon x0nishan@ti.com Index: u-boot-v2.git/arch/arm/cpu/start-arm.S =================================================================== --- u-boot-v2.git.orig/arch/arm/cpu/start-arm.S 2008-05-12 07:21:41.000000000 -0500 +++ u-boot-v2.git/arch/arm/cpu/start-arm.S 2008-05-12 07:21:45.000000000 -0500 @@ -131,7 +131,7 @@ orr r0,r0,#0xd3 msr cpsr,r0
-#ifdef ARCH_HAS_INIT_LOWLEVEL +#ifdef CONFIG_ARCH_HAS_INIT_LOWLEVEL bl arch_init_lowlevel #endif /* Index: u-boot-v2.git/arch/m68k/cpu/start-mcfv4e.S =================================================================== --- u-boot-v2.git.orig/arch/m68k/cpu/start-mcfv4e.S 2008-05-12 07:21:41.000000000 -0500 +++ u-boot-v2.git/arch/m68k/cpu/start-mcfv4e.S 2008-05-12 07:21:45.000000000 -0500 @@ -406,7 +406,7 @@ * standard reset vector file, but also do some special things * required only on their specific CPU. */ -#ifdef ARCH_HAS_INIT_LOWLEVEL +#ifdef CONFIG_ARCH_HAS_INIT_LOWLEVEL bsr.l arch_init_lowlevel nop #endif Index: u-boot-v2.git/common/Kconfig =================================================================== --- u-boot-v2.git.orig/common/Kconfig 2008-05-12 07:21:42.000000000 -0500 +++ u-boot-v2.git/common/Kconfig 2008-05-12 07:21:45.000000000 -0500 @@ -77,6 +77,9 @@ on many platforms. Disabling this option allows configurations to use U-boot as a second stage boot loader.
+config ARCH_HAS_INIT_LOWLEVEL + bool + config PROMPT string prompt "U-Boot command prompt"
participants (2)
-
Menon, Nishanth
-
Sascha Hauer