[U-Boot] [PATCH v2 0/16] dm: Implement driver model support in SPL

Now that driver model operations prior to relocation, the remaining area where it does not work is SPL. This series enables this.
Since SPL is quite memory-constrained, code and data size need to be kept as small as possible. This series includes a few changes to help with this:
- Small and simple malloc() implementation - Dropping device removal features - Dropping stdio features - Dropping driver model warnings
With these the code size impact of driver model is small, around 2-3KB. Data usage is typically 200-300 bytes. In many cases this can squeeze into the available SPL RAM space.
This requires a revert of the SPL global_data revert (commit 1ee30ae). I believe that is planned for early in this merge window. We need that revert undone to be able to support the simple malloc in SPL on ARM.
This series is available at u-boot-dm branch 'spl-working'.
Changes in v2: - Correct the Makefile condition for simple_malloc - Rebase on top of the SPI series - Rebase to master
Simon Glass (16): arm: spl: Avoid setting up a duplicate global data structure dm: dts: Move omap device tree includes to correct place dm: Split the simple malloc() implementation into its own file dm: arm: spl: Allow simple malloc() in SPL dm: spl: Make simple malloc() available when enabled dm: spl: Allow driver model to be used dm: Allow device removal features to be dropped dm: Allow stdio registration to be dropped dm: Disable dm_warn() in SPL dm: tegra: Add platform data for the SPL uart dm: tegra: Add platform data for the GPIO driver dm: arm: spl: Make driver model linker lists available dm: tegra: Enable driver model in SPL and adjust the GPIO driver dm: Update documentation to include CONFIG_DM... options WIP: Remove image tables in SPL (not to apply) skrink
README | 119 +++++++++++++ arch/arm/cpu/u-boot-spl.lds | 7 + arch/arm/dts/dt-bindings/gpio/gpio.h | 15 -- arch/arm/lib/crt0.S | 2 +- arch/arm/lib/spl.c | 4 - board/nvidia/common/board.c | 8 + board/nvidia/seaboard/seaboard.c | 4 +- common/Makefile | 3 + common/board_r.c | 3 +- common/dlmalloc.c | 19 +-- common/image.c | 17 +- common/malloc_simple.c | 38 +++++ common/spl/spl.c | 16 +- doc/driver-model/README.txt | 44 +++-- drivers/core/Makefile | 3 +- drivers/core/device-remove.c | 187 +++++++++++++++++++++ drivers/core/device.c | 168 ------------------ drivers/gpio/Makefile | 4 + drivers/gpio/tegra_gpio.c | 27 ++- drivers/serial/serial-uclass.c | 8 +- drivers/serial/serial_tegra.c | 16 ++ include/asm-generic/global_data.h | 1 + include/config_defaults.h | 6 + include/configs/tegra-common.h | 19 +-- include/dm/device-internal.h | 10 ++ include/dm/util.h | 6 + .../dts => include}/dt-bindings/pinctrl/am33xx.h | 0 .../arm/dts => include}/dt-bindings/pinctrl/omap.h | 0 include/malloc.h | 60 ++++--- scripts/Makefile.spl | 1 + 30 files changed, 542 insertions(+), 273 deletions(-) delete mode 100644 arch/arm/dts/dt-bindings/gpio/gpio.h create mode 100644 common/malloc_simple.c create mode 100644 drivers/core/device-remove.c rename {arch/arm/dts => include}/dt-bindings/pinctrl/am33xx.h (100%) rename {arch/arm/dts => include}/dt-bindings/pinctrl/omap.h (100%)

On 23 October 2014 13:15, Simon Glass sjg@chromium.org wrote:
Now that driver model operations prior to relocation, the remaining area where it does not work is SPL. This series enables this.
Since SPL is quite memory-constrained, code and data size need to be kept as small as possible. This series includes a few changes to help with this:
- Small and simple malloc() implementation
- Dropping device removal features
- Dropping stdio features
- Dropping driver model warnings
With these the code size impact of driver model is small, around 2-3KB. Data usage is typically 200-300 bytes. In many cases this can squeeze into the available SPL RAM space.
This requires a revert of the SPL global_data revert (commit 1ee30ae). I believe that is planned for early in this merge window. We need that revert undone to be able to support the simple malloc in SPL on ARM.
This series is available at u-boot-dm branch 'spl-working'.
Please ignore this email, sorry.
Regards, Simon
participants (1)
-
Simon Glass