Mount root from SD card?

Alexander Motin mav at FreeBSD.org
Wed Jan 21 05:01:30 PST 2009


Krassimir Slavchev wrote:
> This is the output:
> 
> CMD: 0 ARG 0 len 0
> RES: 0
> CMD: 8 ARG 1aa len 0
> RES: 1
> CMD: 37 ARG 0 len 0
> RES: 0
> CMD: 29 ARG 0 len 0
> RES: 0
> CMD: 0 ARG 0 len 0
> RES: 0
> CMD: 8 ARG 1aa len 0
> RES: 1
> CMD: 37 ARG 0 len 0
> RES: 0
> CMD: 29 ARG ff8000 len 0
> RES: 0
> CMD: 37 ARG 0 len 0
> RES: 0
> CMD: 29 ARG ff8000 len 0
> RES: 0
> CMD: 2 ARG 0 len 0
> RES: 0
> CMD: 3 ARG 0 len 0
> RES: 0
> CMD: 9 ARG 10000 len 0
> RES: 0
> CMD: 7 ARG 10000 len 0
> RES: 0
> CMD: 37 ARG 10000 len 0
> RES: 0
> CMD: 33 ARG 0 len 8
> RES: 0
> CMD: 6 ARG ffffff len 64
> RES: 0
> CMD: 37 ARG 10000 len 0
> RES: 0
> CMD: d ARG 0 len 64
> RES: 2
> CMD: 37 ARG 10000 len 0
> RES: 0
> CMD: d ARG 0 len 64
> RES: 0

This part looks fine. Just normal SD detection and initialization.

Somewhere here bus frequency and high-speed timings negotiated:

> CMD: 7 ARG 0 len 0
> RES: 0
> CMD: 7 ARG 10000 len 0
> RES: 0
> CMD: 7 ARG 0 len 0
> RES: 0
> CMD: 7 ARG 10000 len 0
> RES: 2
> CMD: 6 ARG 80fffff0 len 64
> RES: 0
> CMD: 7 ARG 0 len 0
> RES: 0
> mmcsd0: 1983MB <SD Memory Card> at mmc0 30MHz/1bit

Then regular card activity beging:

- select the card - error
> CMD: 7 ARG 10000 len 0
> RES: 2

- select bus width - normal ??
> CMD: 37 ARG 10000 len 0
> RES: 0
> CMD: 6 ARG 0 len 0
> RES: 0

- read some sectors - normal ??
> CMD: 11 ARG 0 len 512
> RES: 0
> CMD: 11 ARG 0 len 512
> RES: 0
> CMD: 11 ARG 200 len 512
> RES: 0
> Trying to mount root from ufs:/dev/mmcsd0s1

It's a bis strange to me that this card selection request failed, while
previous ones during initialization managed fine. May be card or
controller unable to handle such speed, or may be bus just hasn't
managed to settle new parameters until that command.
Also interesting what are the reading command returned after card select
command failed.

Boot with verbose messages enabled should show when exactly frequency
has changed. Do it please.

>>> Also sysinstall crashes when trying to create a new slice.
>>> May be because:
>>> Disk name:      mmcsd0                                    FDISK
>>> Partition Editor
>>> DISK Geometry:  0 cyls/0 heads/0 sectors = 0 sectors (0MB)
>> I don't think it is related. There is no such thing as disk geometry on
>> flash card, that's why driver does not announce it. The only places
>> where it may be important is when fdisk is trying to align partitions
>> with track boundaries for compatibility with legacy BIOS'es.
> 
>> There is no problem to report some fake values, but from one side they
>> should better match BIOS assumptions on geometry and from other, they
>> should as much as possible to match flash erase sector size. I just have
>> no any system which supports SD booting to report something reasonable
>> there. Reporting maximal 63 sectors per track as for HDD may result in
>> ineffective filesystem alignment and reduced performance.
> 
> At least sysinstall should be fixed. Should I fill a PR for this?

Probably yes. I haven't looked into sysinstall.

-- 
Alexander Motin


More information about the freebsd-arm mailing list