Can't boot Marvel Sheevaplug from USB

Maks Verver maksverver at geocities.com
Tue Sep 15 11:59:12 UTC 2009


Hi everyone,

I'm also playing with a Sheevaplug and I'm running into the same problem 
as reported  by Rafal Jaworowski, but I think I have a clearer picture 
of what goes wrong.

To recap, the kernel fails to mount the root filesystem because the 
partition on the USB stick isn't recognized by the kernel:

FreeBSD 9.0-CURRENT #4: Mon Sep 14 19:57:10 CEST 2009
-- blablabla --
ugen0.1: <Marvell> at usbus0
uhub0: <Marvell EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0
uhub0: 1 port with 1 removable, self powered
Root mount waiting for: usbus0
ugen0.2: <vendor 0x0930> at usbus0
umass0: <vendor 0x0930 USB Flash Memory, class 0/0, rev 2.00/1.00, addr 
2> on usbus0
umass0:  SCSI over Bulk-Only; quirks = 0x0000
Root mount waiting for: usbus0
umass0:0:0:-1: Attached to scbus0
Trying to mount root from ufs:/dev/da0s1a
ROOT MOUNT ERROR:

I think the problem is that the partition is detected only after the USB 
bus has been scanned. If I configure a kernel to boot from the network 
instead, it does recognize the USB device because of the additional 
delay involved in booting from the network:

FreeBSD 9.0-CURRENT #5: Mon Sep 14 20:45:30 CEST 2009
-- blablabla --
ugen0.1: <Marvell> at usbus0
uhub0: <Marvell EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0
uhub0: 1 port with 1 removable, self powered
mge0: link state changed to UP
Received DHCP Offer packet on mge0 from 130.89.1.145 via 130.89.160.4 
(accepted) (no root path)
Received DHCP Offer packet on mge0 from 130.89.1.144 via 130.89.160.5 
(ignored) (no root path)
ugen0.2: <vendor 0x0930> at usbus0
umass0: <vendor 0x0930 USB Flash Memory, class 0/0, rev 2.00/1.00, addr 
2> on usbus0
umass0:  SCSI over Bulk-Only; quirks = 0x0000
umass0:0:0:-1: Attached to scbus0
(probe0:umass-sim0:0:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0
(probe0:umass-sim0:0:0:0): CAM Status: SCSI Status Error
(probe0:umass-sim0:0:0:0): SCSI Status: Check Condition
(probe0:umass-sim0:0:0:0): UNIT ATTENTION asc:28,0
(probe0:umass-sim0:0:0:0): Not ready to ready change, medium may have 
changed
(probe0:umass-sim0:0:0:0): (probe0:umass-sim0:0:0:0): TEST UNIT READY. 
CDB: 0 0 0 0 0 0
(probe0:umass-sim0:0:0:0): UNIT ATTENTION asc:28,0
(probe0:umass-sim0:0:0:0): Not ready to ready change, medium may have 
changed
Retrying Command (per Sense Data)
(probe0:umass-sim0:0:0:0): Retrying Command
pass0 at umass-sim0 bus 0 scbus0 target 0 lun 0
pass0: < USB Flash Memory 1.00> Removable Direct Access SCSI-2 device
pass0: Serial Number 0612140557130
pass0: 40.000MB/s transfers
GEOM: new disk da0
da0 at umass-sim0 bus 0 scbus0 target 0 lun 0
da0: < USB Flash Memory 1.00> Removable Direct Access SCSI-2 device
da0: Serial Number 0612140557130
da0: 40.000MB/s transfers
da0: 962MB (1971200 512 byte sectors: 64H 32S/T 962C)

Of course with the kernel configured like this, the kernel wants to 
mount the root filesystem from NFS and I can't break into the mountroot> 
prompt!

It seems that the kernel assumes that it only needs to wait for the USB 
bus to finish scanning and then expects the root partition to be 
available, but apparently partitions can be detected after that.

Does anyone have a suggestion how to deal with this? Is there a way to 
insert a delay before trying to mount root? (I tried setting SCSI_DELAY 
to 5000 but this didn't seem to have any effect -- I didn't notice any 
delay. Maybe this isn't supported for the ARM architecture?)

Kind regards,
Maks Verver.



More information about the freebsd-questions mailing list