]> git.sur5r.net Git - u-boot/blobdiff - drivers/core/Kconfig
fdt: Support for ISA busses
[u-boot] / drivers / core / Kconfig
index d2799dc861ff5a661ff6717c985285f263ebd1e9..87495614c2d5907864c07cfd2e4d08ce5ead3a25 100644 (file)
@@ -1,6 +1,204 @@
+menu "Generic Driver Options"
+
 config DM
        bool "Enable Driver Model"
-       depends on !SPL_BUILD
        help
-         This config option enables Driver Model.
-         To use legacy drivers, say N.
+         This config option enables 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 SPL_DM
+       bool "Enable Driver Model for SPL"
+       depends on DM && SPL
+       help
+         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_WARN
+       bool "Enable warnings in driver model"
+       depends on DM
+       default y
+       help
+         The dm_warn() function can use up quite a bit of space for its
+         strings. By default this is disabled for SPL builds to save space.
+         This will cause dm_warn() to be compiled out - it will do nothing
+         when called.
+
+config DM_DEVICE_REMOVE
+       bool "Support device removal"
+       depends on DM
+       default y
+       help
+         We can save some code space by dropping support for removing a
+         device. This is not normally required in SPL, so by default this
+         option is disabled for SPL.
+
+         Note that this may have undesirable results in the USB subsystem as
+         it causes unplugged devices to linger around in the dm-tree, and it
+         causes USB host controllers to not be stopped when booting the OS.
+
+config DM_STDIO
+       bool "Support stdio registration"
+       depends on DM
+       default y
+       help
+         Normally serial drivers register with stdio so that they can be used
+         as normal output devices. In SPL we don't normally use stdio, so
+         we can omit this feature.
+
+config DM_SEQ_ALIAS
+       bool "Support numbered aliases in device tree"
+       depends on DM
+       default y
+       help
+         Most boards will have a '/aliases' node containing the path to
+         numbered devices (e.g. serial0 = &serial0). This feature can be
+         disabled if it is not required.
+
+config SPL_DM_SEQ_ALIAS
+       bool "Support numbered aliases in device tree in SPL"
+       depends on DM
+       default n
+       help
+         Most boards will have a '/aliases' node containing the path to
+         numbered devices (e.g. serial0 = &serial0). This feature can be
+         disabled if it is not required, to save code space in SPL.
+
+config REGMAP
+       bool "Support register maps"
+       depends on DM
+       help
+         Hardware peripherals tend to have one or more sets of registers
+         which can be accessed to control the hardware. A register map
+         models this with a simple read/write interface. It can in principle
+         support any bus type (I2C, SPI) but so far this only supports
+         direct memory access.
+
+config SPL_REGMAP
+       bool "Support register maps in SPL"
+       depends on DM
+       help
+         Hardware peripherals tend to have one or more sets of registers
+         which can be accessed to control the hardware. A register map
+         models this with a simple read/write interface. It can in principle
+         support any bus type (I2C, SPI) but so far this only supports
+         direct memory access.
+
+config SYSCON
+       bool "Support system controllers"
+       depends on REGMAP
+       help
+         Many SoCs have a number of system controllers which are dealt with
+         as a group by a single driver. Some common functionality is provided
+         by this uclass, including accessing registers via regmap and
+         assigning a unique number to each.
+
+config SPL_SYSCON
+       bool "Support system controllers in SPL"
+       depends on REGMAP
+       help
+         Many SoCs have a number of system controllers which are dealt with
+         as a group by a single driver. Some common functionality is provided
+         by this uclass, including accessing registers via regmap and
+         assigning a unique number to each.
+
+config DEVRES
+       bool "Managed device resources"
+       depends on DM
+       help
+         This option enables the Managed device resources core support.
+         Device resources managed by the devres framework are automatically
+         released whether initialization fails half-way or the device gets
+         detached.
+
+         If this option is disabled, devres functions fall back to
+         non-managed variants.  For example, devres_alloc() to kzalloc(),
+         devm_kmalloc() to kmalloc(), etc.
+
+config DEBUG_DEVRES
+       bool "Managed device resources debugging functions"
+       depends on DEVRES
+       help
+         If this option is enabled, devres debug messages are printed.
+         Also, a function is available to dump a list of device resources.
+         Select this if you are having a problem with devres or want to
+         debug resource management for a managed device.
+
+         If you are unsure about this, Say N here.
+
+config SIMPLE_BUS
+       bool "Support simple-bus driver"
+       depends on DM && OF_CONTROL
+       default y
+       help
+         Supports the 'simple-bus' driver, which is used on some systems.
+
+config SPL_SIMPLE_BUS
+       bool "Support simple-bus driver in SPL"
+       depends on SPL_DM && SPL_OF_CONTROL
+       default y
+       help
+         Supports the 'simple-bus' driver, which is used on some systems
+         in SPL.
+
+config OF_TRANSLATE
+       bool "Translate addresses using fdt_translate_address"
+       depends on DM && OF_CONTROL
+       default y
+       help
+         If this option is enabled, the reg property will be translated
+         using the fdt_translate_address() function. This is necessary
+         on some platforms (e.g. MVEBU) using complex "ranges"
+         properties in many nodes. As this translation is not handled
+         correctly in the default simple_bus_translate() function.
+
+         If this option is not enabled, simple_bus_translate() will be
+         used for the address translation. This function is faster and
+         smaller in size than fdt_translate_address().
+
+config SPL_OF_TRANSLATE
+       bool "Translate addresses using fdt_translate_address in SPL"
+       depends on SPL_DM && SPL_OF_CONTROL
+       default n
+       help
+         If this option is enabled, the reg property will be translated
+         using the fdt_translate_address() function. This is necessary
+         on some platforms (e.g. MVEBU) using complex "ranges"
+         properties in many nodes. As this translation is not handled
+         correctly in the default simple_bus_translate() function.
+
+         If this option is not enabled, simple_bus_translate() will be
+         used for the address translation. This function is faster and
+         smaller in size than fdt_translate_address().
+
+config OF_ISA_BUS
+       bool
+       depends on OF_TRANSLATE
+       help
+         Is this option is enabled then support for the ISA bus will
+         be included for addresses read from DT. This is something that
+         should be known to be required or not based upon the board
+         being targetted, and whether or not it makes use of an ISA bus.
+
+         The bus is matched based upon its node name equalling "isa". The
+         busses #address-cells should equal 2, with the first cell being
+         used to hold flags & flag 0x1 indicating that the address range
+         should be accessed using I/O port in/out accessors. The second
+         cell holds the offset into ISA bus address space. The #size-cells
+         property should equal 1, and of course holds the size of the
+         address range used by a device.
+
+         If this option is not enabled then support for the ISA bus is
+         not included and any such busses used in DT will be treated as
+         typical simple-bus compatible busses. This will lead to
+         mistranslation of device addresses, so ensure that this is
+         enabled if your board does include an ISA bus.
+
+endmenu