> EDIT: So what I am getting from this is that U-boot *will not* recognize
the drive if connected by regular USB? I need a SATA converter?
that's incorrect... or a misunderstanding, it's hard to tell which.
u-boot sort-of uses bits of the linux kernel drivers, so its capability is
limited to a subset of what you can do in linux. however, booting from USB
devices is something that was added a looong time ago. the linux kernel
"equivalent" module that was added ages ago is "usb-storage.ko".
so any kind of usb memory stick, usb-based sd/mmc card reader, usb-to-sata
converter, you should be able to boot from... *once* u-boot itself is loaded
into memory and executed.
so when you say "drive connected by regular USB" that *is* a "drive connected
through a USB-to-SATA converter". you can't "connect a drive by regular USB"
*except* by connecting it via a USB-to-SATA converter.
(that's the bit that was unclear in the question)
however getting *TO* that point (where u-boot is in memory and has been
executed) is *NOT* possible to do over anything *OTHER* than NAND, SD/MMC or
the USB-OTG port, because the bootstrap ROM code inside the A20 is extremely
small and extremely limited.
so boot will have to go like this:
* internal A20 BROM looks for boot0 ASCII string first on SD/MMC and then on
NAND
* internal A20 BROM finds boot0 string and loads it into the 1st level cache
of the processor
* bootstrap (boot0) loader is executed (from NAND or SD/MMC)
* boot0 initialises DDR3 RAM so that larger programs can be loaded into DDR3
RAM.
* boot0 loads up boot1 (from NAND or SD/MMC)
* boot1 looks for u-boot in a FAT partition (on NAND or SD/MMC)
* u-boot runs and initialises USB
* u-boot discovers a USB-to-SATA converter
* u-boot discovers a FAT or EXT2/3/4 partition on the USB-to-SATA converted
driver
* u-boot finds a linux kernel on the SATA drive
* u-boot loads that linux kernel into memory and executes it
* linux kernel loads a stack of drivers and we're off