# Pastebin cICtwNx8
Dependency loop
===============
BLK (defined at drivers/block/Kconfig:1), with definition...
config BLK
bool
help
Enable support for block devices, such as SCSI, MMC and USB
flash sticks. These provide a block-level interface which permits
reading, writing and (in some cases) erasing blocks. Block
devices often have a partition table which allows the device to
be partitioned into several areas, called 'partitions' in U-Boot.
A filesystem can be placed in each partition.
(select-related dependencies: (AHCI && DM) || SATA || EFI_MEDIA || IDE || MMC || (MTD_BLOCK && MTD) || (UBI_BLOCK && MTD_UBI && MTD) || (NVMXIP && MTD) || NVME || SCSI || USB || (VIRTIO_BLK && VIRTIO) || (PVBLOCK && DM && XEN))
(imply-related dependencies: (AHCI && DM) || SATA || EFI_MEDIA || IDE || MMC || (MTD_BLOCK && MTD) || (UBI_BLOCK && MTD_UBI && MTD) || (NVMXIP && MTD) || NVME || SCSI || USB || (VIRTIO_BLK && VIRTIO) || (PVBLOCK && DM && XEN))
...depends on USB (defined at drivers/usb/Kconfig:1), with definition...
menuconfig USB
bool "USB support"
select BLK
help
Universal Serial Bus (USB) is a specification for a serial bus
subsystem which offers higher speeds and more features than the
traditional PC serial port. The bus supplies power to peripherals
and allows for hot swapping. Up to 127 USB peripherals can be
connected to a single USB host in a tree structure.
The USB host is the root of the tree, the peripherals are the
leaves and the inner nodes are special USB devices called hubs.
Most PCs now have USB host ports, used to connect peripherals
such as scanners, keyboards, mice, modems, cameras, disks,
flash memory, network links, and printers to the PC.
Say Y here if your device has an USB port, either host, peripheral or
dual-role.
For an USB host port, you then need to say Y to at least one of the
Host Controller Driver (HCD) options below. Choose a USB 1.1
controller, such as "UHCI HCD support" or "OHCI HCD support",
and "EHCI HCD (USB 2.0) support" except for older systems that
do not have USB 2.0 support. It doesn't normally hurt to select
them all if you are not certain.
If your system has a device-side USB port, used in the peripheral
side of the USB protocol, see the "USB Gadget" framework instead.
After choosing your HCD, then select drivers for the USB peripherals
you'll be using. You may want to check out the information provided
in and especially the links given in
.
(select-related dependencies: (ARCH_APPLE && ) || (ARCH_SUNXI && BOOTSTD_DEFAULTS && ) || (MBA6 && ) || (BOARD_SPECIFIC_OPTIONS && TARGET_QEMU_ARM_SBSA && ARM))
(imply-related dependencies: (ARCH_APPLE && ) || (ARCH_SUNXI && BOOTSTD_DEFAULTS && ) || (MBA6 && ) || (BOARD_SPECIFIC_OPTIONS && TARGET_QEMU_ARM_SBSA && ARM))
...depends on BOOTSTD_DEFAULTS (defined at boot/Kconfig:485), with definition...
config BOOTSTD_DEFAULTS
bool "Select some common defaults for standard boot"
select BOOT_DEFAULTS
select BOOTMETH_DISTRO
depends on BOOTSTD && BOOTSTD
help
These are not required but are commonly needed to support a good
selection of booting methods. Enable this to improve the capability
of U-Boot to boot various images.
(imply-related dependencies: n)
...depends on BOOTSTD (defined at boot/Kconfig:428), with definition...
menuconfig BOOTSTD
bool "Standard boot"
default y
depends on DM && OF_CONTROL && BLK
help
U-Boot supports a standard way of locating something to boot,
typically an Operating System such as Linux, provided by a distro such
as Arch Linux or Debian. Enable this to support iterating through
available bootdevs and using bootmeths to find bootflows suitable for
booting.
Standard boot is not a standard way of booting, just a framework
within U-Boot for supporting all the different ways that exist.
Terminology:
- bootdev - a device which can hold a distro (e.g. MMC)
- bootmeth - a method to scan a bootdev to find bootflows (owned by
U-Boot)
- bootflow - a description of how to boot (owned by the distro)
...depends again on BLK (defined at drivers/block/Kconfig:1)