1menu "Generic Driver Options" 2 3config DM 4 bool "Enable Driver Model" 5 help 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. 10 11config 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 24config DM_WARN 25 bool "Enable warnings in driver model" 26 depends on DM 27 default y 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. 33 34config DM_DEVICE_REMOVE 35 bool "Support device removal" 36 depends on DM 37 default y 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. 42 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 47config DM_STDIO 48 bool "Support stdio registration" 49 depends on DM 50 default y 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. 55 56config 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 63 disabled if it is not required. 64 65config 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 72 disabled if it is not required, to save code space in SPL. 73 74config 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 84config 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 94config 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. 102 103config 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 112config 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 125config DEBUG_DEVRES 126 bool "Managed device resources debugging functions" 127 depends on DEVRES 128 help 129 If this option is enabled, devres debug messages are printed. 130 Also, a function is available to dump a list of device resources. 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. 135 136config 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 143config SPL_SIMPLE_BUS 144 bool "Support simple-bus driver in SPL" 145 depends on SPL_DM && SPL_OF_CONTROL 146 default y 147 help 148 Supports the 'simple-bus' driver, which is used on some systems 149 in SPL. 150 151config 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 166config SPL_OF_TRANSLATE 167 bool "Translate addresses using fdt_translate_address in SPL" 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 181config 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 204endmenu 205