This series provides a way to compile in the contents of a device tree as C code into U-Boot. It is intended to deal with extremely tight environments where there is not enough space for the ~3KB device tree code overhead. Examples include SPL where there is only 16KB of available RAM yet a full MMC stack is required.
To provide a reasonable test environment, SPL support is added to sandbox, through a new 'sandbox_spl' target. A new tool 'dtoc' converts device tree data to C code (and structure definitions). More work is needed before this feature is ready for use, but this series contains enough to attract initial comments and testing. Simon Glass (31): sandbox: Don't print a warning for CONFIG_I2C_COMPAT README: Remove CONFIG_SYS_MALLOC_F_LEN comment spl: Drop include of i2c.h Makefile: Allow the SPL final link rule to be overridden sandbox: Allow chaining from SPL to U-Boot proper sandbox: Support building an SPL image sandbox: Correct header file order in cpu.c sandbox: Add some missing headers in cpu.c sandbox: Don't use PCI in SPL sandbox: Don't include the main loop in SPL sandbox: Add basic SPL implementation sandbox: Don't use IDE and iotrace in SPL sandbox: serial: Don't sync video in SPL sandbox: Add a new sandbox_spl board sandbox: Add a test device that uses of-platdata dm: spl: Don't set up device tree with of-platdata dm: Makefile: Build of-platdata before SPL dm: core: Don't use device tree with of-platdata dm: regmap: Add a dummy implementation for of-platdata dm: syscon: Add support for of-platdata dm: sandbox: Add a simple driver to test of-platdata dm: Add a header that provides access to the of-platdata structs dm: clk: Add support for of-platdata dm: serial: Add support for of-platdata dm: Don't include fdtdec functions when of-platdata is enabled dm: Add an option to enable the of-platdata feature dm: Add a README for of-platdata dm: Add a library to provide simple device-tree access dm: Add a tool to generate C code from a device tree dm: Makefile: Build of-platdata files when the feature is enabled dm: Add a more efficient libfdt library Makefile | 5 +- README | 3 - arch/sandbox/Kconfig | 7 +- arch/sandbox/config.mk | 5 + arch/sandbox/cpu/Makefile | 1 + arch/sandbox/cpu/cpu.c | 6 +- arch/sandbox/cpu/os.c | 51 ++++++ arch/sandbox/cpu/spl.c | 60 +++++++ arch/sandbox/cpu/start.c | 2 + arch/sandbox/cpu/u-boot-spl.lds | 24 +++ arch/sandbox/dts/sandbox.dts | 13 ++ arch/sandbox/include/asm/spl.h | 23 +++ arch/sandbox/lib/Makefile | 2 + board/sandbox/MAINTAINERS | 7 + common/spl/spl.c | 3 +- configs/sandbox_spl_defconfig | 177 +++++++++++++++++++ doc/driver-model/of-plat.txt | 266 +++++++++++++++++++++++++++++ drivers/clk/clk-uclass.c | 20 +++ drivers/clk/clk_fixed_rate.c | 2 + drivers/core/device.c | 2 +- drivers/core/lists.c | 2 +- drivers/core/regmap.c | 9 + drivers/core/root.c | 4 +- drivers/core/syscon-uclass.c | 13 ++ drivers/misc/Makefile | 5 + drivers/misc/spltest_sandbox.c | 28 +++ drivers/serial/sandbox.c | 2 + drivers/serial/serial-uclass.c | 8 +- dts/Kconfig | 21 +++ include/clk.h | 4 + include/configs/sandbox.h | 4 + include/configs/sandbox_spl.h | 20 +++ include/dt-structs.h | 19 +++ include/os.h | 25 +++ include/regmap.h | 3 + include/syscon.h | 6 + lib/Makefile | 5 +- lib/libfdt/libfdt.swig | 81 +++++++++ lib/libfdt/setup.py | 38 +++++ lib/libfdt/test_libfdt.py | 14 ++ scripts/Makefile.host | 9 +- scripts/Makefile.spl | 45 ++++- tools/Makefile | 11 ++ tools/dtoc/.gitignore | 1 + tools/dtoc/dtoc | 1 + tools/dtoc/dtoc.py | 365 ++++++++++++++++++++++++++++++++++++++++ tools/dtoc/fdt.py | 174 +++++++++++++++++++ tools/dtoc/fdt_fallback.py | 207 +++++++++++++++++++++++ tools/dtoc/fdt_util.py | 71 ++++++++ 49 files changed, 1849 insertions(+), 25 deletions(-) create mode 100644 arch/sandbox/cpu/spl.c create mode 100644 arch/sandbox/cpu/u-boot-spl.lds create mode 100644 arch/sandbox/include/asm/spl.h create mode 100644 configs/sandbox_spl_defconfig create mode 100644 doc/driver-model/of-plat.txt create mode 100644 drivers/misc/spltest_sandbox.c create mode 100644 include/configs/sandbox_spl.h create mode 100644 include/dt-structs.h create mode 100644 lib/libfdt/libfdt.swig create mode 100644 lib/libfdt/setup.py create mode 100644 lib/libfdt/test_libfdt.py create mode 100644 tools/dtoc/.gitignore create mode 120000 tools/dtoc/dtoc create mode 100755 tools/dtoc/dtoc.py create mode 100644 tools/dtoc/fdt.py create mode 100644 tools/dtoc/fdt_fallback.py create mode 100644 tools/dtoc/fdt_util.py -- 2.8.0.rc3.226.g39d4020 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot