Treiber für SD Kartenleser (SDHCI)

daemonic

Well-Known Member
Hallo zusammen,

ich versuche gerade einen Treiber für die im Laptop eingebauten SD Kartenleser
(SDHCI) zu entwickeln. Diesen würde ich dann gerne der FreeBSD Gemeinde zu gute
kommen lassen.

Der Treiber ist z.Zt. in der Lage, das Rein- und Rausstecken der SD Karte zu erkennen
(meldungen in /var/log/messages). Ferner ist es möglich über den Device node
/dev/sdhci0 die Register-Informationen des SD-Host Controllers auszulesen.
Könnte Ihr mich bitte bei der Entwicklung unterstützen und den Treiber bei Euch
testen ?

Den Treiber (Kernelmodul & Sourcen) gibt's unter der folgenden URL:
http://www.sashi.de/downloads/freebsd/sdhci/sdhcidd-0.0.1.tbz

Bisher habe ich nur die Vendor/Chip-ID (RICOH) von meinem Laptop (ASUS a6vm).
Es wäre schön wenn Ihr mir Euere "pciconf -lv" Ausgaben (SD Host Absatz reicht)
lieferen könntet, damit ich diese in die Geräte Erkennungsmatrix (:ugly:) aufnehmen
kann.

Vielen Dank schomal.

Grüße
 
Hi Daemonic,

Auf meinem Notebook funktioniert es, so wie du es beschrieben hast. Nach Laden des Moduls, gibt es ein neues Device und es wird erkannt, wenn ich Karten reinschiebe/rausziehe.

Weiter so! :)

Der Vollstaendigkeit halber hier noch mal die pciconf Ausgabe:

Code:
sdhci0@pci5:9:2:        class=0x080500 card=0xc024144d chip=0x08221180 rev=0x18 hdr=0x00
    vendor   = 'Ricoh Co Ltd'
    device   = 'SD Bus Host Adapter'
    class    = base peripheral
none1@pci5:9:3: class=0x088000 card=0xc024144d chip=0x08431180 rev=0x00 hdr=0x00
    vendor   = 'Ricoh Co Ltd'
    class    = base peripheral
none2@pci5:9:4: class=0x088000 card=0xc024144d chip=0x05921180 rev=0x09 hdr=0x00
    vendor   = 'Ricoh Co Ltd'
    device   = 'Memory Stick Bus Host Adapter'
    class    = base peripheral
none3@pci5:9:5: class=0x088000 card=0xc024144d chip=0x08521180 rev=0x04 hdr=0x00
    vendor   = 'Ricoh Co Ltd'
    class    = base peripheral

none1-3 bedeutet, dass im Moment keine Memory Sticks erkannt werden, oder liege ich da falsch?
 
Hmm, ich hab auch einen Card Reader von Ricoh in meinem Samsung P35. Der wird allerdings als über den CardBus angeschlossen erkannt und die SD Karte als PCCard. /var/log/messages nach einschieben einer SD Karte:
Code:
Sep 19 10:05:15 gul kernel: pccard0: No config entry could be allocated.
dmesg:
Code:
cbb0: <RF5C476 PCI-CardBus Bridge> at device 1.0 on pci2
cardbus0: <CardBus bus> on cbb0
pccard0: <16-bit PCCard bus> on cbb0
pciconf:
Code:
cbb0@pci2:1:0:  class=0x060700 card=0xc00c144d chip=0x04761180 rev=0xac hdr=0x02
    vendor   = 'Ricoh Co Ltd'
    device   = 'RL5c476 CardBus Controller'
    class    = bridge
    subclass = PCI-CardBus
Soweit ich das sehe unterstützt der Treiber solche Reader nicht!?
 
Hi Daemonic,

Auf meinem Notebook funktioniert es, so wie du es beschrieben hast. Nach Laden des Moduls, gibt es ein neues Device und es wird erkannt, wenn ich Karten reinschiebe/rausziehe.

Weiter so! :)
Cool, danke!

Der Vollstaendigkeit halber hier noch mal die pciconf Ausgabe:
none1-3 bedeutet, dass im Moment keine Memory Sticks erkannt werden, oder liege ich da falsch?
Ja das ist fast wie bei mir, Deiner scheint etwas mehr zu unterstützen.

none1-3 bedeutet, dass im Moment keine Memory Sticks erkannt werden, oder liege ich da falsch?
Nur "none2" ist der MS controller. was die anderen sind kann ich Dir leider nicht sagen.

Der Treiber ist nur für den SD Host Controller gedacht (wenn man bedenkt was die
SD Karten z.Zt. kosten, sind die anderen Typen ja schon fast unwichtig ;) ) und wird
ein BUS-System bieten, in dem sich dann weitere Treiber (SD-Memory/SD-IO)
eindocken können.

Danke nochmal für's Testen.
 
pciconf samsung x25

Hi!

Coole Sache das!

Code:
none2@pci6:9:2: class=0x080500 card=0xc018144d chip=0x08221180 rev=0x17 hdr=0x00
    vendor   = 'Ricoh Co Ltd'
    device   = 'SD Bus Host Adapter'
    class    = base peripheral
none3@pci6:9:3: class=0x088000 card=0xc018144d chip=0x05921180 rev=0x08 hdr=0x00
    vendor   = 'Ricoh Co Ltd'
    device   = 'Memory Stick Bus Host Adapter'
    class    = base peripheral
liefert mir mein Samsung X25.
Hab deinen Treiber allerdings noch nicht ausprobiert.
lg derGloeckner
 
Hmm, ich hab auch einen Card Reader von Ricoh in meinem Samsung P35. Der wird allerdings als über den CardBus angeschlossen erkannt und die SD Karte als PCCard. /var/log/messages nach einschieben einer SD Karte:

Soweit ich das sehe unterstützt der Treiber solche Reader nicht!?
Nein, der Treiber ist nur für SD Host Controller. Mein Ziel ist es ein Bus Interface bereitzustellen (wie dem des CardBus),
wo sich dann weitere treiber sich einhängen können.

Noch kenn mich mit cardbus leider nicht aus, aber wenn dein SDdevice über Cardbus läuft, dann könntest du vielleicht schon einen vorhandenen Treiber für Cardbus verwenden (so wie usb-bus->umass->cam->scsi).
Von Warner Losh habe ich den Hinweis bekommen, dies als Referenz bei der Entwicklung eines BUS-Treibers zu verwenden. Als nächstes werde ich dann mal doch die Sourcen von CardBus durchgehen (müssen).

Vielleicht haben die Mädels und Jungs hier im Forum eine Idee ?!

@derGloeckner: das ist die gleiche Chip-ID, sollte also bei Dir auch tun.

Wer ganz sicher gehen will, lädt den Treiber im single user mode mit ro-fs.
Hab jetzt eine aufgeräumte Version bei mir hinterlegt.
Ich werde, demnächst auch mal eine Web-Page mit den aktuellen Sourcen bereitstellen. Aber vorerst könnt Ihr den Treiber von hier herunterladen:
http://www.sashi.de/downloads/freebsd/sdhci/sdhcidd-current.tbz

Danke schonmal für Eure Hilfe.

Grüße
 
Zurück
Oben