Default configuration enables multiple features
that are great for intial development work. But
many of them are not useful when time taken to
boot kernel is important - and uboot is frozen.

This patch attempts to reduce the size of u-boot
binary by excluding unused/not-so-commonly used
features/commands. It allows initialization of
unused devices to be skipped.

Less time to load the binary and selective
initialization results in considerable reduction
in the boot time.

Signed-off-by: Sanjeev Premi <pr...@ti.com>
---
v2: Replaced occurences of "fast" with "quick"
    to avoid any confusion with "fastboot" in
    Android.

 include/configs/omap3_evm.h |  138 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 138 insertions(+), 0 deletions(-)

diff --git a/include/configs/omap3_evm.h b/include/configs/omap3_evm.h
index 271c985..ce681b1 100644
--- a/include/configs/omap3_evm.h
+++ b/include/configs/omap3_evm.h
@@ -378,4 +378,142 @@ extern unsigned int boot_flash_type;
 #define CONFIG_BOOTP_HOSTNAME          0x00000004
 #define CONFIG_BOOTP_BOOTPATH          0x00000010
 
+/*
+ * Support for quick boot
+ *
+ * In default build, the feature is disabled. To use the feature:
+ * 1) Define CONFIG_QUICK_BOOT
+ * 2) Select the device used as boot medium, by defining one of:
+ *    - CONFIG_QUICK_BOOT_MMC
+ *    - CONFIG_QUICK_BOOT_NAND
+ */
+#undef CONFIG_QUICK_BOOT
+#undef CONFIG_QUICK_BOOT_MMC
+#undef CONFIG_QUICK_BOOT_NAND
+
+#ifdef CONFIG_QUICK_BOOT
+       /*
+        * Generic config options
+        */
+       #ifndef CONFIG_SILENT_CONSOLE
+               #define CONFIG_SILENT_CONSOLE   1
+       #endif
+
+       #ifndef CONFIG_ENV_IS_NOWHERE
+               #define CONFIG_ENV_IS_NOWHERE   1
+       #endif
+
+       /*
+        * Exclude unused/rarely used features.
+        */
+       #undef CONFIG_SYS_LONGHELP
+       #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_IMI
+       #undef CONFIG_CMD_ITEST
+       #undef CONFIG_CMD_LOADB
+       #undef CONFIG_CMD_LOADS
+       #undef CONFIG_CMD_NET
+       #undef CONFIG_CMD_NFS
+       #undef CONFIG_CMD_SETGETDCR
+       #undef CONFIG_CMD_SOURCE
+       #undef CONFIG_CMD_XIMG
+       #undef CONFIG_CMD_FPGA
+       #undef CONFIG_CMD_IMLS
+       #undef CONFIG_CMD_FLASH
+       #undef CONFIG_CMD_EXT2
+       #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
+
+       /*
+        * Select options based on choice of boot medium.
+        */
+       #ifdef CONFIG_QUICK_BOOT_MMC
+               #undef CONFIG_NAND_OMAP_GPMC
+               #undef CONFIG_ENV_IS_IN_NAND
+               #undef CONFIG_CMD_NAND
+       #endif
+
+       #ifdef CONFIG_QUICK_BOOT_MMC
+               #undef CONFIG_ENV_IS_IN_NAND
+               #undef CONFIG_CMD_NAND
+
+               #undef CONFIG_BOOTCOMMAND
+               #define CONFIG_BOOTCOMMAND                      \
+                       "mmc init; "                            \
+                       "fatload mmc 0 0x80000000 uImage; "     \
+                       "bootm 0x80000000;"
+
+               #undef CONFIG_BOOTARGS
+               #define CONFIG_BOOTARGS                 \
+                       "console=ttyS0,115200n8 "       \
+                       "mem=128M quiet noinitrd"       \
+                       "root=/dev/mmcblk0p2 rw "       \
+                       "rootfstype=ext3 rootwait "
+       #endif
+
+       #ifdef CONFIG_QUICK_BOOT_NAND
+               # undef CONFIG_OMAP3_MMC
+               # undef CONFIG_CMD_MMC
+               # undef CONFIG_DOS_PARTITION
+               # undef CONFIG_CMD_FAT
+
+               #undef CONFIG_BOOTCOMMAND
+               #define CONFIG_BOOTCOMMAND              \
+                       "nand read.i 0x80000000 280000 500000; " \
+                       "bootm 0x80000000;"
+
+               #undef CONFIG_BOOTARGS
+               #define CONFIG_BOOTARGS                 \
+                       "console=ttyS0,115200n8 "       \
+                       "mem=128M quiet noinitrd"       \
+                       "root=/dev/mtdblock4 rw "       \
+                       "rootfstype=jffs2 "
+       #endif
+
+       /*
+        * Board specific features
+        * Exclude not-so-common features
+        */
+       #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 /* #ifdef CONFIG_QUICK_BOOT */
+
 #endif /* __CONFIG_H */
-- 
1.7.2.2

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to