cvs commit: src/sys/boot/arm/at91/libat91 sd-card.c

M. Warner Losh imp at bsdimp.com
Fri Mar 30 02:54:01 UTC 2007


In message: <20070328224651.GE80382 at cicely12.cicely.de>
            Bernd Walter <ticso at cicely12.cicely.de> writes:
: On Wed, Mar 28, 2007 at 10:31:32PM +0000, Warner Losh wrote:
: > imp         2007-03-28 22:31:32 UTC
: > 
: >   FreeBSD src repository
: > 
: >   Modified files:
: >     sys/boot/arm/at91/libat91 sd-card.c 
: >   Log:
: >   All SD cards have a block size of 512.  The READ_BL_LEN field in the
: >   CSD is usually 512 (well, 9), but for 2GB (and the rogue 4GB SD cards)
: >   it is 1024 (or 2048 for 4GB).  This value doesn't work for the block
: >   read commands (which really want 512).  Hardcode 512 for those.  This
: >   may break really old MMC cards that don't have a 512 block size (I've
: >   never seen one: make my day and send me one :-), but since the MMC
: >   side of the house is currently broken, it should only have the effect
: >   that 2GB (and non-conforming 4GB) SD cards will work.
: 
: Great!
: That explains why the partition table was read fine with my 2G card,
: but although it calculated the right block it failed to read the
: disklabel.

Yes.  Your report is what 'twigged' me to there being something
wrong.  I went out and bought a 2GB card at one of the local office
stores for something like $25.00 and when it didn't work, I had a
flash of inspiriation about why the 'non-standard 4GB SD card' and the
2GB cards didn't work...

Warner


More information about the cvs-src mailing list