Kconfig 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. config 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. config SPL_LEGACY_BLOCK
  14. bool # "Enable Legacy Block Device"
  15. depends on SPL && !DM_SPL
  16. default y if SPL_MMC || SPL_USB_STORAGE || SCSI || NVME || IDE
  17. default y if SPL_AHCI_PCI
  18. help
  19. Some devices require block support whether or not DM is enabled. This
  20. is only supported in SPL. With this, the blk uclass is not used, but
  21. instead a legacy implementation of block devices is used, with all
  22. devices consisting of 'struct blk_desc' records.
  23. config SPL_BLK
  24. bool "Support block devices in SPL"
  25. depends on SPL_DM && BLK
  26. default y
  27. help
  28. Enable support for block devices, such as SCSI, MMC and USB
  29. flash sticks. These provide a block-level interface which permits
  30. reading, writing and (in some cases) erasing blocks. Block
  31. devices often have a partition table which allows the device to
  32. be partitioned into several areas, called 'partitions' in U-Boot.
  33. A filesystem can be placed in each partition.
  34. config TPL_BLK
  35. bool "Support block devices in TPL"
  36. depends on TPL_DM && BLK
  37. help
  38. Enable support for block devices, such as SCSI, MMC and USB
  39. flash sticks. These provide a block-level interface which permits
  40. reading, writing and (in some cases) erasing blocks. Block
  41. devices often have a partition table which allows the device to
  42. be partitioned into several areas, called 'partitions' in U-Boot.
  43. A filesystem can be placed in each partition.
  44. config VPL_BLK
  45. bool "Support block devices in VPL"
  46. depends on VPL_DM && BLK
  47. default y
  48. help
  49. Enable support for block devices, such as SCSI, MMC and USB
  50. flash sticks. These provide a block-level interface which permits
  51. reading, writing and (in some cases) erasing blocks. Block
  52. devices often have a partition table which allows the device to
  53. be partitioned into several areas, called 'partitions' in U-Boot.
  54. A filesystem can be placed in each partition.
  55. config BLOCK_CACHE
  56. bool "Use block device cache"
  57. depends on BLK
  58. default y
  59. help
  60. This option enables a disk-block cache for all block devices.
  61. This is most useful when accessing filesystems under U-Boot since
  62. it will prevent repeated reads from directory structures and other
  63. filesystem data structures.
  64. config BLKMAP
  65. bool "Composable virtual block devices (blkmap)"
  66. depends on BLK
  67. help
  68. Create virtual block devices that are backed by various sources,
  69. e.g. RAM, or parts of an existing block device. Though much more
  70. rudimentary, it borrows a lot of ideas from Linux's device mapper
  71. subsystem.
  72. Example use-cases:
  73. - Treat a region of RAM as a block device, i.e. a RAM disk. This let's
  74. you extract files from filesystem images stored in RAM (perhaps as a
  75. result of a TFTP transfer).
  76. - Create a virtual partition on an existing device. This let's you
  77. access filesystems that aren't stored at an exact partition
  78. boundary. A common example is a filesystem image embedded in an FIT
  79. image.
  80. config SPL_BLOCK_CACHE
  81. bool "Use block device cache in SPL"
  82. depends on SPL_BLK
  83. help
  84. This option enables the disk-block cache in SPL
  85. config TPL_BLOCK_CACHE
  86. bool "Use block device cache in TPL"
  87. depends on TPL_BLK
  88. help
  89. This option enables the disk-block cache in TPL
  90. config EFI_MEDIA
  91. bool "Support EFI media drivers"
  92. default y if EFI || SANDBOX
  93. help
  94. Enable this to support media devices on top of UEFI. This enables
  95. just the uclass so you also need a specific driver to make this do
  96. anything.
  97. For sandbox there is a test driver.
  98. config SPL_BLK_FS
  99. bool "Load images from filesystems on block devices"
  100. depends on SPL_BLK
  101. help
  102. Use generic support to load images from fat/ext filesystems on
  103. different types of block devices such as NVMe.
  104. if EFI_MEDIA
  105. config EFI_MEDIA_SANDBOX
  106. bool "Sandbox EFI media driver"
  107. depends on SANDBOX
  108. default y
  109. help
  110. Enables a simple sandbox media driver, used for testing just the
  111. EFI_MEDIA uclass. It does not do anything useful, since sandbox does
  112. not actually support running on top of UEFI.
  113. config EFI_MEDIA_BLK
  114. bool "EFI media block driver"
  115. depends on EFI_APP
  116. default y
  117. help
  118. Enables a block driver for providing access to UEFI devices. This
  119. allows use of block devices detected by the underlying UEFI
  120. implementation. With this it is possible to use filesystems on these
  121. devices, for example.
  122. endif # EFI_MEDIA
  123. config IDE
  124. bool "Support IDE controllers"
  125. help
  126. Enables support for IDE (Integrated Drive Electronics) hard drives.
  127. This allows access to raw blocks and filesystems on an IDE drive
  128. from U-Boot. See also CMD_IDE which provides an 'ide' command for
  129. performing various IDE operations.
  130. if IDE
  131. config SYS_IDE_MAXBUS
  132. hex "Maximumm number of IDE buses"
  133. default 2
  134. help
  135. This is the number of IDE buses provided by the board. Each one
  136. can have one or two devices. One is designated the master and the
  137. other one the slave. It is not required to have one or both on any
  138. controller.
  139. config SYS_IDE_MAXDEVICE
  140. hex "Maximum number of IDE devices"
  141. default 2
  142. help
  143. This is the number of IDE devices which can be connected to the
  144. board. Normally this is 2 * CONFIG_SYS_IDE_MAXBUS since up to two
  145. devices can be connected to each bus. The number of devices actually
  146. connected is determined by probing.
  147. config SYS_ATA_BASE_ADDR
  148. hex "Base address of IDE controller"
  149. default 0
  150. help
  151. This is the address of the IDE controller, from which other addresses
  152. are calculated. Each bus is at a fixed offset from this address,
  153. so it assumed that they are in the same area of the I/O space or
  154. memory.
  155. config SYS_ATA_STRIDE
  156. hex "IDE port stride"
  157. default 0x1
  158. help
  159. This is the distance between each IDE register, in bytes. For an
  160. 8-bit controller this is typically 1, meaning that the registers
  161. appear at consecutive bytes. If the value 2 two, that might indicate
  162. a 16-bit register space.
  163. config SYS_ATA_DATA_OFFSET
  164. hex "Offset of the data register"
  165. default 0x0
  166. help
  167. This is the offset of the controller's data register from the base
  168. address of the controller. This is typically 0, but may be something
  169. else if there are some other registers at the start of the
  170. controller space.
  171. config SYS_ATA_REG_OFFSET
  172. hex "Offset of the register space"
  173. default 0x0
  174. help
  175. This is the offset of the controller's 'register' space from the base
  176. address of the controller. The data register (which is typically at
  177. offset 0) has its own CONFIG, to deal with controllers where it is
  178. somewhere else. Register 1 will be at this offset + 1, register 2 at
  179. CONFIG_SYS_ATA_REG_OFFSET + 2, etc.
  180. config SYS_ATA_ALT_OFFSET
  181. hex "Offset of the alternative registers"
  182. default 0x0
  183. help
  184. This is the offset of the controller's 'alternative' space from the
  185. base address of the controller. This allows these registers to be
  186. located separately from the data and register space.
  187. config SYS_ATA_IDE0_OFFSET
  188. hex "Offset of bus 0"
  189. default 0x1f0
  190. help
  191. This is the start offset of bus 0 from the start of the
  192. controller registers. All the other registers are calculated from
  193. this address. using the above options. For x86 hardware this is often
  194. 0x1f0.
  195. config SYS_ATA_IDE1_OFFSET
  196. hex "Offset of bus 1"
  197. default 0x170
  198. help
  199. This is the start offset of bus 1 from the start of the
  200. controller registers. All the other registers are calculated from
  201. this address. using the above options. For x86 hardware this is often
  202. 0x170.
  203. config ATAPI
  204. bool "Enable ATAPI support"
  205. help
  206. This enabled Advanced Technology Attachment Packet Interface (ATAPI),
  207. a protocol that allows a greater variety of devices to be connected
  208. to the IDE port than with plain ATA. It allows SCSI commands to be
  209. sent across the bus, e.g. to support optical drives.
  210. config IDE_RESET
  211. bool "Support board-specific reset"
  212. help
  213. If this is defined, IDE Reset will be performed by calling the
  214. function:
  215. ide_set_reset(int reset)
  216. where reset is 1 to assert reset and 0 to de-assert it. This function
  217. must be defined in a board-specific file.
  218. endif # IDE
  219. config LBA48
  220. bool "Enable LBA support for disks larger than 137GB"
  221. help
  222. Set this to enable support for disks larger than 137GB.
  223. Also look at CONFIG_SYS_64BIT_LBA. Without both of these, LBA48
  224. support uses 32bit variables and will 'only' support disks up to
  225. 2.1TB.
  226. config SYS_64BIT_LBA
  227. bool "Enable 64bit number of blocks on a block device"
  228. help
  229. Make the block subsystem use 64bit sector addresses, rather than the
  230. default of 32bit.