# 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)