|
@@ -623,6 +623,120 @@ The following options need to be configured:
|
|
|
exists, unlike the similar options in the Linux kernel. Do not
|
|
|
set these options unless they apply!
|
|
|
|
|
|
+- Driver Model
|
|
|
+ Driver model is a new framework for devices in U-Boot
|
|
|
+ introduced in early 2014. U-Boot is being progressively
|
|
|
+ moved over to this. It offers a consistent device structure,
|
|
|
+ supports grouping devices into classes and has built-in
|
|
|
+ handling of platform data and device tree.
|
|
|
+
|
|
|
+ To enable transition to driver model in a relatively
|
|
|
+ painful fashion, each subsystem can be independently
|
|
|
+ switched between the legacy/ad-hoc approach and the new
|
|
|
+ driver model using the options below. Also, many uclass
|
|
|
+ interfaces include compatibility features which may be
|
|
|
+ removed once the conversion of that subsystem is complete.
|
|
|
+ As a result, the API provided by the subsystem may in fact
|
|
|
+ not change with driver model.
|
|
|
+
|
|
|
+ See doc/driver-model/README.txt for more information.
|
|
|
+
|
|
|
+ CONFIG_DM
|
|
|
+
|
|
|
+ Enable driver model. This brings in the core support,
|
|
|
+ including scanning of platform data on start-up. If
|
|
|
+ CONFIG_OF_CONTROL is enabled, the device tree will be
|
|
|
+ scanned also when available.
|
|
|
+
|
|
|
+ CONFIG_CMD_DM
|
|
|
+
|
|
|
+ Enable driver model test commands. These allow you to print
|
|
|
+ out the driver model tree and the uclasses.
|
|
|
+
|
|
|
+ CONFIG_DM_DEMO
|
|
|
+
|
|
|
+ Enable some demo devices and the 'demo' command. These are
|
|
|
+ really only useful for playing around while trying to
|
|
|
+ understand driver model in sandbox.
|
|
|
+
|
|
|
+ CONFIG_SPL_DM
|
|
|
+
|
|
|
+ Enable driver model in SPL. You will need to provide a
|
|
|
+ suitable malloc() implementation. If you are not using the
|
|
|
+ full malloc() enabled by CONFIG_SYS_SPL_MALLOC_START,
|
|
|
+ consider using CONFIG_SYS_MALLOC_SIMPLE. In that case you
|
|
|
+ must provide CONFIG_SYS_MALLOC_F_LEN to set the size.
|
|
|
+ In most cases driver model will only allocate a few uclasses
|
|
|
+ and devices in SPL, so 1KB should be enable. See
|
|
|
+ CONFIG_SYS_MALLOC_F_LEN for more details on how to enable
|
|
|
+ it.
|
|
|
+
|
|
|
+ CONFIG_DM_SERIAL
|
|
|
+
|
|
|
+ Enable driver model for serial. This replaces
|
|
|
+ drivers/serial/serial.c with the serial uclass, which
|
|
|
+ implements serial_putc() etc. The uclass interface is
|
|
|
+ defined in include/serial.h.
|
|
|
+
|
|
|
+ CONFIG_DM_GPIO
|
|
|
+
|
|
|
+ Enable driver model for GPIO access. The standard GPIO
|
|
|
+ interface (gpio_get_value(), etc.) is then implemented by
|
|
|
+ the GPIO uclass. Drivers provide methods to query the
|
|
|
+ particular GPIOs that they provide. The uclass interface
|
|
|
+ is defined in include/asm-generic/gpio.h.
|
|
|
+
|
|
|
+ CONFIG_DM_SPI
|
|
|
+
|
|
|
+ Enable driver model for SPI. The SPI slave interface
|
|
|
+ (spi_setup_slave(), spi_xfer(), etc.) is then implemented by
|
|
|
+ the SPI uclass. Drivers provide methods to access the SPI
|
|
|
+ buses that they control. The uclass interface is defined in
|
|
|
+ include/spi.h. The existing spi_slave structure is attached
|
|
|
+ as 'parent data' to every slave on each bus. Slaves
|
|
|
+ typically use driver-private data instead of extending the
|
|
|
+ spi_slave structure.
|
|
|
+
|
|
|
+ CONFIG_DM_SPI_FLASH
|
|
|
+
|
|
|
+ Enable driver model for SPI flash. This SPI flash interface
|
|
|
+ (spi_flash_probe(), spi_flash_write(), etc.) is then
|
|
|
+ implemented by the SPI flash uclass. There is one standard
|
|
|
+ SPI flash driver which knows how to probe most chips
|
|
|
+ supported by U-Boot. The uclass interface is defined in
|
|
|
+ include/spi_flash.h, but is currently fully compatible
|
|
|
+ with the old interface to avoid confusion and duplication
|
|
|
+ during the transition parent. SPI and SPI flash must be
|
|
|
+ enabled together (it is not possible to use driver model
|
|
|
+ for one and not the other).
|
|
|
+
|
|
|
+ CONFIG_DM_CROS_EC
|
|
|
+
|
|
|
+ Enable driver model for the Chrome OS EC interface. This
|
|
|
+ allows the cros_ec SPI driver to operate with CONFIG_DM_SPI
|
|
|
+ but otherwise makes few changes. Since cros_ec also supports
|
|
|
+ I2C and LPC (which don't support driver model yet), a full
|
|
|
+ conversion is not yet possible.
|
|
|
+
|
|
|
+
|
|
|
+ ** Code size options: The following options are enabled by
|
|
|
+ default except in SPL. Enable them explicitly to get these
|
|
|
+ features in SPL.
|
|
|
+
|
|
|
+ CONFIG_DM_WARN
|
|
|
+
|
|
|
+ Enable the dm_warn() function. This can use up quite a bit
|
|
|
+ of space for its strings.
|
|
|
+
|
|
|
+ CONFIG_DM_STDIO
|
|
|
+
|
|
|
+ Enable registering a serial device with the stdio library.
|
|
|
+
|
|
|
+ CONFIG_DM_DEVICE_REMOVE
|
|
|
+
|
|
|
+ Enable removing of devices.
|
|
|
+
|
|
|
+
|
|
|
- Linux Kernel Interface:
|
|
|
CONFIG_CLOCKS_IN_MHZ
|
|
|
|
|
@@ -3881,6 +3995,11 @@ Configuration Settings:
|
|
|
Pre-relocation malloc() is only supported on ARM and sandbox
|
|
|
at present but is fairly easy to enable for other archs.
|
|
|
|
|
|
+- CONFIG_SYS_MALLOC_SIMPLE
|
|
|
+ Provides a simple and small malloc() and calloc() for those
|
|
|
+ boards which do not use the full malloc in SPL (which is
|
|
|
+ enabled with CONFIG_SYS_SPL_MALLOC_START).
|
|
|
+
|
|
|
- CONFIG_SYS_BOOTM_LEN:
|
|
|
Normally compressed uImages are limited to an
|
|
|
uncompressed size of 8 MBytes. If this is not enough,
|