2 bool # "Support block devices"
4 default y if MMC || USB || SCSI || NVME || IDE || AHCI || SATA
5 default y if EFI_MEDIA || VIRTIO_BLK || PVBLOCK
7 Enable support for block devices, such as SCSI, MMC and USB
8 flash sticks. These provide a block-level interface which permits
9 reading, writing and (in some cases) erasing blocks. Block
10 devices often have a partition table which allows the device to
11 be partitioned into several areas, called 'partitions' in U-Boot.
12 A filesystem can be placed in each partition.
14 config SPL_LEGACY_BLOCK
15 bool # "Enable Legacy Block Device"
16 depends on SPL && !DM_SPL
17 default y if SPL_MMC || SPL_USB_STORAGE || SCSI || NVME || IDE
18 default y if SPL_AHCI_PCI
20 Some devices require block support whether or not DM is enabled. This
21 is only supported in SPL. With this, the blk uclass is not used, but
22 instead a legacy implementation of block devices is used, with all
23 devices consisting of 'struct blk_desc' records.
26 bool "Support block devices in SPL"
27 depends on SPL_DM && BLK
30 Enable support for block devices, such as SCSI, MMC and USB
31 flash sticks. These provide a block-level interface which permits
32 reading, writing and (in some cases) erasing blocks. Block
33 devices often have a partition table which allows the device to
34 be partitioned into several areas, called 'partitions' in U-Boot.
35 A filesystem can be placed in each partition.
38 bool "Support block devices in TPL"
39 depends on TPL_DM && BLK
41 Enable support for block devices, such as SCSI, MMC and USB
42 flash sticks. These provide a block-level interface which permits
43 reading, writing and (in some cases) erasing blocks. Block
44 devices often have a partition table which allows the device to
45 be partitioned into several areas, called 'partitions' in U-Boot.
46 A filesystem can be placed in each partition.
49 bool "Support block devices in VPL"
50 depends on VPL_DM && BLK
53 Enable support for block devices, such as SCSI, MMC and USB
54 flash sticks. These provide a block-level interface which permits
55 reading, writing and (in some cases) erasing blocks. Block
56 devices often have a partition table which allows the device to
57 be partitioned into several areas, called 'partitions' in U-Boot.
58 A filesystem can be placed in each partition.
61 bool "Use block device cache"
65 This option enables a disk-block cache for all block devices.
66 This is most useful when accessing filesystems under U-Boot since
67 it will prevent repeated reads from directory structures and other
68 filesystem data structures.
71 bool "Composable virtual block devices (blkmap)"
74 Create virtual block devices that are backed by various sources,
75 e.g. RAM, or parts of an existing block device. Though much more
76 rudimentary, it borrows a lot of ideas from Linux's device mapper
80 - Treat a region of RAM as a block device, i.e. a RAM disk. This let's
81 you extract files from filesystem images stored in RAM (perhaps as a
82 result of a TFTP transfer).
83 - Create a virtual partition on an existing device. This let's you
84 access filesystems that aren't stored at an exact partition
85 boundary. A common example is a filesystem image embedded in an FIT
88 config SPL_BLOCK_CACHE
89 bool "Use block device cache in SPL"
92 This option enables the disk-block cache in SPL
94 config TPL_BLOCK_CACHE
95 bool "Use block device cache in TPL"
98 This option enables the disk-block cache in TPL
101 bool "Support EFI media drivers"
102 default y if EFI || SANDBOX
104 Enable this to support media devices on top of UEFI. This enables
105 just the uclass so you also need a specific driver to make this do
108 For sandbox there is a test driver.
112 config EFI_MEDIA_SANDBOX
113 bool "Sandbox EFI media driver"
117 Enables a simple sandbox media driver, used for testing just the
118 EFI_MEDIA uclass. It does not do anything useful, since sandbox does
119 not actually support running on top of UEFI.
122 bool "EFI media block driver"
126 Enables a block driver for providing access to UEFI devices. This
127 allows use of block devices detected by the underlying UEFI
128 implementation. With this it is possible to use filesystems on these
129 devices, for example.
134 bool "Support IDE controllers"
136 Enables support for IDE (Integrated Drive Electronics) hard drives.
137 This allows access to raw blocks and filesystems on an IDE drive
138 from U-Boot. See also CMD_IDE which provides an 'ide' command for
139 performing various IDE operations.
143 config SYS_IDE_MAXBUS
144 hex "Maximumm number of IDE buses"
147 This is the number of IDE buses provided by the board. Each one
148 can have one or two devices. One is designated the master and the
149 other one the slave. It is not required to have one or both on any
152 config SYS_IDE_MAXDEVICE
153 hex "Maximum number of IDE devices"
156 This is the number of IDE devices which can be connected to the
157 board. Normally this is 2 * CONFIG_SYS_IDE_MAXBUS since up to two
158 devices can be connected to each bus. The number of devices actually
159 connected is determined by probing.
161 config SYS_ATA_BASE_ADDR
162 hex "Base address of IDE controller"
165 This is the address of the IDE controller, from which other addresses
166 are calculated. Each bus is at a fixed offset from this address,
167 so it assumed that they are in the same area of the I/O space or
170 config SYS_ATA_STRIDE
171 hex "IDE port stride"
174 This is the distance between each IDE register, in bytes. For an
175 8-bit controller this is typically 1, meaning that the registers
176 appear at consecutive bytes. If the value 2 two, that might indicate
177 a 16-bit register space.
179 config SYS_ATA_DATA_OFFSET
180 hex "Offset of the data register"
183 This is the offset of the controller's data register from the base
184 address of the controller. This is typically 0, but may be something
185 else if there are some other registers at the start of the
188 config SYS_ATA_REG_OFFSET
189 hex "Offset of the register space"
192 This is the offset of the controller's 'register' space from the base
193 address of the controller. The data register (which is typically at
194 offset 0) has its own CONFIG, to deal with controllers where it is
195 somewhere else. Register 1 will be at this offset + 1, register 2 at
196 CONFIG_SYS_ATA_REG_OFFSET + 2, etc.
198 config SYS_ATA_ALT_OFFSET
199 hex "Offset of the alternative registers"
202 This is the offset of the controller's 'alternative' space from the
203 base address of the controller. This allows these registers to be
204 located separately from the data and register space.
206 config SYS_ATA_IDE0_OFFSET
207 hex "Offset of bus 0"
210 This is the start offset of bus 0 from the start of the
211 controller registers. All the other registers are calculated from
212 this address. using the above options. For x86 hardware this is often
215 config SYS_ATA_IDE1_OFFSET
216 hex "Offset of bus 1"
219 This is the start offset of bus 1 from the start of the
220 controller registers. All the other registers are calculated from
221 this address. using the above options. For x86 hardware this is often
225 bool "Enable ATAPI support"
227 This enabled Advanced Technology Attachment Packet Interface (ATAPI),
228 a protocol that allows a greater variety of devices to be connected
229 to the IDE port than with plain ATA. It allows SCSI commands to be
230 sent across the bus, e.g. to support optical drives.
233 bool "Support board-specific reset"
235 If this is defined, IDE Reset will be performed by calling the
238 ide_set_reset(int reset)
240 where reset is 1 to assert reset and 0 to de-assert it. This function
241 must be defined in a board-specific file.
246 bool "Enable LBA support for disks larger than 137GB"
248 Set this to enable support for disks larger than 137GB.
249 Also look at CONFIG_SYS_64BIT_LBA. Without both of these, LBA48
250 support uses 32bit variables and will 'only' support disks up to
254 bool "Enable 64bit number of blocks on a block device"
256 Make the block subsystem use 64bit sector addresses, rather than the