Masahiro Yamada | cc85b7b | 2015-07-26 02:46:26 +0900 | [diff] [blame] | 1 | menu "Generic Driver Options" |
| 2 | |
Masahiro Yamada | 57ad8ee | 2014-10-23 22:26:09 +0900 | [diff] [blame] | 3 | config DM |
Tom Rini | d719199 | 2022-10-14 07:50:19 -0400 | [diff] [blame] | 4 | def_bool y |
Masahiro Yamada | 57ad8ee | 2014-10-23 22:26:09 +0900 | [diff] [blame] | 5 | help |
Simon Glass | d8b771d | 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 | 93e414d | 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 |
Simon Glass | 67e3fca | 2023-09-26 08:14:16 -0600 | [diff] [blame] | 17 | full malloc() enabled by CFG_SPL_SYS_MALLOC_START, |
Tom Rini | e7d67a4 | 2022-05-20 12:36:05 -0400 | [diff] [blame] | 18 | consider using CONFIG_SPL_SYS_MALLOC_SIMPLE. In that case you |
Andy Yan | 1fa20e4d | 2017-07-24 17:43:34 +0800 | [diff] [blame] | 19 | must provide CONFIG_SPL_SYS_MALLOC_F_LEN to set the size. |
Simon Glass | 93e414d | 2015-02-05 21:41:36 -0700 | [diff] [blame] | 20 | In most cases driver model will only allocate a few uclasses |
Oleksandr Suvorov | 736fb23 | 2022-07-13 19:42:49 +0300 | [diff] [blame] | 21 | and devices in SPL, so 1KB should be enough. See |
Andy Yan | 1fa20e4d | 2017-07-24 17:43:34 +0800 | [diff] [blame] | 22 | CONFIG_SPL_SYS_MALLOC_F_LEN for more details on how to enable it. |
Simon Glass | 93e414d | 2015-02-05 21:41:36 -0700 | [diff] [blame] | 23 | |
Simon Glass | c833c00 | 2017-04-02 09:50:31 -0600 | [diff] [blame] | 24 | config TPL_DM |
| 25 | bool "Enable Driver Model for TPL" |
| 26 | depends on DM && TPL |
| 27 | help |
| 28 | Enable driver model in TPL. You will need to provide a |
| 29 | suitable malloc() implementation. If you are not using the |
Simon Glass | fba1087 | 2023-09-26 08:14:30 -0600 | [diff] [blame] | 30 | full malloc() enabled by CFG_TPL_SYS_MALLOC_START, |
Tom Rini | e7d67a4 | 2022-05-20 12:36:05 -0400 | [diff] [blame] | 31 | consider using CONFIG_TPL_SYS_MALLOC_SIMPLE. In that case you |
Simon Glass | fba1087 | 2023-09-26 08:14:30 -0600 | [diff] [blame] | 32 | must provide CONFIG_TPL_SYS_MALLOC_F_LEN to set the size. |
Simon Glass | c833c00 | 2017-04-02 09:50:31 -0600 | [diff] [blame] | 33 | In most cases driver model will only allocate a few uclasses |
Simon Glass | fba1087 | 2023-09-26 08:14:30 -0600 | [diff] [blame] | 34 | and devices in TPL, so 1KB should be enough. See |
| 35 | CONFIG_TPL_SYS_MALLOC_F_LEN for more details on how to enable it. |
Simon Glass | c833c00 | 2017-04-02 09:50:31 -0600 | [diff] [blame] | 36 | Disable this for very small implementations. |
| 37 | |
Simon Glass | e7ca7da | 2022-04-30 00:56:53 -0600 | [diff] [blame] | 38 | config VPL_DM |
| 39 | bool "Enable Driver Model for VPL" |
| 40 | depends on DM && VPL |
| 41 | default y if SPL_DM |
| 42 | help |
| 43 | Enable driver model in VPL. You will need to provide a |
| 44 | suitable malloc() implementation. If you are not using the |
Simon Glass | fba1087 | 2023-09-26 08:14:30 -0600 | [diff] [blame] | 45 | full malloc() enabled by CFG_TPL_SYS_MALLOC_START, |
| 46 | consider using CONFIG_TPL_SYS_MALLOC_SIMPLE. |
Simon Glass | e7ca7da | 2022-04-30 00:56:53 -0600 | [diff] [blame] | 47 | |
Simon Glass | 93e414d | 2015-02-05 21:41:36 -0700 | [diff] [blame] | 48 | config DM_WARN |
| 49 | bool "Enable warnings in driver model" |
Masahiro Yamada | cfc2f7d | 2015-02-24 22:26:21 +0900 | [diff] [blame] | 50 | depends on DM |
Simon Glass | 93e414d | 2015-02-05 21:41:36 -0700 | [diff] [blame] | 51 | help |
Simon Glass | 85bf4f2 | 2020-10-03 11:31:26 -0600 | [diff] [blame] | 52 | Enable this to see warnings related to driver model. |
| 53 | |
| 54 | Warnings may help with debugging, such as when expected devices do |
| 55 | not bind correctly. If the option is disabled, dm_warn() is compiled |
| 56 | out - it will do nothing when called. |
| 57 | |
| 58 | config SPL_DM_WARN |
Quentin Schulz | a51a69b | 2024-06-11 15:04:27 +0200 | [diff] [blame] | 59 | bool "Enable warnings in driver model in SPL" |
Simon Glass | 85bf4f2 | 2020-10-03 11:31:26 -0600 | [diff] [blame] | 60 | depends on SPL_DM |
| 61 | help |
| 62 | Enable this to see warnings related to driver model in SPL |
| 63 | |
Simon Glass | 93e414d | 2015-02-05 21:41:36 -0700 | [diff] [blame] | 64 | The dm_warn() function can use up quite a bit of space for its |
| 65 | strings. By default this is disabled for SPL builds to save space. |
Simon Glass | 85bf4f2 | 2020-10-03 11:31:26 -0600 | [diff] [blame] | 66 | |
| 67 | Warnings may help with debugging, such as when expected devices do |
| 68 | not bind correctly. If the option is disabled, dm_warn() is compiled |
| 69 | out - it will do nothing when called. |
Simon Glass | 93e414d | 2015-02-05 21:41:36 -0700 | [diff] [blame] | 70 | |
Masahiro Yamada | f70f39f | 2017-09-29 12:31:20 +0900 | [diff] [blame] | 71 | config DM_DEBUG |
| 72 | bool "Enable debug messages in driver model core" |
| 73 | depends on DM |
| 74 | help |
| 75 | Say Y here if you want to compile in debug messages in DM core. |
| 76 | |
Simon Glass | c8b5e22 | 2022-05-08 04:39:26 -0600 | [diff] [blame] | 77 | config DM_STATS |
| 78 | bool "Collect and show driver model stats" |
| 79 | depends on DM |
| 80 | default y if SANDBOX |
| 81 | help |
| 82 | Enable this to collect and display memory statistics about driver |
| 83 | model. This can help to figure out where all the memory is going and |
| 84 | to find optimisations. |
| 85 | |
| 86 | To display the memory stats, use the 'dm mem' command. |
| 87 | |
Simon Glass | 099dc1f | 2022-05-08 04:39:27 -0600 | [diff] [blame] | 88 | config SPL_DM_STATS |
| 89 | bool "Collect and show driver model stats in SPL" |
Simon Glass | 0ccddec | 2023-11-12 13:03:46 -0700 | [diff] [blame] | 90 | depends on SPL_DM |
Simon Glass | 099dc1f | 2022-05-08 04:39:27 -0600 | [diff] [blame] | 91 | help |
| 92 | Enable this to collect and display memory statistics about driver |
| 93 | model. This can help to figure out where all the memory is going and |
| 94 | to find optimisations. |
| 95 | |
| 96 | The stats are displayed just before SPL boots to the next phase. |
| 97 | |
Simon Glass | 93e414d | 2015-02-05 21:41:36 -0700 | [diff] [blame] | 98 | config DM_DEVICE_REMOVE |
| 99 | bool "Support device removal" |
Masahiro Yamada | cfc2f7d | 2015-02-24 22:26:21 +0900 | [diff] [blame] | 100 | depends on DM |
| 101 | default y |
Simon Glass | 93e414d | 2015-02-05 21:41:36 -0700 | [diff] [blame] | 102 | help |
| 103 | We can save some code space by dropping support for removing a |
Jean-Jacques Hiblot | 00b2988 | 2018-12-07 14:50:53 +0100 | [diff] [blame] | 104 | device. |
Simon Glass | 93e414d | 2015-02-05 21:41:36 -0700 | [diff] [blame] | 105 | |
Hans de Goede | 246ba26 | 2015-07-01 20:52:59 +0200 | [diff] [blame] | 106 | Note that this may have undesirable results in the USB subsystem as |
| 107 | it causes unplugged devices to linger around in the dm-tree, and it |
| 108 | causes USB host controllers to not be stopped when booting the OS. |
| 109 | |
Simon Glass | 3ee337a | 2022-03-04 08:43:03 -0700 | [diff] [blame] | 110 | config DM_EVENT |
Tom Rini | 7d3684a | 2023-01-16 15:46:49 -0500 | [diff] [blame] | 111 | bool |
| 112 | depends on DM |
| 113 | select EVENT |
Simon Glass | 3ee337a | 2022-03-04 08:43:03 -0700 | [diff] [blame] | 114 | help |
| 115 | This enables support for generating events related to driver model |
Heinrich Schuchardt | b14f884 | 2024-06-08 06:12:44 +0200 | [diff] [blame] | 116 | operations, such as probing or removing a device. Subsystems can |
Tom Rini | 7d3684a | 2023-01-16 15:46:49 -0500 | [diff] [blame] | 117 | register a 'spy' function that is called when the event occurs. Such |
| 118 | subsystems must select this option. |
Simon Glass | 3ee337a | 2022-03-04 08:43:03 -0700 | [diff] [blame] | 119 | |
Jean-Jacques Hiblot | 00b2988 | 2018-12-07 14:50:53 +0100 | [diff] [blame] | 120 | config SPL_DM_DEVICE_REMOVE |
| 121 | bool "Support device removal in SPL" |
| 122 | depends on SPL_DM |
Jean-Jacques Hiblot | 00b2988 | 2018-12-07 14:50:53 +0100 | [diff] [blame] | 123 | help |
| 124 | We can save some code space by dropping support for removing a |
| 125 | device. This is not normally required in SPL, so by default this |
| 126 | option is disabled for SPL. |
| 127 | |
Simon Glass | 93e414d | 2015-02-05 21:41:36 -0700 | [diff] [blame] | 128 | config DM_STDIO |
| 129 | bool "Support stdio registration" |
Masahiro Yamada | cfc2f7d | 2015-02-24 22:26:21 +0900 | [diff] [blame] | 130 | depends on DM |
| 131 | default y |
Simon Glass | 93e414d | 2015-02-05 21:41:36 -0700 | [diff] [blame] | 132 | help |
| 133 | Normally serial drivers register with stdio so that they can be used |
| 134 | as normal output devices. In SPL we don't normally use stdio, so |
| 135 | we can omit this feature. |
Simon Glass | 1bd3deb | 2015-02-27 22:06:30 -0700 | [diff] [blame] | 136 | |
| 137 | config DM_SEQ_ALIAS |
| 138 | bool "Support numbered aliases in device tree" |
| 139 | depends on DM |
| 140 | default y |
| 141 | help |
| 142 | Most boards will have a '/aliases' node containing the path to |
| 143 | numbered devices (e.g. serial0 = &serial0). This feature can be |
Nathan Rossi | 7fa6ff4 | 2016-01-08 03:00:45 +1000 | [diff] [blame] | 144 | disabled if it is not required. |
| 145 | |
| 146 | config SPL_DM_SEQ_ALIAS |
| 147 | bool "Support numbered aliases in device tree in SPL" |
Adam Ford | ac4d80e | 2019-08-24 13:50:34 -0500 | [diff] [blame] | 148 | depends on SPL_DM |
Nathan Rossi | 7fa6ff4 | 2016-01-08 03:00:45 +1000 | [diff] [blame] | 149 | help |
| 150 | Most boards will have a '/aliases' node containing the path to |
| 151 | numbered devices (e.g. serial0 = &serial0). This feature can be |
Simon Glass | 1bd3deb | 2015-02-27 22:06:30 -0700 | [diff] [blame] | 152 | disabled if it is not required, to save code space in SPL. |
Simon Glass | 8e5efa0 | 2015-07-17 09:22:07 -0600 | [diff] [blame] | 153 | |
Simon Glass | e7ca7da | 2022-04-30 00:56:53 -0600 | [diff] [blame] | 154 | config VPL_DM_SEQ_ALIAS |
| 155 | bool "Support numbered aliases in device tree in VPL" |
| 156 | depends on VPL_DM |
| 157 | default y |
| 158 | help |
| 159 | Most boards will have a '/aliases' node containing the path to |
| 160 | numbered devices (e.g. serial0 = &serial0). This feature can be |
| 161 | disabled if it is not required, to save code space in VPL. |
| 162 | |
Simon Glass | 39f1d28 | 2020-12-16 17:25:06 -0700 | [diff] [blame] | 163 | config SPL_DM_INLINE_OFNODE |
| 164 | bool "Inline some ofnode functions which are seldom used in SPL" |
| 165 | depends on SPL_DM |
| 166 | default y |
| 167 | help |
| 168 | This applies to several ofnode functions (see ofnode.h) which are |
| 169 | seldom used. Inlining them can help reduce code size. |
| 170 | |
| 171 | config TPL_DM_INLINE_OFNODE |
| 172 | bool "Inline some ofnode functions which are seldom used in TPL" |
| 173 | depends on TPL_DM |
| 174 | default y |
| 175 | help |
| 176 | This applies to several ofnode functions (see ofnode.h) which are |
| 177 | seldom used. Inlining them can help reduce code size. |
| 178 | |
Nicolas Saenz Julienne | a2c7ead | 2021-01-12 13:55:24 +0100 | [diff] [blame] | 179 | config DM_DMA |
| 180 | bool "Support per-device DMA constraints" |
| 181 | depends on DM |
Nicolas Saenz Julienne | a2c7ead | 2021-01-12 13:55:24 +0100 | [diff] [blame] | 182 | help |
| 183 | Enable this to extract per-device DMA constraints, only supported on |
| 184 | device-tree systems for now. This is needed in order translate |
| 185 | addresses on systems where different buses have different views of |
| 186 | the physical address space. |
| 187 | |
Simon Glass | 8e5efa0 | 2015-07-17 09:22:07 -0600 | [diff] [blame] | 188 | config REGMAP |
| 189 | bool "Support register maps" |
| 190 | depends on DM |
| 191 | help |
| 192 | Hardware peripherals tend to have one or more sets of registers |
| 193 | which can be accessed to control the hardware. A register map |
| 194 | models this with a simple read/write interface. It can in principle |
| 195 | support any bus type (I2C, SPI) but so far this only supports |
| 196 | direct memory access. |
| 197 | |
huang lin | dd8515e | 2015-11-17 14:20:13 +0800 | [diff] [blame] | 198 | config SPL_REGMAP |
| 199 | bool "Support register maps in SPL" |
Philipp Tomsich | cdda349 | 2017-06-29 01:37:10 +0200 | [diff] [blame] | 200 | depends on SPL_DM |
huang lin | dd8515e | 2015-11-17 14:20:13 +0800 | [diff] [blame] | 201 | help |
| 202 | Hardware peripherals tend to have one or more sets of registers |
| 203 | which can be accessed to control the hardware. A register map |
| 204 | models this with a simple read/write interface. It can in principle |
| 205 | support any bus type (I2C, SPI) but so far this only supports |
| 206 | direct memory access. |
| 207 | |
Philipp Tomsich | 03cdf69 | 2017-06-29 01:38:49 +0200 | [diff] [blame] | 208 | config TPL_REGMAP |
| 209 | bool "Support register maps in TPL" |
| 210 | depends on TPL_DM |
| 211 | help |
| 212 | Hardware peripherals tend to have one or more sets of registers |
| 213 | which can be accessed to control the hardware. A register map |
| 214 | models this with a simple read/write interface. It can in principle |
| 215 | support any bus type (I2C, SPI) but so far this only supports |
| 216 | direct memory access. |
| 217 | |
Simon Glass | e7ca7da | 2022-04-30 00:56:53 -0600 | [diff] [blame] | 218 | config VPL_REGMAP |
| 219 | bool "Support register maps in VPL" |
| 220 | depends on VPL_DM |
| 221 | help |
| 222 | Hardware peripherals tend to have one or more sets of registers |
| 223 | which can be accessed to control the hardware. A register map |
| 224 | models this with a simple read/write interface. It can in principle |
| 225 | support any bus type (I2C, SPI) but so far this only supports |
| 226 | direct memory access. |
| 227 | |
Simon Glass | 8e5efa0 | 2015-07-17 09:22:07 -0600 | [diff] [blame] | 228 | config SYSCON |
| 229 | bool "Support system controllers" |
| 230 | depends on REGMAP |
| 231 | help |
| 232 | Many SoCs have a number of system controllers which are dealt with |
| 233 | as a group by a single driver. Some common functionality is provided |
| 234 | by this uclass, including accessing registers via regmap and |
| 235 | assigning a unique number to each. |
Masahiro Yamada | 8b15b16 | 2015-07-25 21:52:35 +0900 | [diff] [blame] | 236 | |
huang lin | dd8515e | 2015-11-17 14:20:13 +0800 | [diff] [blame] | 237 | config SPL_SYSCON |
| 238 | bool "Support system controllers in SPL" |
Philipp Tomsich | cdda349 | 2017-06-29 01:37:10 +0200 | [diff] [blame] | 239 | depends on SPL_REGMAP |
huang lin | dd8515e | 2015-11-17 14:20:13 +0800 | [diff] [blame] | 240 | help |
| 241 | Many SoCs have a number of system controllers which are dealt with |
| 242 | as a group by a single driver. Some common functionality is provided |
| 243 | by this uclass, including accessing registers via regmap and |
| 244 | assigning a unique number to each. |
| 245 | |
Philipp Tomsich | 03cdf69 | 2017-06-29 01:38:49 +0200 | [diff] [blame] | 246 | config TPL_SYSCON |
| 247 | bool "Support system controllers in TPL" |
Tom Rini | 36a4ca0 | 2022-06-08 08:24:39 -0400 | [diff] [blame] | 248 | depends on TPL_REGMAP |
Philipp Tomsich | 03cdf69 | 2017-06-29 01:38:49 +0200 | [diff] [blame] | 249 | help |
| 250 | Many SoCs have a number of system controllers which are dealt with |
| 251 | as a group by a single driver. Some common functionality is provided |
| 252 | by this uclass, including accessing registers via regmap and |
| 253 | assigning a unique number to each. |
| 254 | |
Simon Glass | e7ca7da | 2022-04-30 00:56:53 -0600 | [diff] [blame] | 255 | config VPL_SYSCON |
| 256 | bool "Support system controllers in VPL" |
| 257 | depends on VPL_REGMAP |
| 258 | help |
| 259 | Many SoCs have a number of system controllers which are dealt with |
| 260 | as a group by a single driver. Some common functionality is provided |
| 261 | by this uclass, including accessing registers via regmap and |
| 262 | assigning a unique number to each. |
| 263 | |
Masahiro Yamada | 029bfca | 2015-07-25 21:52:37 +0900 | [diff] [blame] | 264 | config DEVRES |
| 265 | bool "Managed device resources" |
| 266 | depends on DM |
| 267 | help |
| 268 | This option enables the Managed device resources core support. |
| 269 | Device resources managed by the devres framework are automatically |
| 270 | released whether initialization fails half-way or the device gets |
| 271 | detached. |
| 272 | |
| 273 | If this option is disabled, devres functions fall back to |
| 274 | non-managed variants. For example, devres_alloc() to kzalloc(), |
| 275 | devm_kmalloc() to kmalloc(), etc. |
| 276 | |
Masahiro Yamada | 8b15b16 | 2015-07-25 21:52:35 +0900 | [diff] [blame] | 277 | config DEBUG_DEVRES |
Masahiro Yamada | f929c0b | 2015-07-25 21:52:38 +0900 | [diff] [blame] | 278 | bool "Managed device resources debugging functions" |
Masahiro Yamada | 029bfca | 2015-07-25 21:52:37 +0900 | [diff] [blame] | 279 | depends on DEVRES |
Masahiro Yamada | 8b15b16 | 2015-07-25 21:52:35 +0900 | [diff] [blame] | 280 | help |
| 281 | If this option is enabled, devres debug messages are printed. |
Masahiro Yamada | f929c0b | 2015-07-25 21:52:38 +0900 | [diff] [blame] | 282 | Also, a function is available to dump a list of device resources. |
Masahiro Yamada | 8b15b16 | 2015-07-25 21:52:35 +0900 | [diff] [blame] | 283 | Select this if you are having a problem with devres or want to |
| 284 | debug resource management for a managed device. |
| 285 | |
| 286 | If you are unsure about this, Say N here. |
Masahiro Yamada | cc85b7b | 2015-07-26 02:46:26 +0900 | [diff] [blame] | 287 | |
Marek Vasut | 298e608 | 2015-08-03 01:15:48 +0200 | [diff] [blame] | 288 | config SIMPLE_BUS |
| 289 | bool "Support simple-bus driver" |
| 290 | depends on DM && OF_CONTROL |
| 291 | default y |
| 292 | help |
| 293 | Supports the 'simple-bus' driver, which is used on some systems. |
| 294 | |
| 295 | config SPL_SIMPLE_BUS |
| 296 | bool "Support simple-bus driver in SPL" |
| 297 | depends on SPL_DM && SPL_OF_CONTROL |
Michal Simek | b32467f | 2015-12-01 08:37:16 +0100 | [diff] [blame] | 298 | default y |
Marek Vasut | 298e608 | 2015-08-03 01:15:48 +0200 | [diff] [blame] | 299 | help |
| 300 | Supports the 'simple-bus' driver, which is used on some systems |
| 301 | in SPL. |
| 302 | |
Simon Glass | 2eb7150 | 2023-02-22 09:34:21 -0700 | [diff] [blame] | 303 | config TPL_SIMPLE_BUS |
| 304 | bool "Support simple-bus driver in TPL" |
| 305 | depends on TPL_DM && TPL_OF_CONTROL |
| 306 | help |
| 307 | Supports the 'simple-bus' driver, which is used on some systems |
| 308 | in TPL. |
| 309 | |
Bin Meng | 1a43b23 | 2021-03-14 20:15:02 +0800 | [diff] [blame] | 310 | config SIMPLE_BUS_CORRECT_RANGE |
| 311 | bool "Decode the 'simple-bus' <range> by honoring the #address-cells and #size-cells" |
| 312 | depends on SIMPLE_BUS |
Bin Meng | 524a92c | 2021-03-14 20:15:03 +0800 | [diff] [blame] | 313 | default y if SANDBOX |
Bin Meng | 1a43b23 | 2021-03-14 20:15:02 +0800 | [diff] [blame] | 314 | help |
| 315 | Decoding the 'simple-bus' <range> by honoring the #address-cells |
| 316 | and #size-cells of parent/child bus. If unset, #address-cells of |
| 317 | parent bus is assumed to be 1, #address-cells and #size-cells of |
| 318 | child bus is also assumed to be 1, to save some spaces of using |
| 319 | an advanced API to decode the <range>, which benefits SPL image |
| 320 | builds that have size limits. |
| 321 | |
| 322 | If you are unsure about this, Say N here. |
| 323 | |
Sean Anderson | b786054 | 2020-06-24 06:41:12 -0400 | [diff] [blame] | 324 | config SIMPLE_PM_BUS |
| 325 | bool "Support simple-pm-bus driver" |
| 326 | depends on DM && OF_CONTROL && CLK && POWER_DOMAIN |
| 327 | help |
| 328 | Supports the 'simple-pm-bus' driver, which is used for busses that |
| 329 | have power domains and/or clocks which need to be enabled before use. |
| 330 | |
Stefan Roese | adc0905 | 2015-09-02 07:41:12 +0200 | [diff] [blame] | 331 | config OF_TRANSLATE |
| 332 | bool "Translate addresses using fdt_translate_address" |
| 333 | depends on DM && OF_CONTROL |
| 334 | default y |
| 335 | help |
| 336 | If this option is enabled, the reg property will be translated |
| 337 | using the fdt_translate_address() function. This is necessary |
| 338 | on some platforms (e.g. MVEBU) using complex "ranges" |
| 339 | properties in many nodes. As this translation is not handled |
| 340 | correctly in the default simple_bus_translate() function. |
| 341 | |
| 342 | If this option is not enabled, simple_bus_translate() will be |
| 343 | used for the address translation. This function is faster and |
| 344 | smaller in size than fdt_translate_address(). |
| 345 | |
| 346 | config SPL_OF_TRANSLATE |
Stefan Roese | f05eeb2 | 2015-11-26 13:38:01 +0100 | [diff] [blame] | 347 | bool "Translate addresses using fdt_translate_address in SPL" |
Stefan Roese | adc0905 | 2015-09-02 07:41:12 +0200 | [diff] [blame] | 348 | depends on SPL_DM && SPL_OF_CONTROL |
Stefan Roese | adc0905 | 2015-09-02 07:41:12 +0200 | [diff] [blame] | 349 | help |
| 350 | If this option is enabled, the reg property will be translated |
| 351 | using the fdt_translate_address() function. This is necessary |
| 352 | on some platforms (e.g. MVEBU) using complex "ranges" |
| 353 | properties in many nodes. As this translation is not handled |
| 354 | correctly in the default simple_bus_translate() function. |
| 355 | |
| 356 | If this option is not enabled, simple_bus_translate() will be |
| 357 | used for the address translation. This function is faster and |
| 358 | smaller in size than fdt_translate_address(). |
| 359 | |
William Zhang | f8c67b7 | 2022-10-14 11:04:55 -0700 | [diff] [blame] | 360 | config TPL_OF_TRANSLATE |
| 361 | bool "Translate addresses using fdt_translate_address in TPL" |
| 362 | depends on TPL_DM && TPL_OF_CONTROL |
| 363 | help |
| 364 | If this option is enabled, the reg property will be translated |
| 365 | using the fdt_translate_address() function. This is necessary |
| 366 | on some platforms (e.g. MVEBU) using complex "ranges" |
| 367 | properties in many nodes. As this translation is not handled |
| 368 | correctly in the default simple_bus_translate() function. |
| 369 | |
| 370 | If this option is not enabled, simple_bus_translate() will be |
| 371 | used for the address translation. This function is faster and |
| 372 | smaller in size than fdt_translate_address() |
| 373 | |
Simon Glass | e7ca7da | 2022-04-30 00:56:53 -0600 | [diff] [blame] | 374 | config VPL_OF_TRANSLATE |
| 375 | bool "Translate addresses using fdt_translate_address in SPL" |
| 376 | depends on SPL_DM && VPL_OF_CONTROL |
| 377 | help |
| 378 | If this option is enabled, the reg property will be translated |
| 379 | using the fdt_translate_address() function. This is necessary |
| 380 | on some platforms (e.g. MVEBU) using complex "ranges" |
| 381 | properties in many nodes. As this translation is not handled |
| 382 | correctly in the default simple_bus_translate() function. |
| 383 | |
| 384 | If this option is not enabled, simple_bus_translate() will be |
| 385 | used for the address translation. This function is faster and |
| 386 | smaller in size than fdt_translate_address(). |
| 387 | |
Stefan Roese | 85bddff | 2019-04-12 16:42:28 +0200 | [diff] [blame] | 388 | config TRANSLATION_OFFSET |
| 389 | bool "Platforms specific translation offset" |
| 390 | depends on DM && OF_CONTROL |
| 391 | help |
| 392 | Some platforms need a special address translation. Those |
| 393 | platforms (e.g. mvebu in SPL) can configure a translation |
| 394 | offset by enabling this option and setting the translation_offset |
| 395 | variable in the GD in their platform- / board-specific code. |
| 396 | |
Paul Burton | dbef2f0 | 2016-05-17 07:43:24 +0100 | [diff] [blame] | 397 | config OF_ISA_BUS |
| 398 | bool |
| 399 | depends on OF_TRANSLATE |
| 400 | help |
| 401 | Is this option is enabled then support for the ISA bus will |
| 402 | be included for addresses read from DT. This is something that |
| 403 | should be known to be required or not based upon the board |
Chris Packham | 3b6b462 | 2019-01-13 22:13:24 +1300 | [diff] [blame] | 404 | being targeted, and whether or not it makes use of an ISA bus. |
Paul Burton | dbef2f0 | 2016-05-17 07:43:24 +0100 | [diff] [blame] | 405 | |
| 406 | The bus is matched based upon its node name equalling "isa". The |
| 407 | busses #address-cells should equal 2, with the first cell being |
| 408 | used to hold flags & flag 0x1 indicating that the address range |
| 409 | should be accessed using I/O port in/out accessors. The second |
| 410 | cell holds the offset into ISA bus address space. The #size-cells |
| 411 | property should equal 1, and of course holds the size of the |
| 412 | address range used by a device. |
| 413 | |
| 414 | If this option is not enabled then support for the ISA bus is |
| 415 | not included and any such busses used in DT will be treated as |
| 416 | typical simple-bus compatible busses. This will lead to |
| 417 | mistranslation of device addresses, so ensure that this is |
| 418 | enabled if your board does include an ISA bus. |
| 419 | |
Simon Glass | 34ef0c2 | 2017-05-18 20:09:03 -0600 | [diff] [blame] | 420 | config DM_DEV_READ_INLINE |
| 421 | bool |
| 422 | default y if !OF_LIVE |
| 423 | |
Simon Glass | f007731 | 2022-09-06 20:27:25 -0600 | [diff] [blame] | 424 | config OFNODE_MULTI_TREE |
| 425 | bool "Allow the ofnode interface to access any tree" |
| 426 | default y if EVENT && !DM_DEV_READ_INLINE && !DM_INLINE_OFNODE |
| 427 | help |
| 428 | Normally U-Boot makes use of its control FDT, the one used to bind |
| 429 | devices and provide options. In some cases, U-Boot must also process |
| 430 | a separate FDT, e.g. one provided by the operating system, which |
| 431 | needs additions to the /chosen node. |
| 432 | |
| 433 | This works fine with live tree (OF_LIVE), but with flat tree the |
| 434 | offset provided in ofnode is only useful with the control FDT. This |
| 435 | option adds a 'tree ID' to the offset, so that multiple trees can |
| 436 | be used. Call oftree_from_fdt() to register a new tree. |
| 437 | |
| 438 | config OFNODE_MULTI_TREE_MAX |
| 439 | int "Maximum number of FDTs" |
| 440 | range 2 8 |
| 441 | depends on OFNODE_MULTI_TREE |
| 442 | default 4 |
| 443 | help |
| 444 | Sets the maximum number of device trees which can be used with the |
| 445 | ofnode interface when using flat trees (OF_LIVE). This is only |
| 446 | available in U-Boot proper and only after relocation. |
| 447 | |
Simon Glass | 9fb9e9b | 2020-04-09 10:27:38 -0600 | [diff] [blame] | 448 | config ACPIGEN |
| 449 | bool "Support ACPI table generation in driver model" |
Simon Glass | e264be4 | 2023-05-04 16:54:57 -0600 | [diff] [blame] | 450 | depends on ACPI |
Simon Glass | 55f3cde | 2020-07-16 21:22:39 -0600 | [diff] [blame] | 451 | default y if SANDBOX || (GENERATE_ACPI_TABLE && !QEMU) |
Simon Glass | 335fe51 | 2021-07-02 12:36:15 -0600 | [diff] [blame] | 452 | select LIB_UUID |
Simon Glass | 9fb9e9b | 2020-04-09 10:27:38 -0600 | [diff] [blame] | 453 | help |
| 454 | This option enables generation of ACPI tables using driver-model |
| 455 | devices. It adds a new operation struct to each driver, to support |
| 456 | things like generating device-specific tables and returning the ACPI |
| 457 | name of a device. |
| 458 | |
Simon Glass | 5f78ee7 | 2020-09-10 20:21:25 -0600 | [diff] [blame] | 459 | config BOUNCE_BUFFER |
| 460 | bool "Include bounce buffer API" |
| 461 | help |
| 462 | Some peripherals support DMA from a subset of physically |
| 463 | addressable memory only. To support such peripherals, the |
| 464 | bounce buffer API uses a temporary buffer: it copies data |
| 465 | to/from DMA regions while managing cache operations. |
| 466 | |
| 467 | A second possible use of bounce buffers is their ability to |
| 468 | provide aligned buffers for DMA operations. |
| 469 | |
Masahiro Yamada | cc85b7b | 2015-07-26 02:46:26 +0900 | [diff] [blame] | 470 | endmenu |