Masahiro Yamada | 0b11dbf | 2015-07-26 02:46:26 +0900 | [diff] [blame] | 1 | menu "Generic Driver Options" |
| 2 | |
Masahiro Yamada | da333ae | 2014-10-23 22:26:09 +0900 | [diff] [blame] | 3 | config DM |
| 4 | bool "Enable Driver Model" |
Masahiro Yamada | da333ae | 2014-10-23 22:26:09 +0900 | [diff] [blame] | 5 | help |
Simon Glass | f94a1be | 2015-02-05 21:41:35 -0700 | [diff] [blame] | 6 | This config option enables Driver Model. This brings in the core |
| 7 | support, including scanning of platform data on start-up. If |
| 8 | CONFIG_OF_CONTROL is enabled, the device tree will be scanned also |
| 9 | when available. |
Simon Glass | 91a91ff | 2015-02-05 21:41:36 -0700 | [diff] [blame] | 10 | |
| 11 | config SPL_DM |
| 12 | bool "Enable Driver Model for SPL" |
| 13 | depends on DM && SPL |
| 14 | help |
| 15 | Enable driver model in SPL. You will need to provide a |
| 16 | suitable malloc() implementation. If you are not using the |
| 17 | full malloc() enabled by CONFIG_SYS_SPL_MALLOC_START, |
| 18 | consider using CONFIG_SYS_MALLOC_SIMPLE. In that case you |
| 19 | must provide CONFIG_SYS_MALLOC_F_LEN to set the size. |
| 20 | In most cases driver model will only allocate a few uclasses |
| 21 | and devices in SPL, so 1KB should be enable. See |
| 22 | CONFIG_SYS_MALLOC_F_LEN for more details on how to enable it. |
| 23 | |
| 24 | config DM_WARN |
| 25 | bool "Enable warnings in driver model" |
Masahiro Yamada | d648964 | 2015-02-24 22:26:21 +0900 | [diff] [blame] | 26 | depends on DM |
| 27 | default y |
Simon Glass | 91a91ff | 2015-02-05 21:41:36 -0700 | [diff] [blame] | 28 | help |
| 29 | The dm_warn() function can use up quite a bit of space for its |
| 30 | strings. By default this is disabled for SPL builds to save space. |
| 31 | This will cause dm_warn() to be compiled out - it will do nothing |
| 32 | when called. |
Simon Glass | 91a91ff | 2015-02-05 21:41:36 -0700 | [diff] [blame] | 33 | |
| 34 | config DM_DEVICE_REMOVE |
| 35 | bool "Support device removal" |
Masahiro Yamada | d648964 | 2015-02-24 22:26:21 +0900 | [diff] [blame] | 36 | depends on DM |
| 37 | default y |
Simon Glass | 91a91ff | 2015-02-05 21:41:36 -0700 | [diff] [blame] | 38 | help |
| 39 | We can save some code space by dropping support for removing a |
| 40 | device. This is not normally required in SPL, so by default this |
| 41 | option is disabled for SPL. |
Simon Glass | 91a91ff | 2015-02-05 21:41:36 -0700 | [diff] [blame] | 42 | |
Hans de Goede | e5c4564 | 2015-07-01 20:52:59 +0200 | [diff] [blame] | 43 | Note that this may have undesirable results in the USB subsystem as |
| 44 | it causes unplugged devices to linger around in the dm-tree, and it |
| 45 | causes USB host controllers to not be stopped when booting the OS. |
| 46 | |
Simon Glass | 91a91ff | 2015-02-05 21:41:36 -0700 | [diff] [blame] | 47 | config DM_STDIO |
| 48 | bool "Support stdio registration" |
Masahiro Yamada | d648964 | 2015-02-24 22:26:21 +0900 | [diff] [blame] | 49 | depends on DM |
| 50 | default y |
Simon Glass | 91a91ff | 2015-02-05 21:41:36 -0700 | [diff] [blame] | 51 | help |
| 52 | Normally serial drivers register with stdio so that they can be used |
| 53 | as normal output devices. In SPL we don't normally use stdio, so |
| 54 | we can omit this feature. |
Simon Glass | 36fa61d | 2015-02-27 22:06:30 -0700 | [diff] [blame] | 55 | |
| 56 | config DM_SEQ_ALIAS |
| 57 | bool "Support numbered aliases in device tree" |
| 58 | depends on DM |
| 59 | default y |
| 60 | help |
| 61 | Most boards will have a '/aliases' node containing the path to |
| 62 | numbered devices (e.g. serial0 = &serial0). This feature can be |
Nathan Rossi | 4f627c5 | 2016-01-08 03:00:45 +1000 | [diff] [blame] | 63 | disabled if it is not required. |
| 64 | |
| 65 | config SPL_DM_SEQ_ALIAS |
| 66 | bool "Support numbered aliases in device tree in SPL" |
| 67 | depends on DM |
| 68 | default n |
| 69 | help |
| 70 | Most boards will have a '/aliases' node containing the path to |
| 71 | numbered devices (e.g. serial0 = &serial0). This feature can be |
Simon Glass | 36fa61d | 2015-02-27 22:06:30 -0700 | [diff] [blame] | 72 | disabled if it is not required, to save code space in SPL. |
Simon Glass | 12dc8e7 | 2015-07-17 09:22:07 -0600 | [diff] [blame] | 73 | |
| 74 | config REGMAP |
| 75 | bool "Support register maps" |
| 76 | depends on DM |
| 77 | help |
| 78 | Hardware peripherals tend to have one or more sets of registers |
| 79 | which can be accessed to control the hardware. A register map |
| 80 | models this with a simple read/write interface. It can in principle |
| 81 | support any bus type (I2C, SPI) but so far this only supports |
| 82 | direct memory access. |
| 83 | |
huang lin | 41c7f66 | 2015-11-17 14:20:13 +0800 | [diff] [blame] | 84 | config SPL_REGMAP |
| 85 | bool "Support register maps in SPL" |
| 86 | depends on DM |
| 87 | help |
| 88 | Hardware peripherals tend to have one or more sets of registers |
| 89 | which can be accessed to control the hardware. A register map |
| 90 | models this with a simple read/write interface. It can in principle |
| 91 | support any bus type (I2C, SPI) but so far this only supports |
| 92 | direct memory access. |
| 93 | |
Simon Glass | 12dc8e7 | 2015-07-17 09:22:07 -0600 | [diff] [blame] | 94 | config SYSCON |
| 95 | bool "Support system controllers" |
| 96 | depends on REGMAP |
| 97 | help |
| 98 | Many SoCs have a number of system controllers which are dealt with |
| 99 | as a group by a single driver. Some common functionality is provided |
| 100 | by this uclass, including accessing registers via regmap and |
| 101 | assigning a unique number to each. |
Masahiro Yamada | 608f26c | 2015-07-25 21:52:35 +0900 | [diff] [blame] | 102 | |
huang lin | 41c7f66 | 2015-11-17 14:20:13 +0800 | [diff] [blame] | 103 | config SPL_SYSCON |
| 104 | bool "Support system controllers in SPL" |
| 105 | depends on REGMAP |
| 106 | help |
| 107 | Many SoCs have a number of system controllers which are dealt with |
| 108 | as a group by a single driver. Some common functionality is provided |
| 109 | by this uclass, including accessing registers via regmap and |
| 110 | assigning a unique number to each. |
| 111 | |
Masahiro Yamada | e2282d7 | 2015-07-25 21:52:37 +0900 | [diff] [blame] | 112 | config DEVRES |
| 113 | bool "Managed device resources" |
| 114 | depends on DM |
| 115 | help |
| 116 | This option enables the Managed device resources core support. |
| 117 | Device resources managed by the devres framework are automatically |
| 118 | released whether initialization fails half-way or the device gets |
| 119 | detached. |
| 120 | |
| 121 | If this option is disabled, devres functions fall back to |
| 122 | non-managed variants. For example, devres_alloc() to kzalloc(), |
| 123 | devm_kmalloc() to kmalloc(), etc. |
| 124 | |
Masahiro Yamada | 608f26c | 2015-07-25 21:52:35 +0900 | [diff] [blame] | 125 | config DEBUG_DEVRES |
Masahiro Yamada | 40b6f2d | 2015-07-25 21:52:38 +0900 | [diff] [blame] | 126 | bool "Managed device resources debugging functions" |
Masahiro Yamada | e2282d7 | 2015-07-25 21:52:37 +0900 | [diff] [blame] | 127 | depends on DEVRES |
Masahiro Yamada | 608f26c | 2015-07-25 21:52:35 +0900 | [diff] [blame] | 128 | help |
| 129 | If this option is enabled, devres debug messages are printed. |
Masahiro Yamada | 40b6f2d | 2015-07-25 21:52:38 +0900 | [diff] [blame] | 130 | Also, a function is available to dump a list of device resources. |
Masahiro Yamada | 608f26c | 2015-07-25 21:52:35 +0900 | [diff] [blame] | 131 | Select this if you are having a problem with devres or want to |
| 132 | debug resource management for a managed device. |
| 133 | |
| 134 | If you are unsure about this, Say N here. |
Masahiro Yamada | 0b11dbf | 2015-07-26 02:46:26 +0900 | [diff] [blame] | 135 | |
Marek Vasut | 628d792 | 2015-08-03 01:15:48 +0200 | [diff] [blame] | 136 | config SIMPLE_BUS |
| 137 | bool "Support simple-bus driver" |
| 138 | depends on DM && OF_CONTROL |
| 139 | default y |
| 140 | help |
| 141 | Supports the 'simple-bus' driver, which is used on some systems. |
| 142 | |
| 143 | config SPL_SIMPLE_BUS |
| 144 | bool "Support simple-bus driver in SPL" |
| 145 | depends on SPL_DM && SPL_OF_CONTROL |
Michal Simek | 8bebf03 | 2015-12-01 08:37:16 +0100 | [diff] [blame] | 146 | default y |
Marek Vasut | 628d792 | 2015-08-03 01:15:48 +0200 | [diff] [blame] | 147 | help |
| 148 | Supports the 'simple-bus' driver, which is used on some systems |
| 149 | in SPL. |
| 150 | |
Stefan Roese | ef5cd33 | 2015-09-02 07:41:12 +0200 | [diff] [blame] | 151 | config OF_TRANSLATE |
| 152 | bool "Translate addresses using fdt_translate_address" |
| 153 | depends on DM && OF_CONTROL |
| 154 | default y |
| 155 | help |
| 156 | If this option is enabled, the reg property will be translated |
| 157 | using the fdt_translate_address() function. This is necessary |
| 158 | on some platforms (e.g. MVEBU) using complex "ranges" |
| 159 | properties in many nodes. As this translation is not handled |
| 160 | correctly in the default simple_bus_translate() function. |
| 161 | |
| 162 | If this option is not enabled, simple_bus_translate() will be |
| 163 | used for the address translation. This function is faster and |
| 164 | smaller in size than fdt_translate_address(). |
| 165 | |
| 166 | config SPL_OF_TRANSLATE |
Stefan Roese | 7b98a3b | 2015-11-26 13:38:01 +0100 | [diff] [blame] | 167 | bool "Translate addresses using fdt_translate_address in SPL" |
Stefan Roese | ef5cd33 | 2015-09-02 07:41:12 +0200 | [diff] [blame] | 168 | depends on SPL_DM && SPL_OF_CONTROL |
| 169 | default n |
| 170 | help |
| 171 | If this option is enabled, the reg property will be translated |
| 172 | using the fdt_translate_address() function. This is necessary |
| 173 | on some platforms (e.g. MVEBU) using complex "ranges" |
| 174 | properties in many nodes. As this translation is not handled |
| 175 | correctly in the default simple_bus_translate() function. |
| 176 | |
| 177 | If this option is not enabled, simple_bus_translate() will be |
| 178 | used for the address translation. This function is faster and |
| 179 | smaller in size than fdt_translate_address(). |
| 180 | |
Paul Burton | 0a222d5 | 2016-05-17 07:43:24 +0100 | [diff] [blame^] | 181 | config OF_ISA_BUS |
| 182 | bool |
| 183 | depends on OF_TRANSLATE |
| 184 | help |
| 185 | Is this option is enabled then support for the ISA bus will |
| 186 | be included for addresses read from DT. This is something that |
| 187 | should be known to be required or not based upon the board |
| 188 | being targetted, and whether or not it makes use of an ISA bus. |
| 189 | |
| 190 | The bus is matched based upon its node name equalling "isa". The |
| 191 | busses #address-cells should equal 2, with the first cell being |
| 192 | used to hold flags & flag 0x1 indicating that the address range |
| 193 | should be accessed using I/O port in/out accessors. The second |
| 194 | cell holds the offset into ISA bus address space. The #size-cells |
| 195 | property should equal 1, and of course holds the size of the |
| 196 | address range used by a device. |
| 197 | |
| 198 | If this option is not enabled then support for the ISA bus is |
| 199 | not included and any such busses used in DT will be treated as |
| 200 | typical simple-bus compatible busses. This will lead to |
| 201 | mistranslation of device addresses, so ensure that this is |
| 202 | enabled if your board does include an ISA bus. |
| 203 | |
Masahiro Yamada | 0b11dbf | 2015-07-26 02:46:26 +0900 | [diff] [blame] | 204 | endmenu |