Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: sdmmc / mvsdio and SDHC



Hi,

(dropping netbsd-users@)

> > ld0 at sdmmc0: <00000>
> > ld0: 7695 MB, 3908 cyl, 64 head, 63 sec, 512 bytes/sect x 15759360 sectors
> > ld0: 4-bit width, bus clock 50.000 MHz
> > ...
> >
> > /dev/rld0a: file system is clean; not checking
> > mvsdio0: CRC Error (0x4000)
> ...
> 
> > Does anybody have a clue ? The card is working like a charm in a USB card 
> > reader.

> I would slow down the bus clock. It obviously works at 400kHz and
> CRC's when the bus speeds up. Try a speed lower than 50Mhz.
> Try 25Mhz or 19MHz. Maybe, as a quick test, you should comment out the
> line that changes the clock and see if the CRC happens. After that try
> 25MHz.

Thank you. I first tried with a 25Mhz bus speed, that lead to this panic:

  ld0 at sdmmc0: <00000>
  ld0: 7695 MB, 3908 cyl, 64 head, 63 sec, 512 bytes/sect x 15759360 sectors
  ld0: 4-bit width, bus clock 25.000 MHz 
  ... 
  Starting root file system check:
  /dev/rld0a: file system is clean; not checking
  panic: kernel diagnostic assertion "!(bp->b_oflags & BO_DELWRI)" failed: file 
"/usr/src/sys/kern/vfs_wapbl.c", line 956 
  Stopped in pid 73.1 (mount_ffs) at      netbsd:cpu_Debugger+0x4:        bx    
 r   
  14
  db> 


Then tried 19Mhz: bingo ! It seems to work fine.

Is it likely to be a hardware limitation or a software bug ?


For NetBSD users on marvell socs out there that might have the same issue: all 
I did 
was to set the maximum clock speed to 19Mhz in 
/usr/src/sys/dev/marvell/mvsdioreg.h:

  -#define MVSDIO_MAX_CLOCK        (50 * 1000)     /* 50,000 kHz */
  +#define MVSDIO_MAX_CLOCK        (19 * 1000)     /* 19,000 kHz */

(and rebuild the kernel obv.)



Thanks a lot Lwazi !

Sebastien


Home | Main Index | Thread Index | Old Index