blob: b5b482086af35d8de89cd43bf20eb68c2812ab3e [file] [log] [blame]
Simon Glasscceee552016-02-29 15:25:55 -07001config BLK
2 bool "Support block devices"
3 depends on DM
Tom Rini5b9e6162021-07-09 10:11:56 -04004 default y if DM_MMC || DM_USB
Simon Glasscceee552016-02-29 15:25:55 -07005 help
6 Enable support for block devices, such as SCSI, MMC and USB
7 flash sticks. These provide a block-level interface which permits
8 reading, writing and (in some cases) erasing blocks. Block
9 devices often have a partition table which allows the device to
10 be partitioned into several areas, called 'partitions' in U-Boot.
11 A filesystem can be placed in each partition.
12
Adam Fordb10ba902018-02-06 12:43:56 -060013config HAVE_BLOCK_DEVICE
14 bool "Enable Legacy Block Device"
15 help
16 Some devices require block support whether or not DM is enabled
17
Simon Glass5f4bd8c2017-07-04 13:31:19 -060018config SPL_BLK
19 bool "Support block devices in SPL"
20 depends on SPL_DM && BLK
21 default y
22 help
23 Enable support for block devices, such as SCSI, MMC and USB
24 flash sticks. These provide a block-level interface which permits
25 reading, writing and (in some cases) erasing blocks. Block
26 devices often have a partition table which allows the device to
27 be partitioned into several areas, called 'partitions' in U-Boot.
28 A filesystem can be placed in each partition.
29
Simon Glassa19f7302018-10-01 12:22:13 -060030config TPL_BLK
31 bool "Support block devices in TPL"
32 depends on TPL_DM && BLK
33 default y
34 help
35 Enable support for block devices, such as SCSI, MMC and USB
36 flash sticks. These provide a block-level interface which permits
37 reading, writing and (in some cases) erasing blocks. Block
38 devices often have a partition table which allows the device to
39 be partitioned into several areas, called 'partitions' in U-Boot.
40 A filesystem can be placed in each partition.
41
Simon Glasse7ca7da2022-04-30 00:56:53 -060042config VPL_BLK
43 bool "Support block devices in VPL"
44 depends on VPL_DM && BLK
45 default y
46 help
47 Enable support for block devices, such as SCSI, MMC and USB
48 flash sticks. These provide a block-level interface which permits
49 reading, writing and (in some cases) erasing blocks. Block
50 devices often have a partition table which allows the device to
51 be partitioned into several areas, called 'partitions' in U-Boot.
52 A filesystem can be placed in each partition.
53
Eric Nelsonfaf4f052016-03-28 10:05:44 -070054config BLOCK_CACHE
55 bool "Use block device cache"
Tom Rini587a09e2018-05-22 12:24:16 -040056 depends on BLK
57 default y
Eric Nelsonfaf4f052016-03-28 10:05:44 -070058 help
59 This option enables a disk-block cache for all block devices.
60 This is most useful when accessing filesystems under U-Boot since
61 it will prevent repeated reads from directory structures and other
62 filesystem data structures.
Michal Simekc886f352016-09-08 15:06:45 +020063
Adam Fordd693fb92018-06-11 17:17:48 -050064config SPL_BLOCK_CACHE
65 bool "Use block device cache in SPL"
66 depends on SPL_BLK
Adam Fordd693fb92018-06-11 17:17:48 -050067 help
68 This option enables the disk-block cache in SPL
69
Simon Glassbfd48442019-05-18 11:59:53 -060070config TPL_BLOCK_CACHE
71 bool "Use block device cache in TPL"
72 depends on TPL_BLK
Simon Glassbfd48442019-05-18 11:59:53 -060073 help
74 This option enables the disk-block cache in TPL
75
Simon Glass507ab962021-12-04 08:56:31 -070076config EFI_MEDIA
77 bool "Support EFI media drivers"
78 default y if EFI || SANDBOX
79 help
80 Enable this to support media devices on top of UEFI. This enables
81 just the uclass so you also need a specific driver to make this do
82 anything.
83
84 For sandbox there is a test driver.
85
86if EFI_MEDIA
87
88config EFI_MEDIA_SANDBOX
89 bool "Sandbox EFI media driver"
90 depends on SANDBOX
91 default y
92 help
93 Enables a simple sandbox media driver, used for testing just the
94 EFI_MEDIA uclass. It does not do anything useful, since sandbox does
95 not actually support running on top of UEFI.
96
Simon Glassc4688392021-12-04 08:56:32 -070097config EFI_MEDIA_BLK
98 bool "EFI media block driver"
99 depends on EFI_APP
100 default y
101 help
102 Enables a block driver for providing access to UEFI devices. This
103 allows use of block devices detected by the underlying UEFI
104 implementation. With this it is possible to use filesystems on these
105 devices, for example.
106
Simon Glass507ab962021-12-04 08:56:31 -0700107endif # EFI_MEDIA
108
Simon Glassb569a012017-05-17 03:25:30 -0600109config IDE
110 bool "Support IDE controllers"
Adam Fordb10ba902018-02-06 12:43:56 -0600111 select HAVE_BLOCK_DEVICE
Simon Glassb569a012017-05-17 03:25:30 -0600112 help
113 Enables support for IDE (Integrated Drive Electronics) hard drives.
114 This allows access to raw blocks and filesystems on an IDE drive
115 from U-Boot. See also CMD_IDE which provides an 'ide' command for
116 performing various IDE operations.
Simon Glass8a4b5882022-01-22 05:53:24 -0700117
118if IDE
119
120config SYS_IDE_MAXBUS
121 hex "Maximumm number of IDE buses"
122 default 2
123 help
124 This is the number of IDE buses provided by the board. Each one
125 can have one or two devices. One is designated the master and the
126 other one the slave. It is not required to have one or both on any
127 controller.
128
129config SYS_IDE_MAXDEVICE
130 hex "Maximum number of IDE devices"
131 default 2
132 help
133 This is the number of IDE devices which can be connected to the
134 board. Normally this is 2 * CONFIG_SYS_IDE_MAXBUS since up to two
135 devices can be connected to each bus. The number of devices actually
136 connected is determined by probing.
137
138config SYS_ATA_BASE_ADDR
139 hex "Base address of IDE controller"
140 default 0
141 help
142 This is the address of the IDE controller, from which other addresses
143 are calculated. Each bus is at a fixed offset from this address,
144 so it assumed that they are in the same area of the I/O space or
145 memory.
146
147config SYS_ATA_STRIDE
148 hex "IDE port stride"
149 default 0x1
150 help
151 This is the distance between each IDE register, in bytes. For an
152 8-bit controller this is typically 1, meaning that the registers
153 appear at consecutive bytes. If the value 2 two, that might indicate
154 a 16-bit register space.
155
156config SYS_ATA_DATA_OFFSET
157 hex "Offset of the data register"
158 default 0x0
159 help
160 This is the offset of the controller's data register from the base
161 address of the controller. This is typically 0, but may be something
162 else if there are some other registers at the start of the
163 controller space.
164
165config SYS_ATA_REG_OFFSET
166 hex "Offset of the register space"
167 default 0x0
168 help
169 This is the offset of the controller's 'register' space from the base
170 address of the controller. The data register (which is typically at
171 offset 0) has its own CONFIG, to deal with controllers where it is
172 somewhere else. Register 1 will be at this offset + 1, register 2 at
173 CONFIG_SYS_ATA_REG_OFFSET + 2, etc.
174
175config SYS_ATA_ALT_OFFSET
176 hex "Offset of the alternative registers"
177 default 0x0
178 help
179 This is the offset of the controller's 'alternative' space from the
180 base address of the controller. This allows these registers to be
181 located separately from the data and register space.
182
183config SYS_ATA_IDE0_OFFSET
184 hex "Offset of bus 0"
185 default 0x1f0
186 help
187 This is the start offset of bus 0 from the start of the
188 controller registers. All the other registers are calculated from
189 this address. using the above options. For x86 hardware this is often
190 0x1f0.
191
192config SYS_ATA_IDE1_OFFSET
193 hex "Offset of bus 1"
194 default 0x170
195 help
196 This is the start offset of bus 1 from the start of the
197 controller registers. All the other registers are calculated from
198 this address. using the above options. For x86 hardware this is often
199 0x170.
200
201config ATAPI
202 bool "Enable ATAPI support"
203 help
204 This enabled Advanced Technology Attachment Packet Interface (ATAPI),
205 a protocol that allows a greater variety of devices to be connected
206 to the IDE port than with plain ATA. It allows SCSI commands to be
207 sent across the bus, e.g. to support optical drives.
208
209config IDE_RESET
210 bool "Support board-specific reset"
211 help
212 If this is defined, IDE Reset will be performed by calling the
213 function:
214
215 ide_set_reset(int reset)
216
217 where reset is 1 to assert reset and 0 to de-assert it. This function
218 must be defined in a board-specific file.
219
220endif # IDE
Tom Rini3f004772022-06-10 22:59:28 -0400221
222config LBA48
223 bool "Enable LBA support for disks larger than 137GB"
224 depends on HAVE_BLOCK_DEVICE
225 help
226 Set this to enable support for disks larger than 137GB.
227 Also look at CONFIG_SYS_64BIT_LBA. Without both of these, LBA48
228 support uses 32bit variables and will 'only' support disks up to
229 2.1TB.
230
231config SYS_64BIT_LBA
232 bool "Enable 64bit number of blocks on a block device"
233 depends on HAVE_BLOCK_DEVICE
234 help
235 Make the block subsystem use 64bit sector addresses, rather than the
236 default of 32bit.