RFC: PCI SD host controller driver & mmc/mmcsd modules improvements

Carlos A. M. dos Santos unixmania at gmail.com
Sun Sep 28 06:12:28 UTC 2008


On Sun, Sep 28, 2008 at 2:35 AM, Carlos A. M. dos Santos
<unixmania at gmail.com> wrote:
> On Sat, Sep 27, 2008 at 6:26 PM, Oleksandr Tymoshenko
> <gonzo at bluezbox.com> wrote:
>> Alexander Motin wrote:
>>>
>>> Hi.
>>
>>>
>>> Latest patches against 8-CURRENT (should also fit 7-STABLE) may be found
>>> at:
>>> http://people.freebsd.org/~mav/sdhci/
>>
>>    Thanks! That's just what I was looking for about three weeks ago :)
>>>
>>> I will be grateful for any feedbacks, comments and support.
>>
>> 7.1 requires s/kproc/kthread/ but otherwise works fine:
>>
>> sdhci0: <RICOH R5C822 SD> mem 0xff9fb800-0xff9fb8ff irq 9 at device 1.2 on
>> pci2
>> sdhci0: 1 slot(s) allocated
>> sdhci0: [ITHREAD]
>>
>> mmc0: <MMC/SD bus> on sdhci0
>> mmc0: SD card: 507379712 bytes
>> mmcsd0: 483MB <MMC/SD Memory Card> (read-only) at mmc0
>> mmc0: setting transfer rate to 30.000MHz
>> mmc0: setting bus width to 4 bits
>> GEOM_LABEL: Label for provider mmcsd0s1 is msdosfs/SD.
>
> It did not detect the hardware on my Compaq 6910p:
>
> none2 at pci0:2:6:3:       class=0x080500 card=0x30be103c chip=0x08221180
> rev=0x20 hdr=0x00
>    vendor     = 'Ricoh Company, Ltd.'
>    device     = 'R5C832, R5C843 SDA Standard Compliant SD Host Controller'
>    class      = base peripheral
> none3 at pci0:2:6:4:       class=0x088000 card=0x30be103c chip=0x08431180
> rev=0x10 hdr=0x00
>    vendor     = 'Ricoh Company, Ltd.'
>    device     = 'unknown Ricoh MMC Host Controller'
>    class      = base peripheral
>
> Suggestions are welcome. :-)

Here goes a good suggestion: do not forget to load the module, you
dumb ass! Now I got this:

sdhci0: <RICOH R5C822 SD> mem 0xe4103000-0xe41030ff irq 19 at device 6.3 on pci2
sdhci0: Reserved 0x100 bytes for rid 0x10 type 3 at 0xe4103000
sdhci0: 1 slot(s) allocated
sdhci0: [MPSAFE]
sdhci0: [ITHREAD]
mmc0: <MMC/SD bus> on sdhci0
mmc0: Reset 0x6 never completed - 0x6.
mmc0: ============== REGISTER DUMP ==============
mmc0: Sys addr: 0x00000000 | Version:  0x00000400
mmc0: Blk size: 0x00000000 | Blk cnt:  0x00000000
mmc0: Argument: 0x00000000 | Trn mode: 0x00000000
mmc0: Present:  0x01f20000 | Host ctl: 0x00000000
mmc0: Power:    0x0000000f | Blk gap:  0x00000000
mmc0: Wake-up:  0x00000000 | Clock:    0x00008007
mmc0: Timeout:  0x00000000 | Int stat: 0x00000000
mmc0: Int enab: 0x00ff00fb | Sig enab: 0x00ff00fb
mmc0: AC12 err: 0x00000000 | Slot int: 0x00000000
mmc0: Caps:     0x018021a1 | Max curr: 0x00000040
mmc0: ===========================================
mmc0: Reset 0x6 never completed - 0x6.
mmc0: ============== REGISTER DUMP ==============
mmc0: Sys addr: 0x00000000 | Version:  0x00000400
mmc0: Blk size: 0x00000000 | Blk cnt:  0x00000000
mmc0: Argument: 0x00000000 | Trn mode: 0x00000000
mmc0: Present:  0x01f20000 | Host ctl: 0x00000000
mmc0: Power:    0x0000000f | Blk gap:  0x00000000
mmc0: Wake-up:  0x00000000 | Clock:    0x00008007
mmc0: Timeout:  0x00000000 | Int stat: 0x00000000
mmc0: Int enab: 0x00ff00fb | Sig enab: 0x00ff00fb
mmc0: AC12 err: 0x00000000 | Slot int: 0x00000000
mmc0: Caps:     0x018021a1 | Max curr: 0x00000040
mmc0: ===========================================
mmc0: setting transfer rate to 33.000MHz
mmc0: Reset 0x6 never completed - 0x6.
mmc0: ============== REGISTER DUMP ==============
mmc0: Sys addr: 0x00000000 | Version:  0x00000400
mmc0: Blk size: 0x00000000 | Blk cnt:  0x00000000
mmc0: Argument: 0x00000000 | Trn mode: 0x00000000
mmc0: Present:  0x01f20000 | Host ctl: 0x00000000
mmc0: Power:    0x0000000f | Blk gap:  0x00000000
mmc0: Wake-up:  0x00000000 | Clock:    0x00000007
mmc0: Timeout:  0x00000000 | Int stat: 0x00000000
mmc0: Int enab: 0x00ff00fb | Sig enab: 0x00ff00fb
mmc0: AC12 err: 0x00000000 | Slot int: 0x00000000
mmc0: Caps:     0x018021a1 | Max curr: 0x00000040
mmc0: ===========================================

Much better. However, I got a system crash and reboot attempting to
unload the module.

-- 
cd /usr/ports/sysutils/life
make clean


More information about the freebsd-arm mailing list