[U-Boot-Users] [Patch V2] U-Boot-V2: Replace CONFIG_SKIP_LOWLEVEL_INIT with CONFIG_MACH_HAS_INIT_LOWLEVEL

Menon, Nishanth x0nishan at ti.com
Sat May 10 01:19:35 CEST 2008


Sascha,
> -----Original Message-----
> From: Sascha Hauer [mailto:s.hauer at pengutronix.de]
> Sent: Friday, May 09, 2008 10:13 AM
> To: Menon, Nishanth
> Cc: u-boot-users at lists.sourceforge.net
> Subject: Re: [Patch] U-Boot-V2: Replace CONFIG_SKIP_LOWLEVEL_INIT withCONFIG_MACH_HAS_INIT_LOWLEVEL
> 
> > You are missing the requirement of having to do a second level boot. I
> > may choose not to enable board level initialization in a specific
> > configuration for the same platform. The requirement I have in OMAP is
> > this: boot up tiny u-boot (very minimal functionality, which needs to
> > be less than 32K) which does SDRAM init (among other things), load the
> > normal u-boot (around 200-400K) from UART, USB, NAND or ONENAND to
> > SDRAM, and give control to it. In the "Normal functionality" U-Boot
> > I'd not want to do a SDRAM and additional arch and board
> > initialization - something that is redundant as it is already done by
> > the tiny u-boot. Now I can also have a configuration for U-Boot
> > booting from NOR. In that case, I'd want SDRAM initialization to be
> > done. In such a case, the user should have the flexibility to be able
> > to enable/disable board low level initialization while creating
> > multiple configurations. All of these configurations are for the same
> > board and same architecture.
> >
> 
> OK, can we agree on the following then?
> 
> config MACH_DO_LOWLEVEL_INIT
> 	bool "run machine lowlevel init"
> 	depends on MACH_HAS_LOWLEVEL_INIT
> 	default y

Yes. It is a good idea. I have searched thru the boards and have the following revisited patch:

Signed-off-by: Nishanth Menon <x0nishan at 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-09 10:33:46.000000000 -0500
+++ u-boot-v2.git/arch/arm/cpu/start-arm.S	2008-05-09 10:35:30.000000000 -0500
@@ -156,7 +156,7 @@
 	 * because memory timing is board-dependend, you will
 	 * find a lowlevel_init.S in your board directory.
 	 */
-#ifndef CONFIG_SKIP_LOWLEVEL_INIT
+#ifdef CONFIG_MACH_DO_LOWLEVEL_INIT
 	bl	board_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-09 10:33:46.000000000 -0500
+++ u-boot-v2.git/arch/m68k/cpu/start-mcfv4e.S	2008-05-09 10:36:49.000000000 -0500
@@ -448,7 +448,7 @@
 	 *
 	 * Do not jump/call other u-boot code here!
 	 */
-#ifndef CONFIG_SKIP_LOWLEVEL_INIT
+#ifdef CONFIG_MACH_DO_LOWLEVEL_INIT
 	bsr.l	board_init_lowlevel
 	nop
 #endif
@@ -512,7 +512,7 @@
 	nop
 #endif
 
-#ifndef CONFIG_SKIP_LOWLEVEL_INIT
+#ifdef CONFIG_MACH_DO_LOWLEVEL_INIT
 	/*
 	 * Call other half of initcode in relocated code
 	 *
Index: u-boot-v2.git/common/Kconfig
===================================================================
--- u-boot-v2.git.orig/common/Kconfig	2008-05-09 10:33:46.000000000 -0500
+++ u-boot-v2.git/common/Kconfig	2008-05-09 10:34:25.000000000 -0500
@@ -68,6 +68,18 @@
 config ARCH_HAS_INIT_LOWLEVEL
 	bool
 
+config MACH_HAS_INIT_LOWLEVEL
+	bool
+
+config MACH_DO_LOWLEVEL_INIT
+	bool "run machine low-level init"
+	depends on MACH_HAS_LOWLEVEL_INIT
+	default y
+	help
+	  This entry enables SDRAM and other board low level initialization
+	  on many platforms. Disabling this option allows configurations to use
+	  U-boot as a second stage boot loader.
+
 config PROMPT
 	string
 	prompt "U-Boot command prompt"
@@ -219,14 +231,6 @@
 	help
 	  Enable build of u-boot with -g.
 
-config SKIP_LOWLEVEL_INIT
-	bool
-	depends on ARM
-	prompt "Skip lowlevel init"
-	help
-	  This entry skips the SDRAM initializing on many ARM based boards.
-	  It enables using U-boot as a second stage boot loader.
-
 config ENABLE_FLASH_NOISE
 	bool
 	prompt "verbose flash handling"
Index: u-boot-v2.git/arch/arm/Kconfig
===================================================================
--- u-boot-v2.git.orig/arch/arm/Kconfig	2008-05-09 17:40:32.000000000 -0500
+++ u-boot-v2.git/arch/arm/Kconfig	2008-05-09 18:06:44.000000000 -0500
@@ -89,6 +89,7 @@
 	select HAS_DM9000
 	select HAS_CFI
 	select ARCH_IMX1
+	select MACH_HAS_INIT_LOWLEVEL
 	help
 	  Say Y here if you are using the Synertronixx scb9328 board
 
@@ -96,6 +97,7 @@
 	bool "phyCORE-i.MX27"
 	select HAS_CFI
 	select ARCH_IMX27
+	select MACH_HAS_INIT_LOWLEVEL
 	help
 	  Say Y here if you are using Phytec's phyCORE-i.MX27 (pcm038) equipped
 	  with a Freescale i.MX27 Processor
@@ -104,6 +106,7 @@
 	bool "Freescale i.MX27ADS"
 	select HAS_CFI
 	select ARCH_IMX27
+	select MACH_HAS_INIT_LOWLEVEL
 	help
 	  Say Y here if you are using the Freescale i.MX27ads board equipped
 	  with a Freescale i.MX27 Processor
@@ -121,6 +124,7 @@
 	select HAS_NETX_ETHER
 	select HAS_CFI
 	select ARCH_NETX
+	select MACH_HAS_INIT_LOWLEVEL
 	help
 	  Say Y here if you are using the Hilscher Netx nxdb500 board
 
Index: u-boot-v2.git/arch/m68k/Kconfig
===================================================================
--- u-boot-v2.git.orig/arch/m68k/Kconfig	2008-05-09 18:07:01.000000000 -0500
+++ u-boot-v2.git/arch/m68k/Kconfig	2008-05-09 18:09:48.000000000 -0500
@@ -84,6 +84,7 @@
 	bool "konzeptpark UKD R1 + phyCore MCF5475 NUM"
 	select HAS_CFI
 	select ARCH_MCF54xx
+	select MACH_HAS_INIT_LOWLEVEL
 	help
 	  Say Y here if you are using the konzeptpark UKD R1 with a
 	  Phytec Phycore PCM-024-NUM equipped with a Freescale MC5475 Processor
@@ -108,6 +109,7 @@
 	bool "Phytec pcm982 + phyCore MCF5485"
 	select HAS_CFI
 	select ARCH_MCF54xx
+	select MACH_HAS_INIT_LOWLEVEL
 	help
 	  Say Y here if you are using the Phytec Phycore PCM-024 equipped
 	  with a Freescale MC5485 Processor
@@ -116,6 +118,7 @@
 	bool "Phytec pcm982 + phyCore MCF5475"
 	select HAS_CFI
 	select ARCH_MCF54xx
+	select MACH_HAS_INIT_LOWLEVEL
 	help
 	  Say Y here if you are using the Phytec Phycore PCM-024 equipped
 	  with a Freescale MC5475 Processor
@@ -124,6 +127,7 @@
 	bool "Phytec pcm982 + phyCore MCF5475 NUM"
 	select HAS_CFI
 	select ARCH_MCF54xx
+	select MACH_HAS_INIT_LOWLEVEL
 	help
 	  Say Y here if you are using the Phytec Phycore PCM-024 equipped
 	  with a Freescale MC5475 Processor (NUM Variant)




More information about the U-Boot mailing list