]>
Commit | Line | Data |
---|---|---|
0b11dbf7 MY |
1 | menu "Generic Driver Options" |
2 | ||
da333ae7 MY |
3 | config DM |
4 | bool "Enable Driver Model" | |
da333ae7 | 5 | help |
f94a1bed SG |
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. | |
91a91ff8 SG |
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" | |
d648964f MY |
26 | depends on DM |
27 | default y | |
91a91ff8 SG |
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. | |
91a91ff8 SG |
33 | |
34 | config DM_DEVICE_REMOVE | |
35 | bool "Support device removal" | |
d648964f MY |
36 | depends on DM |
37 | default y | |
91a91ff8 SG |
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. | |
91a91ff8 | 42 | |
e5c4564e HG |
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 | ||
91a91ff8 SG |
47 | config DM_STDIO |
48 | bool "Support stdio registration" | |
d648964f MY |
49 | depends on DM |
50 | default y | |
91a91ff8 SG |
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. | |
36fa61dc SG |
55 | |
56 | config DM_SEQ_ALIAS | |
57 | bool "Support numbered aliases in device tree" | |
58 | depends on DM | |
59 | default y | |
4f627c5a NR |
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 | ||
65 | config SPL_DM_SEQ_ALIAS | |
66 | bool "Support numbered aliases in device tree in SPL" | |
67 | depends on DM | |
68 | default n | |
36fa61dc SG |
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. | |
12dc8e75 SG |
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 | ||
41c7f664 | 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 | ||
12dc8e75 SG |
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. | |
608f26c5 | 102 | |
41c7f664 | 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 | ||
e2282d70 MY |
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 | ||
608f26c5 | 125 | config DEBUG_DEVRES |
40b6f2d0 | 126 | bool "Managed device resources debugging functions" |
e2282d70 | 127 | depends on DEVRES |
608f26c5 MY |
128 | help |
129 | If this option is enabled, devres debug messages are printed. | |
40b6f2d0 | 130 | Also, a function is available to dump a list of device resources. |
608f26c5 MY |
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. | |
0b11dbf7 | 135 | |
628d792c MV |
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 | |
8bebf03c | 146 | default y |
628d792c MV |
147 | help |
148 | Supports the 'simple-bus' driver, which is used on some systems | |
149 | in SPL. | |
150 | ||
ef5cd330 SR |
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 | |
7b98a3b6 | 167 | bool "Translate addresses using fdt_translate_address in SPL" |
ef5cd330 SR |
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 | ||
0a222d53 PB |
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 | ||
0b11dbf7 | 204 | endmenu |