Okay, so I have a 250GB drive in a Rosewill USB SATA enclosure, and I want to try to get U-Boot to load the uImage from it. "fdisk -l" looks like this:
$ sudo fdisk -l
Disk /dev/sda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x97073300
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 30401 244091610 83 Linux
sda1 is a 100MB ext2 partition that I planned to mount as /boot
sda2 is a giant ext4 partition that I planned to mount as / (I was still deciding whether I had a reason to split the filesystem more than that)
U-Boot recognizes the drive in the enclosure as a mass storage device, then it claims that my partitions are invalid. Here's a log of one of my attempts:
Hit any key to stop autoboot: 0
Marvell>> usb start
(Re)start USB...
USB: scanning bus for devices... 2 USB Device(s) found
scanning bus for storage devices... T 1 Storage Device(s) found
Marvell>> ext2load usb 0:1 0x800000 /uImage
** Bad partition 1 **
Marvell>> usb storage
Device 0: Vendor: Maxtor 6 Prod.: B250S0 Rev:
Type: Hard Disk
Capacity: 238475.1 MB = 232.8 GB (488397168 x 512)
Marvell>> usb tree
Device Tree:
1 Hub (480MBit/s, 0mA)
| Marvell EHCI
|
+-2 Mass Storage (480MBit/s, 2mA)
Sunplus Technology Co.,Ltd. USB to Serial-ATA bridge FAFFFF06B2B60FFFFF
Marvell>> usb dev 0
USB device 0:
Device 0: Vendor: Maxtor 6 Prod.: B250S0 Rev:
Type: Hard Disk
Capacity: 238475.1 MB = 232.8 GB (488397168 x 512)
... is now current device
Marvell>> usb part
print_part of 0
## Unknown partition table
print_part of 1
## Unknown partition table
print_part of 2
## Unknown partition table
print_part of 3
## Unknown partition table
print_part of 4
## Unknown partition table
Marvell>> usb info
1: Hub, USB Revision 2.0
- Marvell EHCI
- Class: Hub
- PacketSize: 64 Configurations: 1
- Vendor: 0x0000 Product 0x0000 Version 1.0
Configuration: 1
- Interfaces: 1 Self Powered 0mA
Interface: 0
- Alternate Settings 0, Endpoints: 1
- Class Hub
- Endpoint 1 In Interrupt MaxPacket 8 Interval 255ms
2: Mass Storage, USB Revision 2.0
- Sunplus Technology Co.,Ltd. USB to Serial-ATA bridge FAFFFF06B2B60FFFFF
- Class: (from Interface) Mass Storage
- PacketSize: 64 Configurations: 1
- Vendor: 0x04fc Product 0x0c25 Version 1.18
Configuration: 1
- Interfaces: 1 Self Powered 2mA
- String: ""
Interface: 0
- Alternate Settings 0, Endpoints: 2
- Class Mass Storage, Transp. SCSI, Bulk only
- String: ""
- Endpoint 1 In Bulk MaxPacket 512
- Endpoint 2 Out Bulk MaxPacket 512
The "T" after "scanning bus for storage devices" is printed while U-Boot waits for the drive to spin up. It also takes at least a few seconds for "usb info" to print info on the hard drive, but the drive is already spinning by then.
I'm hoping I'm missing something obvious and U-Boot isn't at fault.