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

Simon Glass sjg at chromium.org
Wed Sep 24 01:29:54 CEST 2014


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
on ARMv7. Data usage is typically 200-300 bytes. In many cases this can
squeeze into the available SPL RAM space.

Note this is an RFC mainly because of the SPL global_data revert (commit
1ee30ae) since 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'.


Simon Glass (14):
  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: Don't used named GPIOs in SPL
  dm: tegra: Enable driver model in SPL and adjust the GPIO driver
  dm: Update documentation to include CONFIG_DM... options

 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 +-
 board/nvidia/common/board.c                        |   8 +
 board/nvidia/seaboard/seaboard.c                   |   4 +-
 common/Makefile                                    |   1 +
 common/board_r.c                                   |   3 +-
 common/dlmalloc.c                                  |  19 +--
 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                          |  67 +++++---
 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                     |  12 +-
 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 +
 28 files changed, 555 insertions(+), 270 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%)

-- 
2.1.0.rc2.206.gedb03e5



More information about the U-Boot mailing list