Skip to contentSkip to conversation

Faster boot time

U-Boot dtran11 4 participants 9 messages Sep 25, 2011 – Sep 26, 2011

lore
Share & tools
lore

dtran11

author
#0 lore raw

I am trying to make uboot boot as fast as possible for my omap3 Overo board. I add the below to my config header file. Does anyone see anything I can add to it to make the build smaller and faster? Thank you.

#define CONFIG_FAST_BOOT
#define CONFIG_FAST_BOOT_MMC
//#define CONFIG_FAST_BOOT_NAND

#ifdef CONFIG_FAST_BOOT

	#define CONFIG_SILENT_CONSOLE	1
	#define CONFIG_ENV_IS_NOWHERE  	1
	#undef CONFIG_ENV_IS_IN_NAND

	#undef CONFIG_SYS_LONGHELP 
	#undef CONFIG_AUTO_COMPLETE
	#undef CONFIG_SYS_HUSH_PARSER 
	#undef CONFIG_REVISION_TAG 
	#undef CONFIG_MD5 
	#undef CONFIG_SHA1 
	#undef CONFIG_BZIP2 
	#undef CONFIG_LZMA 

	#undef CONFIG_CMD_BDI 
	#undef CONFIG_CMD_BOOTD 
	#undef CONFIG_CMD_CONSOLE 
	#undef CONFIG_CMD_ECHO 
	#undef CONFIG_CMD_EDITENV 
	#undef CONFIG_CMD_FPGA 
	#undef CONFIG_CMD_FLASH 
	#undef CONFIG_CMD_IMI 
	#undef CONFIG_CMD_IMLS 
	#undef CONFIG_CMD_ITEST 
	#undef CONFIG_CMD_LOADB 
	#undef CONFIG_CMD_LOADS 
	#undef CONFIG_CMD_MEMORY
	#undef CONFIG_CMD_MISC
	#undef CONFIG_CMD_NET 
	#undef CONFIG_CMD_NFS 
	#undef CONFIG_CMD_SETGETDCR 
	#undef CONFIG_CMD_SOURCE 
	#undef CONFIG_CMD_XIMG 

	#undef CONFIG_CMD_EXT2 
	#undef CONFIG_CMD_JFFS2
	#undef CONFIG_CMD_USB 
	#undef CONFIG_NET_MULTI 
	#undef CONFIG_SMC911X 
	#undef CONFIG_OF_LIBFDT 
	#undef CONFIG_FIT 

	#undef CONFIG_EXTRA_ENV_SETTINGS 
	#define CONFIG_EXTRA_ENV_SETTINGS \
	 "verify=no\0" \
	 "bootfile=uImage\0" 

	#undef CONFIG_BOOTDELAY 
	#define CONFIG_BOOTDELAY	0 

	#ifdef CONFIG_FAST_BOOT_MMC
		#undef CONFIG_SYS_NAND_QUIET_TEST
		#undef CONFIG_NAND_OMAP_GPMC 		 
		#undef CONFIG_CMD_NAND 

		#undef CONFIG_BOOTCOMMAND 
		#define CONFIG_BOOTCOMMAND	 \
			"mmc rescan 0; "	 \
			"fatload mmc 0 0x82000000 uImage; "	\
			"bootm 0x82000000;" 
		 
		#undef CONFIG_BOOTARGS 
		#define CONFIG_BOOTARGS	 \
			"console=ttyO2,115200n8 "	\
			"mpurate=600 "			\
			"quiet noinitrd "		\
			"root=/dev/mmcblk0p2 rw "	\
			"rootfstype=ext3 rootwait " 
	#else
		#undef CONFIG_OMAP3_MMC
		#undef CONFIG_CMD_MMC		
		#undef CONFIG_CMD_FAT
		//#undef CONFIG_DOS_PARTITION

		#undef CONFIG_BOOTCOMMAND
		#define CONFIG_BOOTCOMMAND		\
			"nand read 0x82000000 280000 400000; " \
			"bootm 0x82000000;"

		#undef CONFIG_BOOTARGS
		#define CONFIG_BOOTARGS			\
			"console=ttyO2,115200n8 "	\
			"mpurate=600 "			\
			"quiet noinitrd "		\
			"root=ubi0:rootfs ubi.mtd=4 "	\
			"rootfstype=ubifs "
	#endif 	// #ifdef CONFIG_FAST_BOOT_MMC
	
	
	#undef CONFIG_USB_OMAP3 
	#undef CONFIG_MUSB_HCD 
	 
	#undef CONFIG_USB_STORAGE 
	#undef CONFIG_USB_KEYBOARD 
	#undef CONFIG_SYS_USB_EVENT_POLL
	#undef CONFIG_PREBOOT 
	 
	#undef CONFIG_MUSB_UDC 
	#undef CONFIG_USB_DEVICE 
	#undef CONFIG_USB_TTY 

#endif // CONFIG_FAST_BOOT

Signature · 2 lines
View this message in context: http://old.nabble.com/Faster-boot-time-tp32503921p32503921.html
Sent from the Uboot - Users mailing list archive at Nabble.com.
#1 lore raw
Quoted 122 lines

-----Original Message-----
From: u-boot-bounces at lists.denx.de [mailto:u-boot-bounces at lists.denx.de] On Behalf Of dtran11
Sent: Monday, September 26, 2011 1:33 AM
To: u-boot at lists.denx.de
Subject: [U-Boot] Faster boot time

I am trying to make uboot boot as fast as possible for my omap3 Overo board.
I add the below to my config header file. Does anyone see anything I can add
to it to make the build smaller and faster? Thank you.

#define CONFIG_FAST_BOOT
#define CONFIG_FAST_BOOT_MMC
//#define CONFIG_FAST_BOOT_NAND

#ifdef CONFIG_FAST_BOOT

	#define CONFIG_SILENT_CONSOLE	1
	#define CONFIG_ENV_IS_NOWHERE  	1
	#undef CONFIG_ENV_IS_IN_NAND

	#undef CONFIG_SYS_LONGHELP 
	#undef CONFIG_AUTO_COMPLETE
	#undef CONFIG_SYS_HUSH_PARSER 
	#undef CONFIG_REVISION_TAG 
	#undef CONFIG_MD5 
	#undef CONFIG_SHA1 
	#undef CONFIG_BZIP2 
	#undef CONFIG_LZMA 

	#undef CONFIG_CMD_BDI 
	#undef CONFIG_CMD_BOOTD 
	#undef CONFIG_CMD_CONSOLE 
	#undef CONFIG_CMD_ECHO 
	#undef CONFIG_CMD_EDITENV 
	#undef CONFIG_CMD_FPGA 
	#undef CONFIG_CMD_FLASH 
	#undef CONFIG_CMD_IMI 
	#undef CONFIG_CMD_IMLS 
	#undef CONFIG_CMD_ITEST 
	#undef CONFIG_CMD_LOADB 
	#undef CONFIG_CMD_LOADS 
	#undef CONFIG_CMD_MEMORY
	#undef CONFIG_CMD_MISC
	#undef CONFIG_CMD_NET 
	#undef CONFIG_CMD_NFS 
	#undef CONFIG_CMD_SETGETDCR 
	#undef CONFIG_CMD_SOURCE 
	#undef CONFIG_CMD_XIMG 

	#undef CONFIG_CMD_EXT2 
	#undef CONFIG_CMD_JFFS2
	#undef CONFIG_CMD_USB 
	#undef CONFIG_NET_MULTI 
	#undef CONFIG_SMC911X 
	#undef CONFIG_OF_LIBFDT 
	#undef CONFIG_FIT 

	#undef CONFIG_EXTRA_ENV_SETTINGS 
	#define CONFIG_EXTRA_ENV_SETTINGS \
	 "verify=no\0" \
	 "bootfile=uImage\0" 

	#undef CONFIG_BOOTDELAY 
	#define CONFIG_BOOTDELAY	0 

	#ifdef CONFIG_FAST_BOOT_MMC
		#undef CONFIG_SYS_NAND_QUIET_TEST
		#undef CONFIG_NAND_OMAP_GPMC 		 
		#undef CONFIG_CMD_NAND 

		#undef CONFIG_BOOTCOMMAND 
		#define CONFIG_BOOTCOMMAND	 \
			"mmc rescan 0; "	 \
			"fatload mmc 0 0x82000000 uImage; "	\
			"bootm 0x82000000;" 
		 
		#undef CONFIG_BOOTARGS 
		#define CONFIG_BOOTARGS	 \
			"console=ttyO2,115200n8 "	\
			"mpurate=600 "			\
			"quiet noinitrd "		\
			"root=/dev/mmcblk0p2 rw "	\
			"rootfstype=ext3 rootwait " 
	#else
		#undef CONFIG_OMAP3_MMC
		#undef CONFIG_CMD_MMC		
		#undef CONFIG_CMD_FAT
		//#undef CONFIG_DOS_PARTITION

		#undef CONFIG_BOOTCOMMAND
		#define CONFIG_BOOTCOMMAND		\
			"nand read 0x82000000 280000 400000; " \
			"bootm 0x82000000;"

		#undef CONFIG_BOOTARGS
		#define CONFIG_BOOTARGS			\
			"console=ttyO2,115200n8 "	\
			"mpurate=600 "			\
			"quiet noinitrd "		\
			"root=ubi0:rootfs ubi.mtd=4 "	\
			"rootfstype=ubifs "
	#endif 	// #ifdef CONFIG_FAST_BOOT_MMC
	
	
	#undef CONFIG_USB_OMAP3 
	#undef CONFIG_MUSB_HCD 
	 
	#undef CONFIG_USB_STORAGE 
	#undef CONFIG_USB_KEYBOARD 
	#undef CONFIG_SYS_USB_EVENT_POLL
	#undef CONFIG_PREBOOT 
	 
	#undef CONFIG_MUSB_UDC 
	#undef CONFIG_USB_DEVICE 
	#undef CONFIG_USB_TTY 
Quoted 2 lines

#endif // CONFIG_FAST_BOOT

I haven't reviewed all the options in detail, but you can check this link where this topic is discussed in details.
http://processors.wiki.ti.com/index.php/Optimize_Linux_Boot_Time

BTW, I have few patches ready to post, but ran into issues when booting Linux on omap3evm on FRI - even without these patches. Will try to fix it, before sending the patches tomorrow.

~sanjeev

author
#3 lore raw

What does SPL stand for again? It looks really interesting.

Thanks.

Quoted 20 lines · Simon Schwarz
Quoted 9 lines · On 09/25/2011 10:03 PM, dtran11 wrote:

I am trying to make uboot boot as fast as possible for my omap3 Overo board.
I add the below to my config header file. Does anyone see anything I can add
to it to make the build smaller and faster? Thank you.

[SNIP]

This may be of interest to you:
http://article.gmane.org/**gmane.comp.boot-loaders.u-**boot/108814<http://article.gmane.org/gmane.comp.boot-loaders.u-boot/108814>

But will take some hacking to adapt.

Regards
Simon

#4 lore raw

Stands for Second Program Loader.

It loads the U-Boot and runs it - or with this patch a Linux Kernel.

Regards
Simon

Quoted 30 lines · Dat Tran

What does SPL stand for again? It looks really interesting.

Thanks.

On Mon, Sep 26, 2011 at 3:56 AM, Simon Schwarz
<simonschwarzcor at googlemail.com <mailto:[email protected]>> wrote:

On 09/25/2011 10:03 PM, dtran11 wrote:

I am trying to make uboot boot as fast as possible for my omap3 Overo board.
I add the below to my config header file. Does anyone see anything I can add
to it to make the build smaller and faster? Thank you.

[SNIP]

This may be of interest to you:
http://article.gmane.org/__gmane.comp.boot-loaders.u-__boot/108814
<http://article.gmane.org/gmane.comp.boot-loaders.u-boot/108814>

But will take some hacking to adapt.

Regards
Simon

author
#5 lore raw

Sorry for my ignorance on this issue. My current system (Overo) does this when it boots:

    ROM Code -> X-Load (MLO) -> U-Boot -> Linux Kernel -> Root File System

Does the SPL patch allow me to do this?:

    ROM Code -> U-Boot (MLO) -> Linux Kernel -> Root File System

Also running the latest X-Loader 1.50 and U-Boot 2011.09-rc1, it takes about 2 seconds from power on to starting the Linux Kernel. My Kernel takes 1 second to load and my file system takes another 1.5 seconds for a total of 4.5 seconds from power on to the login prompt on serial. I assume the U-Boot-SPL will only speed up the first half of my boot time. If so, how much of a difference do you think I will see with this patch.

Thanks.

Quoted 45 lines · Simon Schwarz

Stands for Second Program Loader.

It loads the U-Boot and runs it - or with this patch a Linux Kernel.

Regards
Simon

Quoted 34 lines · Dat Tran

What does SPL stand for again? It looks really interesting.

Thanks.

On Mon, Sep 26, 2011 at 3:56 AM, Simon Schwarz
<simonschwarzcor at googlemail.**com <[email protected]><mailto:
simonschwarzcor@**googlemail.com <[email protected]>>>

wrote:

On 09/25/2011 10:03 PM, dtran11 wrote:

I am trying to make uboot boot as fast as possible for my omap3 Overo board.
I add the below to my config header file. Does anyone see anything I can add
to it to make the build smaller and faster? Thank you.

   [SNIP]

   This may be of interest to you:
   http://article.gmane.org/__**gmane.comp.boot-loaders.u-__**boot/108814<http://article.gmane.org/__gmane.comp.boot-loaders.u-__boot/108814>
   <http://article.gmane.org/**gmane.comp.boot-loaders.u-**boot/108814<http://article.gmane.org/gmane.comp.boot-loaders.u-boot/108814>
Quoted 1 line

But will take some hacking to adapt.

Regards
Simon

#6 lore raw
Quoted 8 lines · Dat Tran

Sorry for my ignorance on this issue. My current system (Overo) does this when it boots:

     ROM Code -> X-Load (MLO) -> U-Boot -> Linux Kernel -> Root File System

Does the SPL patch allow me to do this?:

     ROM Code -> U-Boot (MLO) -> Linux Kernel -> Root File System

^U-Boot SPL

Quoted 7 lines

Also running the latest X-Loader 1.50 and U-Boot 2011.09-rc1, it takes about 2 seconds from power on to starting the Linux Kernel. My Kernel takes 1 second to load and my file system takes another 1.5 seconds for a total of 4.5 seconds from power on to the login prompt on serial. I assume the U-Boot-SPL will only speed up the first half of my boot time.

correct.

Quoted 1 line

If so, how much of a difference do you think I will see with this patch.

I can't say it for your case.

I did this on a devkit8000 loading from NAND. The U-Boot (unoptimized) took 3189 ms and Xloader took 1170 ms. By using the SPL this was reduced to 850 ms. Another patch I'am working on ATM is utilizing DMA to copy the Linux images - this reduces the time spend in SPL to 220 ms.

Quoted 3 lines

Thanks.

Regards
Simon

Quoted 53 lines

On Mon, Sep 26, 2011 at 7:40 AM, Simon Schwarz
<simonschwarzcor at googlemail.com <mailto:[email protected]>> wrote:

Stands for Second Program Loader.

It loads the U-Boot and runs it - or with this patch a Linux Kernel.

Regards
Simon

On 09/26/2011 02:30 PM, Dat Tran wrote:

What does SPL stand for again? It looks really interesting.

Thanks.

On Mon, Sep 26, 2011 at 3:56 AM, Simon Schwarz <simonschwarzcor@googlemail.__com <mailto:[email protected]> <mailto:simonschwarzcor@__googlemail.com <mailto:[email protected]>>>

wrote:

On 09/25/2011 10:03 PM, dtran11 wrote:

I am trying to make uboot boot as fast as possible for
my omap3
Overo board.
I add the below to my config header file. Does anyone see anything I can add
to it to make the build smaller and faster? Thank you.

[SNIP]

This may be of interest to you:
http://article.gmane.org/____gmane.comp.boot-loaders.u-____boot/108814
<http://article.gmane.org/__gmane.comp.boot-loaders.u-__boot/108814>
<http://article.gmane.org/__gmane.comp.boot-loaders.u-__boot/108814
<http://article.gmane.org/gmane.comp.boot-loaders.u-boot/108814>>

But will take some hacking to adapt.

Regards
Simon

author
#7 lore raw

That is amazing. I have been looking for this type of project for a long time. Thank you very much. I will start to look at your patches. Will the patches work well with the newer versions like U-Boot 2011.09 or later, or is there a more specific version you recommend. Thanks.

Quoted 105 lines · Simon Schwarz
Quoted 9 lines · Dat Tran

Sorry for my ignorance on this issue. My current system (Overo) does this when it boots:

    ROM Code -> X-Load (MLO) -> U-Boot -> Linux Kernel -> Root File System

Does the SPL patch allow me to do this?:

    ROM Code -> U-Boot (MLO) -> Linux Kernel -> Root File System

^U-Boot SPL

Quoted 7 lines

Also running the latest X-Loader 1.50 and U-Boot 2011.09-rc1, it takes about 2 seconds from power on to starting the Linux Kernel. My Kernel takes 1 second to load and my file system takes another 1.5 seconds for a total of 4.5 seconds from power on to the login prompt on serial. I assume the U-Boot-SPL will only speed up the first half of my boot time.

correct.

If so, how much of a difference do you think I will see with this patch.

Quoted 1 line

I can't say it for your case.

I did this on a devkit8000 loading from NAND. The U-Boot (unoptimized) took 3189 ms and Xloader took 1170 ms. By using the SPL this was reduced to 850 ms. Another patch I'am working on ATM is utilizing DMA to copy the Linux images - this reduces the time spend in SPL to 220 ms.

Quoted 3 lines

Thanks.

Regards
Simon

On Mon, Sep 26, 2011 at 7:40 AM, Simon Schwarz

Quoted 63 lines

<simonschwarzcor at googlemail.**com <[email protected]><mailto:
simonschwarzcor@**googlemail.com <[email protected]>>> wrote:

Stands for Second Program Loader.

It loads the U-Boot and runs it - or with this patch a Linux Kernel.

Regards
Simon

On 09/26/2011 02:30 PM, Dat Tran wrote:

What does SPL stand for again? It looks really interesting.

Thanks.

On Mon, Sep 26, 2011 at 3:56 AM, Simon Schwarz <simonschwarzcor@googlemail.__**com <mailto:simonschwarzcor@**googlemail.com<[email protected]>

Quoted 1 line

<mailto:simonschwarzcor@__goog**lemail.com <http://googlemail.com>

<mailto:simonschwarzcor@**googlemail.com<[email protected]>

Quoted 1 line
Quoted 1 line
Quoted 1 line

wrote:

On 09/25/2011 10:03 PM, dtran11 wrote:

I am trying to make uboot boot as fast as possible for
my omap3
Overo board.
I add the below to my config header file. Does anyone see anything I can add
to it to make the build smaller and faster? Thank you.

[SNIP]

This may be of interest to you:
http://article.gmane.org/____**gmane.comp.boot-loaders.u-____**
boot/108814<http://article.gmane.org/____gmane.comp.boot-loaders.u-____boot/108814>

       <http://article.gmane.org/__**gmane.comp.boot-loaders.u-__**

boot/108814<http://article.gmane.org/__gmane.comp.boot-loaders.u-__boot/108814>

Quoted 1 line
       <http://article.gmane.org/__**gmane.comp.boot-loaders.u-__**
boot/108814<http://article.gmane.org/__gmane.comp.boot-loaders.u-__boot/108814>
       <http://article.gmane.org/**gmane.comp.boot-loaders.u-**

boot/108814<http://article.gmane.org/gmane.comp.boot-loaders.u-boot/108814>

Quoted 1 line
Quoted 1 line

But will take some hacking to adapt.

Regards
Simon

#8 lore raw
In reply to Dat Tran

Dear Dat Tran,

Quoted 7 lines · In message <CAMCSx6YwUFRTzpkOjKSbfDTk5_x4_HraSy_Naq2oy0+DpfR-GA@mail.gmail.com>…

Also running the latest X-Loader 1.50 and U-Boot 2011.09-rc1, it takes about 2 seconds from power on to starting the Linux Kernel. My Kernel takes 1 second to load and my file system takes another 1.5 seconds for a total of 4.5 seconds from power on to the login prompt on serial. I assume the U-Boot-SPL will only speed up the first half of my boot time. If so, how much of a difference do you think I will see with this patch.

It may speed up more than just the first half, because, if done right, you will have the caches enabled in the new setup, which may speed up NAND loading by a factor of 10 or more...

Best regards,

Wolfgang Denk

Signature · 4 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Two wrongs don't make a right, but three rights make a left.