freien PCI 32Bit Target in VHDL

Gast #641685
Lesenswert?

Die Karte will ich mir auch holen, daher ist das Projekt für mich 
interessant. Leider habe ich noch nichts mit PCI auf der Treiberseite 
zur Hardware hin gemacht. Hätte da jemand einen Literaturtipp? Oder 
reicht der Kauf der Raggedstone?
Gast #641768
Lesenswert?

Buchtipps zur Treiberprogrammierung:

Eva-Katharina Kunst, Jürgen Quade: „Linux Treiber entwickeln“ 
(Onlineversion) (http://ezs.kr.hsnr.de/TreiberBuch/html)

Michael Beck, Harald Böhme u.A.: „Linux Kernelprogrammierung-Algorithmen 
und Strukturen der Version 2.4“ 6. Auflage; Addison-Wesley 2001

Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman: Linux Device 
Drivers, Third Edition EBook
(http://lwn.net/Kernel/LDD3/)

Linux Magazin: Kern-Technik Serie

Letzteres ist für Einsteiger zu Empfehlen, allerdings von Artikel 1 zu 
lesen...
Behandelt alles aber nur Linux-Treiber. Bei den Windowstreibern habe ich 
auch keine Ahnung. Man sollte schon einige Erfahrungen im Umgang mit C 
programmierung besitzen.

Laut Homepage ist ein Beispieltreiber zur Ansteuerung der 
7_Segmentanzeige zum Runterladen verfügbar.
#643753
Lesenswert?

Hardwareonkel wrote:
> Die Karte will ich mir auch holen, daher ist das Projekt für mich
> interessant.

Ich hab' vor kurzem auch das Raggedstone1-1500 Board gekauft, ein sehr 
nettes Spielzeug. Allerdings ist es mein erstes FPGA Board, daher habe 
ich keinen Vergleich ob es gut, günstig usw. ist. Mir macht's aber Spass 
;)

Man kann wohl (als Student kostenlos) einen PCI-IP-Core vom Hersteller 
bekommen, darum habe ich mich aber noch nicht gekümmert.  Mein Augenmerk 
liegt im Moment auf der Anpassung der OpenCores.org Implementierung.

> Leider habe ich noch nichts mit PCI auf der Treiberseite
> zur Hardware hin gemacht. Hätte da jemand einen Literaturtipp?

Jemand hat ja schon die Anpassung des OpenCore.org PCI IP Core für das 
Raggedstone-Board verlinkt, zur Erinnerung trotzdem hier nochmal der 
Link: http://projects.varxec.net/raggedstone1. Dafür gibt es schon einen 
Linux-Treiber, der als Lehrbeispiel herhalten kann.
Ein Freund von mir hat das selbe Board und er hat schon mit dem PCI-Core 
experimentiert, laut seiner Aussage funktioniert das alles ganz gut.

Ich persönlich bevorzuge allerdings FreeBSD (http://www.freebsd.org) 
gegenüber Linux, hauptsächlich wegen der hervorragenden Dokumentation. 
Es gibt dort das "Architecture Handbook" wo relativ genau beschrieben 
wird, wie man einen einfachen Treiber schreibt (siehe 
http://www.freebsd.org/doc/en_US.ISO8859-1/books/arch-handbook/driverbasics.html). 
Für die Buszugriffe gibt es eine eigene, gut dokumentierte API 
(bus_space(9) oder auch bus_dma(9)), so dass man sich nicht um die 
Details kümmern muss. Als Bonus ist der Treiber, wenn man die APIs 
verwendet, auch gleich auf mehreren Architekturen verwendbar.

> Oder reicht der Kauf der Raggedstone?

Also das Raggedstone Board kommt ohne große Dokumentation. Das online 
verfügbare Handbuch beschreibt die einzelnen Bauteile auf dem Board und 
es gibt noch ein Einsteiger-Tutorium das beschreibt, wie man ein 
einfaches Design mittels Webpack 8.x auf das Board bringt. Für die 
PCI-Sachen also eher nutzlos.
(Firma: www.dossmatik.de) #645558
Lesenswert?

Ich habe den Artikel zur PCI Einführung gefunden.

Bus Basice Technische Grundlagen des PCI-BUS von Oliver Rovini Elrad 
1997 Heft 3.

Die PCI Karte wird vom BIOS abgefragt wieviel Adressraum benötigt wird. 
Das BIOS weist einen Adressraum zu. Die Karte kodiert den Adressraum 
nach der Zuweisung selbst aus. Der Takt kann von DC bis 33MHz alle Werte 
annehmen. Da müssen die Daten in eine FIFO oder Dual Port RAM gepuffert 
werden.

DMA gibt es nicht. Doch die PCI Karte kann auch Bus Master werden und 
dann den Ganzen PCI Bus steuern. Bus Master ist sohn etwas zu weit. Um 
eine Daten Brücke für den PCI zu haben, ist ein Adressdecoder und eine 
Anmeldung für das BIOS notwendig.

Als typische Chips für solche Universal Karten sind der PLX 9054 und der 
AMCC S5933.


Ich habe eine nicht ganz freien Code gefunden. Er darf nicht in einem 
kommerziellen Produkt verwendet werden!
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren