1config BLK 2 bool # "Support block devices" 3 depends on DM 4 default y if MMC || USB || SCSI || NVME || IDE || AHCI || SATA 5 default y if EFI_MEDIA || VIRTIO_BLK || PVBLOCK 6 help 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. 13 14config 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 19 help 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. 24 25config SPL_BLK 26 bool "Support block devices in SPL" 27 depends on SPL_DM && BLK 28 default y 29 help 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. 36 37config TPL_BLK 38 bool "Support block devices in TPL" 39 depends on TPL_DM && BLK 40 help 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. 47 48config VPL_BLK 49 bool "Support block devices in VPL" 50 depends on VPL_DM && BLK 51 default y 52 help 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. 59 60config BLOCK_CACHE 61 bool "Use block device cache" 62 depends on BLK 63 default y 64 help 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. 69 70config BLKMAP 71 bool "Composable virtual block devices (blkmap)" 72 depends on BLK 73 help 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 77 subsystem. 78 79 Example use-cases: 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 86 image. 87 88config SPL_BLOCK_CACHE 89 bool "Use block device cache in SPL" 90 depends on SPL_BLK 91 help 92 This option enables the disk-block cache in SPL 93 94config TPL_BLOCK_CACHE 95 bool "Use block device cache in TPL" 96 depends on TPL_BLK 97 help 98 This option enables the disk-block cache in TPL 99 100config EFI_MEDIA 101 bool "Support EFI media drivers" 102 default y if EFI || SANDBOX 103 help 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 106 anything. 107 108 For sandbox there is a test driver. 109 110if EFI_MEDIA 111 112config EFI_MEDIA_SANDBOX 113 bool "Sandbox EFI media driver" 114 depends on SANDBOX 115 default y 116 help 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. 120 121config EFI_MEDIA_BLK 122 bool "EFI media block driver" 123 depends on EFI_APP 124 default y 125 help 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. 130 131endif # EFI_MEDIA 132 133config IDE 134 bool "Support IDE controllers" 135 help 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. 140 141if IDE 142 143config SYS_IDE_MAXBUS 144 hex "Maximumm number of IDE buses" 145 default 2 146 help 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 150 controller. 151 152config SYS_IDE_MAXDEVICE 153 hex "Maximum number of IDE devices" 154 default 2 155 help 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. 160 161config SYS_ATA_BASE_ADDR 162 hex "Base address of IDE controller" 163 default 0 164 help 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 168 memory. 169 170config SYS_ATA_STRIDE 171 hex "IDE port stride" 172 default 0x1 173 help 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. 178 179config SYS_ATA_DATA_OFFSET 180 hex "Offset of the data register" 181 default 0x0 182 help 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 186 controller space. 187 188config SYS_ATA_REG_OFFSET 189 hex "Offset of the register space" 190 default 0x0 191 help 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. 197 198config SYS_ATA_ALT_OFFSET 199 hex "Offset of the alternative registers" 200 default 0x0 201 help 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. 205 206config SYS_ATA_IDE0_OFFSET 207 hex "Offset of bus 0" 208 default 0x1f0 209 help 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 213 0x1f0. 214 215config SYS_ATA_IDE1_OFFSET 216 hex "Offset of bus 1" 217 default 0x170 218 help 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 222 0x170. 223 224config ATAPI 225 bool "Enable ATAPI support" 226 help 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. 231 232config IDE_RESET 233 bool "Support board-specific reset" 234 help 235 If this is defined, IDE Reset will be performed by calling the 236 function: 237 238 ide_set_reset(int reset) 239 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. 242 243endif # IDE 244 245config LBA48 246 bool "Enable LBA support for disks larger than 137GB" 247 help 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 251 2.1TB. 252 253config SYS_64BIT_LBA 254 bool "Enable 64bit number of blocks on a block device" 255 help 256 Make the block subsystem use 64bit sector addresses, rather than the 257 default of 32bit. 258