Message ID | 1490847758-29689-1-git-send-email-sumit.garg@nxp.com |
---|---|
State | Accepted |
Delegated to: | York Sun |
Headers | show |
On 03/29/2017 09:55 AM, Sumit Garg wrote: > Using changes in this patch we were able to reduce approx 10k > size of u-boot-spl.bin image. Following is breif description of > changes to reduce SPL size: > 1. Changes in board/freescale/ls1043ardb/Makefile to remove > compilation of eth.c and cpld.c in case of SPL build. > 2. Changes in board/freescale/ls1043ardb/ls1043ardb.c to keep > only ddr_init and board_early_init_f funcations in case of SPL > build. > 3. Changes in ls1043a_common.h & ls1043ardb.h to remove driver > specific macros due to which static data was being compiled in > case of SPL build. > 4. Disable MMC driver from bieng compiled in case of SPL NAND > build and NAND driver from bieng compiled in case of SPL MMC build. > 5. Remove I2C driver support from SPL in case of LS1043ARDB. > > Signed-off-by: Vinitha Pillai <vinitha.pillai@nxp.com> > Signed-off-by: Sumit Garg <sumit.garg@nxp.com> > --- > > Changes in v5: > Move macros from rdb specfic header file to common header file. > > Changes in v4: > Rename macros in header files. > > Changes in v3: > Reorganised way to remove driver macros in ls1043a_common.h & ls1043ardb.h > files for easy maintainability. > > Changes in v2: > Rebased and fixed compilation warning on ls1043aqds. > > board/freescale/ls1043aqds/Makefile | 2 ++ > board/freescale/ls1043ardb/Makefile | 4 +++- > board/freescale/ls1043ardb/ls1043ardb.c | 18 +++++++++++------- > configs/ls1043ardb_sdcard_defconfig | 1 - > include/configs/ls1043a_common.h | 33 +++++++++++++++++++++++++++++++++ > include/configs/ls1043ardb.h | 14 ++++++++++++++ > 6 files changed, 63 insertions(+), 9 deletions(-) > > diff --git a/board/freescale/ls1043aqds/Makefile b/board/freescale/ls1043aqds/Makefile > index f727bfd..49d8d7d 100644 > --- a/board/freescale/ls1043aqds/Makefile > +++ b/board/freescale/ls1043aqds/Makefile > @@ -5,5 +5,7 @@ > # > > obj-y += ddr.o > +ifndef CONFIG_SPL_BUILD > obj-y += eth.o > +endif > obj-y += ls1043aqds.o > diff --git a/board/freescale/ls1043ardb/Makefile b/board/freescale/ls1043ardb/Makefile > index 5fe1cc9..2a4452e 100644 > --- a/board/freescale/ls1043ardb/Makefile > +++ b/board/freescale/ls1043ardb/Makefile > @@ -4,7 +4,9 @@ > # SPDX-License-Identifier: GPL-2.0+ > # > > -obj-y += cpld.o > obj-y += ddr.o > obj-y += ls1043ardb.o > +ifndef CONFIG_SPL_BUILD > obj-$(CONFIG_SYS_DPAA_FMAN) += eth.o > +obj-y += cpld.o > +endif > diff --git a/board/freescale/ls1043ardb/ls1043ardb.c b/board/freescale/ls1043ardb/ls1043ardb.c > index 2333843..6de7f9a 100644 > --- a/board/freescale/ls1043ardb/ls1043ardb.c > +++ b/board/freescale/ls1043ardb/ls1043ardb.c > @@ -29,6 +29,15 @@ > > DECLARE_GLOBAL_DATA_PTR; > > +int board_early_init_f(void) > +{ > + fsl_lsch2_early_init_f(); > + > + return 0; > +} > + > +#ifndef CONFIG_SPL_BUILD > + > int checkboard(void) > { > static const char *freq[2] = {"100.00MHZ", "156.25MHZ"}; > @@ -67,13 +76,6 @@ int checkboard(void) > return 0; > } > > -int board_early_init_f(void) > -{ > - fsl_lsch2_early_init_f(); > - > - return 0; > -} > - > int board_init(void) > { > struct ccsr_scfg *scfg = (struct ccsr_scfg *)CONFIG_SYS_FSL_SCFG_ADDR; > @@ -215,3 +217,5 @@ u16 flash_read16(void *addr) > > return (((val) >> 8) & 0x00ff) | (((val) << 8) & 0xff00); > } > + > +#endif > diff --git a/configs/ls1043ardb_sdcard_defconfig b/configs/ls1043ardb_sdcard_defconfig > index e57c42b..6bebbd9 100644 > --- a/configs/ls1043ardb_sdcard_defconfig > +++ b/configs/ls1043ardb_sdcard_defconfig > @@ -17,7 +17,6 @@ CONFIG_SPL=y > CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y > CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0xf0 > CONFIG_SPL_ENV_SUPPORT=y > -CONFIG_SPL_I2C_SUPPORT=y > CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT=y > CONFIG_HUSH_PARSER=y > CONFIG_CMD_GPT=y > diff --git a/include/configs/ls1043a_common.h b/include/configs/ls1043a_common.h > index 5a5f951..58e2338 100644 > --- a/include/configs/ls1043a_common.h > +++ b/include/configs/ls1043a_common.h > @@ -7,6 +7,25 @@ > #ifndef __LS1043A_COMMON_H > #define __LS1043A_COMMON_H > > +/* SPL build */ > +#ifdef CONFIG_SPL_BUILD > +#define SPL_NO_FMAN > +#define SPL_NO_DSPI > +#define SPL_NO_PCIE > +#define SPL_NO_ENV > +#define SPL_NO_MISC > +#define SPL_NO_USB > +#define SPL_NO_SATA > +#define SPL_NO_QE > +#define SPL_NO_EEPROM > +#endif > +#if (defined(CONFIG_SPL_BUILD) && defined(CONFIG_NAND_BOOT)) > +#define SPL_NO_MMC > +#endif > +#if (defined(CONFIG_SPL_BUILD) && defined(CONFIG_SD_BOOT)) > +#define SPL_NO_IFC > +#endif > + > #define CONFIG_REMAKE_ELF > #define CONFIG_FSL_LAYERSCAPE > #define CONFIG_LS1043A > @@ -82,6 +101,7 @@ > #endif > > /* IFC */ > +#ifndef SPL_NO_IFC > #if !defined(CONFIG_QSPI_BOOT) && !defined(CONFIG_SD_BOOT_QSPI) > #define CONFIG_FSL_IFC > /* > @@ -102,6 +122,7 @@ > #define CONFIG_FLASH_SHOW_PROGRESS 45 /* count down from 45/5: 9..1 */ > #endif > #endif > +#endif > > /* I2C */ > #define CONFIG_SYS_I2C > @@ -112,6 +133,7 @@ > #define CONFIG_SYS_I2C_MXC_I2C4 > > /* PCIe */ > +#ifndef SPL_NO_PCIE > #define CONFIG_PCIE1 /* PCIE controller 1 */ > #define CONFIG_PCIE2 /* PCIE controller 2 */ > #define CONFIG_PCIE3 /* PCIE controller 3 */ > @@ -121,17 +143,23 @@ > #define CONFIG_PCI_SCAN_SHOW > #define CONFIG_CMD_PCI > #endif > +#endif > > /* Command line configuration */ > +#ifndef SPL_NO_ENV > #define CONFIG_CMD_ENV > +#endif > > /* MMC */ > +#ifndef SPL_NO_MMC > #ifdef CONFIG_MMC > #define CONFIG_FSL_ESDHC > #define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33 > #endif > +#endif > > /* DSPI */ > +#ifndef SPL_NO_DSPI > #define CONFIG_FSL_DSPI > #ifdef CONFIG_FSL_DSPI > #define CONFIG_DM_SPI_FLASH > @@ -143,8 +171,10 @@ > #define CONFIG_SF_DEFAULT_CS 0 > #endif > #endif > +#endif > > /* FMan ucode */ > +#ifndef SPL_NO_FMAN > #define CONFIG_SYS_DPAA_FMAN > #ifdef CONFIG_SYS_DPAA_FMAN > #define CONFIG_SYS_FM_MURAM_SIZE 0x60000 > @@ -176,6 +206,7 @@ > #define CONFIG_SYS_QE_FMAN_FW_LENGTH 0x10000 > #define CONFIG_SYS_FDT_PAD (0x3000 + CONFIG_SYS_QE_FMAN_FW_LENGTH) > #endif > +#endif > > /* Miscellaneous configurable options */ > #define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_DDR_SDRAM_BASE + 0x10000000) > @@ -183,6 +214,7 @@ > #define CONFIG_HWCONFIG > #define HWCONFIG_BUFFER_SIZE 128 > > +#ifndef SPL_NO_MISC > #if defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI) > #define MTDPARTS_DEFAULT "mtdparts=spi0.0:1m(uboot)," \ > "5m(kernel),1m(dtb),9m(file_system)" > @@ -221,6 +253,7 @@ > #define CONFIG_BOOTCOMMAND "cp.b $kernel_start $kernel_load " \ > "$kernel_size && bootm $kernel_load" > #endif > +#endif > > /* Monitor Command Prompt */ > #define CONFIG_SYS_CBSIZE 512 /* Console I/O Buffer Size */ Looks like you missed CONFIG_CMDLINE_EDITING in this patch. I will add it for you. York
On 03/29/2017 09:55 AM, Sumit Garg wrote: > Using changes in this patch we were able to reduce approx 10k > size of u-boot-spl.bin image. Following is breif description of > changes to reduce SPL size: > 1. Changes in board/freescale/ls1043ardb/Makefile to remove > compilation of eth.c and cpld.c in case of SPL build. > 2. Changes in board/freescale/ls1043ardb/ls1043ardb.c to keep > only ddr_init and board_early_init_f funcations in case of SPL > build. > 3. Changes in ls1043a_common.h & ls1043ardb.h to remove driver > specific macros due to which static data was being compiled in > case of SPL build. > 4. Disable MMC driver from bieng compiled in case of SPL NAND > build and NAND driver from bieng compiled in case of SPL MMC build. > 5. Remove I2C driver support from SPL in case of LS1043ARDB. > > Signed-off-by: Vinitha Pillai <vinitha.pillai@nxp.com> > Signed-off-by: Sumit Garg <sumit.garg@nxp.com> > --- > > Changes in v5: > Move macros from rdb specfic header file to common header file. > > Changes in v4: > Rename macros in header files. > > Changes in v3: > Reorganised way to remove driver macros in ls1043a_common.h & ls1043ardb.h > files for easy maintainability. > > Changes in v2: > Rebased and fixed compilation warning on ls1043aqds. > Applied to u-boot-fsl-qoriq master, awaiting upstream. Thanks. York
diff --git a/board/freescale/ls1043aqds/Makefile b/board/freescale/ls1043aqds/Makefile index f727bfd..49d8d7d 100644 --- a/board/freescale/ls1043aqds/Makefile +++ b/board/freescale/ls1043aqds/Makefile @@ -5,5 +5,7 @@ # obj-y += ddr.o +ifndef CONFIG_SPL_BUILD obj-y += eth.o +endif obj-y += ls1043aqds.o diff --git a/board/freescale/ls1043ardb/Makefile b/board/freescale/ls1043ardb/Makefile index 5fe1cc9..2a4452e 100644 --- a/board/freescale/ls1043ardb/Makefile +++ b/board/freescale/ls1043ardb/Makefile @@ -4,7 +4,9 @@ # SPDX-License-Identifier: GPL-2.0+ # -obj-y += cpld.o obj-y += ddr.o obj-y += ls1043ardb.o +ifndef CONFIG_SPL_BUILD obj-$(CONFIG_SYS_DPAA_FMAN) += eth.o +obj-y += cpld.o +endif diff --git a/board/freescale/ls1043ardb/ls1043ardb.c b/board/freescale/ls1043ardb/ls1043ardb.c index 2333843..6de7f9a 100644 --- a/board/freescale/ls1043ardb/ls1043ardb.c +++ b/board/freescale/ls1043ardb/ls1043ardb.c @@ -29,6 +29,15 @@ DECLARE_GLOBAL_DATA_PTR; +int board_early_init_f(void) +{ + fsl_lsch2_early_init_f(); + + return 0; +} + +#ifndef CONFIG_SPL_BUILD + int checkboard(void) { static const char *freq[2] = {"100.00MHZ", "156.25MHZ"}; @@ -67,13 +76,6 @@ int checkboard(void) return 0; } -int board_early_init_f(void) -{ - fsl_lsch2_early_init_f(); - - return 0; -} - int board_init(void) { struct ccsr_scfg *scfg = (struct ccsr_scfg *)CONFIG_SYS_FSL_SCFG_ADDR; @@ -215,3 +217,5 @@ u16 flash_read16(void *addr) return (((val) >> 8) & 0x00ff) | (((val) << 8) & 0xff00); } + +#endif diff --git a/configs/ls1043ardb_sdcard_defconfig b/configs/ls1043ardb_sdcard_defconfig index e57c42b..6bebbd9 100644 --- a/configs/ls1043ardb_sdcard_defconfig +++ b/configs/ls1043ardb_sdcard_defconfig @@ -17,7 +17,6 @@ CONFIG_SPL=y CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0xf0 CONFIG_SPL_ENV_SUPPORT=y -CONFIG_SPL_I2C_SUPPORT=y CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_GPT=y diff --git a/include/configs/ls1043a_common.h b/include/configs/ls1043a_common.h index 5a5f951..58e2338 100644 --- a/include/configs/ls1043a_common.h +++ b/include/configs/ls1043a_common.h @@ -7,6 +7,25 @@ #ifndef __LS1043A_COMMON_H #define __LS1043A_COMMON_H +/* SPL build */ +#ifdef CONFIG_SPL_BUILD +#define SPL_NO_FMAN +#define SPL_NO_DSPI +#define SPL_NO_PCIE +#define SPL_NO_ENV +#define SPL_NO_MISC +#define SPL_NO_USB +#define SPL_NO_SATA +#define SPL_NO_QE +#define SPL_NO_EEPROM +#endif +#if (defined(CONFIG_SPL_BUILD) && defined(CONFIG_NAND_BOOT)) +#define SPL_NO_MMC +#endif +#if (defined(CONFIG_SPL_BUILD) && defined(CONFIG_SD_BOOT)) +#define SPL_NO_IFC +#endif + #define CONFIG_REMAKE_ELF #define CONFIG_FSL_LAYERSCAPE #define CONFIG_LS1043A @@ -82,6 +101,7 @@ #endif /* IFC */ +#ifndef SPL_NO_IFC #if !defined(CONFIG_QSPI_BOOT) && !defined(CONFIG_SD_BOOT_QSPI) #define CONFIG_FSL_IFC /* @@ -102,6 +122,7 @@ #define CONFIG_FLASH_SHOW_PROGRESS 45 /* count down from 45/5: 9..1 */ #endif #endif +#endif /* I2C */ #define CONFIG_SYS_I2C @@ -112,6 +133,7 @@ #define CONFIG_SYS_I2C_MXC_I2C4 /* PCIe */ +#ifndef SPL_NO_PCIE #define CONFIG_PCIE1 /* PCIE controller 1 */ #define CONFIG_PCIE2 /* PCIE controller 2 */ #define CONFIG_PCIE3 /* PCIE controller 3 */ @@ -121,17 +143,23 @@ #define CONFIG_PCI_SCAN_SHOW #define CONFIG_CMD_PCI #endif +#endif /* Command line configuration */ +#ifndef SPL_NO_ENV #define CONFIG_CMD_ENV +#endif /* MMC */ +#ifndef SPL_NO_MMC #ifdef CONFIG_MMC #define CONFIG_FSL_ESDHC #define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33 #endif +#endif /* DSPI */ +#ifndef SPL_NO_DSPI #define CONFIG_FSL_DSPI #ifdef CONFIG_FSL_DSPI #define CONFIG_DM_SPI_FLASH @@ -143,8 +171,10 @@ #define CONFIG_SF_DEFAULT_CS 0 #endif #endif +#endif /* FMan ucode */ +#ifndef SPL_NO_FMAN #define CONFIG_SYS_DPAA_FMAN #ifdef CONFIG_SYS_DPAA_FMAN #define CONFIG_SYS_FM_MURAM_SIZE 0x60000 @@ -176,6 +206,7 @@ #define CONFIG_SYS_QE_FMAN_FW_LENGTH 0x10000 #define CONFIG_SYS_FDT_PAD (0x3000 + CONFIG_SYS_QE_FMAN_FW_LENGTH) #endif +#endif /* Miscellaneous configurable options */ #define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_DDR_SDRAM_BASE + 0x10000000) @@ -183,6 +214,7 @@ #define CONFIG_HWCONFIG #define HWCONFIG_BUFFER_SIZE 128 +#ifndef SPL_NO_MISC #if defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI) #define MTDPARTS_DEFAULT "mtdparts=spi0.0:1m(uboot)," \ "5m(kernel),1m(dtb),9m(file_system)" @@ -221,6 +253,7 @@ #define CONFIG_BOOTCOMMAND "cp.b $kernel_start $kernel_load " \ "$kernel_size && bootm $kernel_load" #endif +#endif /* Monitor Command Prompt */ #define CONFIG_SYS_CBSIZE 512 /* Console I/O Buffer Size */ diff --git a/include/configs/ls1043ardb.h b/include/configs/ls1043ardb.h index f185380..ea929d1 100644 --- a/include/configs/ls1043ardb.h +++ b/include/configs/ls1043ardb.h @@ -90,7 +90,9 @@ /* * NAND Flash Definitions */ +#ifndef SPL_NO_IFC #define CONFIG_NAND_FSL_IFC +#endif #define CONFIG_SYS_NAND_BASE 0x7e800000 #define CONFIG_SYS_NAND_BASE_PHYS CONFIG_SYS_NAND_BASE @@ -213,6 +215,7 @@ #define CONFIG_SYS_CS2_FTIM3 CONFIG_SYS_CPLD_FTIM3 /* EEPROM */ +#ifndef SPL_NO_EEPROM #define CONFIG_ID_EEPROM #define CONFIG_SYS_I2C_EEPROM_NXID #define CONFIG_SYS_EEPROM_BUS_NUM 0 @@ -220,11 +223,14 @@ #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 5 +#endif /* * Environment */ +#ifndef SPL_NO_ENV #define CONFIG_ENV_OVERWRITE +#endif #if defined(CONFIG_NAND_BOOT) #define CONFIG_ENV_IS_IN_NAND @@ -243,6 +249,7 @@ #endif /* FMan */ +#ifndef SPL_NO_FMAN #ifdef CONFIG_SYS_DPAA_FMAN #define CONFIG_FMAN_ENET #define CONFIG_PHYLIB @@ -266,23 +273,29 @@ #define CONFIG_ETHPRIME "FM1@DTSEC3" #endif +#endif /* QE */ +#ifndef SPL_NO_QE #if !defined(CONFIG_SD_BOOT) && !defined(CONFIG_NAND_BOOT) && \ !defined(CONFIG_QSPI_BOOT) #define CONFIG_U_QE #endif #define CONFIG_SYS_QE_FW_ADDR 0x60600000 +#endif /* USB */ +#ifndef SPL_NO_USB #define CONFIG_HAS_FSL_XHCI_USB #ifdef CONFIG_HAS_FSL_XHCI_USB #define CONFIG_USB_XHCI_FSL #define CONFIG_USB_MAX_CONTROLLER_COUNT 3 #define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2 #endif +#endif /* SATA */ +#ifndef SPL_NO_SATA #define CONFIG_LIBATA #define CONFIG_SCSI_AHCI #define CONFIG_CMD_SCSI @@ -299,6 +312,7 @@ #define SCSI_VEND_ID 0x1b4b #define SCSI_DEV_ID 0x9170 #define CONFIG_SCSI_DEV_LIST {SCSI_VEND_ID, SCSI_DEV_ID} +#endif #include <asm/fsl_secure_boot.h>