[U-Boot] [RFC PATCH v1 0/9] Prototype for generic SPL framework

Daniel Schwierzeck
2011-07-13T15:11:00Z

This patch series is the final proposal from Aneesh and myself for a
generic SPL framework. The implementation already works and have been
tested with in-tree and out-of-tree builds. The latest feedback
from ML is already included.

How it works

There is a new directory TOPDIR/spl which contains only a Makefile.
All source files needed by SPL are recompiled inside this directory
and linked to the final binaries named u-boot-spl[.bin|.map].

During the SPL build a variable named CONFIG_SPL_BUILD is exported
in the make environment and also appended to CPPFLAGS
with -DCONFIG_SPL_BUILD. Thus makefiles and source files are able to
build things differently for SPL.

Config options

CONFIG_SPL
Enable building of SPL globally.

CONFIG_SPL_TEXT_BASE
TEXT_BASE that is used when linking the SPL binary.

CONFIG_SPL_GC_SECTIONS
Optionally enforce garbage collecting of sections for SPL.
Useful if this is not yet fully supported by ARCH, CPU or SOC

CONFIG_SPL_LIBCOMMON_SUPPORT
CONFIG_SPL_LIBDISK_SUPPORT
CONFIG_SPL_I2C_SUPPORT
CONFIG_SPL_GPIO_SUPPORT
CONFIG_SPL_MMC_SUPPORT
CONFIG_SPL_SERIAL_SUPPORT
CONFIG_SPL_SPI_FLASH_SUPPORT
CONFIG_SPL_SPI_SUPPORT
CONFIG_SPL_FAT_SUPPORT
CONFIG_SPL_LIBGENERIC_SUPPORT
Enable building and linking of common libraries and drivers into the
SPL binary.

Aneesh V (3):
arm: adjust PLATFORM_LIBS for SPL
scaled down version of generic libraries for SPL
replace CONFIG_PRELOADER with CONFIG_SPL_BUILD

Daniel Schwierzeck (6):
Use ALL-y style instead of ifeq blocks for better readability
spl: add initial support for a generic SPL framework
Extend build-system for SPL framework
Hook SPL build-system into toplevel Makefile
spl: Add support for common libraries and drivers
spl: add support for omap-common libraries

Makefile | 28 +++----
README | 2 +-
arch/arm/config.mk | 11 ++-
arch/arm/cpu/arm1136/start.S | 20 +++---
arch/arm/cpu/arm1176/start.S | 4 +-
arch/arm/cpu/arm720t/start.S | 4 +-
arch/arm/cpu/arm920t/start.S | 4 +-
arch/arm/cpu/arm925t/start.S | 4 +-
arch/arm/cpu/arm926ejs/start.S | 18 ++--
arch/arm/cpu/arm946es/start.S | 4 +-
arch/arm/cpu/arm_intcm/start.S | 4 +-
arch/arm/cpu/armv7/start.S | 6 +-
arch/arm/cpu/ixp/start.S | 4 +-
arch/arm/cpu/lh7a40x/start.S | 4 +-
arch/arm/cpu/pxa/start.S | 30 ++++----
arch/arm/cpu/s3c44b0/start.S | 4 +-
arch/arm/cpu/sa1100/start.S | 4 +-
arch/arm/lib/Makefile | 2 +
arch/arm/lib/board.c | 2 +-
arch/blackfin/config.mk | 2 +-
board/pcs440ep/config.mk | 2 +-
board/spear/spear300/config.mk | 2 +-
board/spear/spear310/config.mk | 2 +-
board/spear/spear320/config.mk | 2 +-
board/spear/spear600/config.mk | 2 +-
common/Makefile | 9 ++-
config.mk | 36 +++++++++-
drivers/serial/Makefile | 3 +
fs/fat/Makefile | 6 +-
lib/Makefile | 11 ++-
mmc_spl/board/samsung/smdkv310/Makefile | 2 +-
nand_spl/board/davinci/da8xxevm/Makefile | 4 +-
nand_spl/board/freescale/mx31pdk/Makefile | 4 +-
nand_spl/board/karo/tx25/Makefile | 4 +-
onenand_ipl/board/apollon/Makefile | 4 +-
onenand_ipl/board/vpac270/Makefile | 4 +-
spl/.gitignore | 4 +
spl/Makefile | 119 +++++++++++++++++++++++++++++
38 files changed, 278 insertions(+), 103 deletions(-)
create mode 100644 spl/.gitignore
create mode 100644 spl/Makefile

--
1.7.6