[U-Boot] [PATCH v2 0/9] Introduce driver model serial uclass
Simon Glass
sjg at chromium.org
Sun Jul 13 20:27:33 CEST 2014
This series adds support for a serial uclass, enabling serial drivers to be
converted to use driver model.
Unfortunately this is quite a complicated process for a number of reasons:
- serial is used before relocation, but driver model does not support this
- stdio member functions are not passed a device pointer, but driver model
requires this (so does serial, but it uses an ugly work-around)
- driver model requires malloc() but this is not available before
relocation
- for sandbox, if something goes wrong with the console, we still need to
get an error message out through the fallback console
So this series relies on quite a few patches to address the above, as well
as the serial uclass and an implementation for sandbox.
If you have limited time, please take a look at least at the uclass patch
which is 'dm: Add a uclass for serial devices' (see include/serial.h).
Note: this series breaks 4 exynos boards. I will figure out how to get them
to build as part of the exynos5-dt common board work.
To see the current state of driver model, look at u-boot-dm.git branch
'working'.
Changes in v2:
- Add exynos serial support
- Remove RFC status
- Rename struct device to struct udevice
- Split out core driver model patches into a separate set
Simon Glass (9):
serial: Set up the 'priv' pointer when creating a serial device
dm: Add a uclass for serial devices
Set up stdio earlier when using driver model
sandbox: Convert serial driver to use driver model
sandbox: serial: Support a coloured console
sandbox: dts: Add a serial console node
dm: exynos: Mark exynos5 console as pre-reloc
dm: exynos: Move serial to driver model
dm: Make driver model available before board_init()
arch/arm/dts/exynos5.dtsi | 1 +
arch/sandbox/dts/sandbox.dts | 10 ++
common/board_r.c | 19 +--
common/stdio.c | 18 ++-
drivers/serial/Makefile | 4 +
drivers/serial/sandbox.c | 140 +++++++++++++++----
drivers/serial/serial-uclass.c | 197 +++++++++++++++++++++++++++
drivers/serial/serial.c | 1 +
drivers/serial/serial_s5p.c | 295 +++++++++++++----------------------------
include/configs/exynos5-dt.h | 1 +
include/configs/sandbox.h | 3 +
include/dm/uclass-id.h | 1 +
include/serial.h | 92 +++++++++++++
include/stdio_dev.h | 24 +++-
14 files changed, 566 insertions(+), 240 deletions(-)
create mode 100644 drivers/serial/serial-uclass.c
--
2.0.0.526.g5318336
More information about the U-Boot
mailing list