IDE-Schnittstelle 2
-
- Einsteiger
- Beiträge: 131
- Registriert: Dienstag 6. April 2004, 12:08
@DBoxBaer
WOW! Ich hab von Hardware-Programmierung/Busprotokollen keine Ahnung, aber die Erklärung war "Sendung mit der Maus" - das hab sogar ich (beinahe) Verstanden...
Kann ich dich/euch irgendwie Unterstützen? Ich kann leider bis auf HTML, PHP, CAD, BASIC, LÖTKOLBEN-HALTEN, GEDULT-HABEN... nicht viel. Aber ich mach grade Praktikum und hab ne dicke Internetleitung, ein Telefon und relativ viel Zeit; irgendwas raussuchen, recherchieren?
Gruß
tetzlav
WOW! Ich hab von Hardware-Programmierung/Busprotokollen keine Ahnung, aber die Erklärung war "Sendung mit der Maus" - das hab sogar ich (beinahe) Verstanden...
Kann ich dich/euch irgendwie Unterstützen? Ich kann leider bis auf HTML, PHP, CAD, BASIC, LÖTKOLBEN-HALTEN, GEDULT-HABEN... nicht viel. Aber ich mach grade Praktikum und hab ne dicke Internetleitung, ein Telefon und relativ viel Zeit; irgendwas raussuchen, recherchieren?
Gruß
tetzlav
-
- Wissender
- Beiträge: 1839
- Registriert: Sonntag 17. August 2003, 01:39
-
- Interessierter
- Beiträge: 21
- Registriert: Donnerstag 24. Juni 2004, 19:49
Platinen....
@DBoxBaer
Hallo... DBoxBaer
habe mich bei dem ersten Projekt schon mal angeboten..
Ich bin CAM-Operator und könnte Dir bei den Leiterplatten behilflich sein..
ich denke das ich einige umsonst machen lassen könnte und evtl. auch wegen SMD Maschinell Bestückung helfen könnte.
Wenn hilfe erwünscht ist, kurze PN reicht..
CU
Phase
Hallo... DBoxBaer
habe mich bei dem ersten Projekt schon mal angeboten..
Ich bin CAM-Operator und könnte Dir bei den Leiterplatten behilflich sein..
ich denke das ich einige umsonst machen lassen könnte und evtl. auch wegen SMD Maschinell Bestückung helfen könnte.
Wenn hilfe erwünscht ist, kurze PN reicht..
CU
Phase
-
- Neugieriger
- Beiträge: 17
- Registriert: Samstag 12. März 2005, 09:32
Also erstmal grosses Lob an alle beteiligten, das doch noch Hoffnung besteht.
Ich selber hab ne Philips, darüber hab ich hier noch nicht so gelesen, hätte natürlich auch Interesse.
Jetzt mal ne ganz andere sache, von Hardware und dem ganzen Fachgerede mit den Chips und Interrupts und so versteh ich echt nicht viel, ich muss aber bei dem Thema immer an meine PS2 denken.
Die PS2 hat ja auch nen steckadapter der 100mbit Lan und IDE anschlüsse bietet (ca 20€) könnte man so etwas nicht ggf. nutzen und sich für ein paar euronen nen adapter schrauben.
Kann durchaus sein das so was nicht möglich ist aber mir hat mal jemand gesagt warum denn immer das Rad neu erfinden.
Also nicht gleich Kreuzigen mein gedanke waere nur es gibt da fü 20€ hardware die so etwas ermöglichen könnte, weil auch Sony hat denke ich mir nicht mehr als ne datenleitung und nen Interrupt um das ding anzusprechen. Sources und so gibts da auch reichlich siehe z.B. das linux kit oder hdloader
MfG
Phil2Sat
Ich selber hab ne Philips, darüber hab ich hier noch nicht so gelesen, hätte natürlich auch Interesse.
Jetzt mal ne ganz andere sache, von Hardware und dem ganzen Fachgerede mit den Chips und Interrupts und so versteh ich echt nicht viel, ich muss aber bei dem Thema immer an meine PS2 denken.
Die PS2 hat ja auch nen steckadapter der 100mbit Lan und IDE anschlüsse bietet (ca 20€) könnte man so etwas nicht ggf. nutzen und sich für ein paar euronen nen adapter schrauben.
Kann durchaus sein das so was nicht möglich ist aber mir hat mal jemand gesagt warum denn immer das Rad neu erfinden.
Also nicht gleich Kreuzigen mein gedanke waere nur es gibt da fü 20€ hardware die so etwas ermöglichen könnte, weil auch Sony hat denke ich mir nicht mehr als ne datenleitung und nen Interrupt um das ding anzusprechen. Sources und so gibts da auch reichlich siehe z.B. das linux kit oder hdloader
MfG
Phil2Sat
-
- Developer
- Beiträge: 2183
- Registriert: Mittwoch 10. Dezember 2003, 07:59
-
- Developer
- Beiträge: 2183
- Registriert: Mittwoch 10. Dezember 2003, 07:59
-
- Wissender
- Beiträge: 1839
- Registriert: Sonntag 17. August 2003, 01:39
-
- Contributor
- Beiträge: 1608
- Registriert: Samstag 28. Juli 2001, 00:00
@chkbox
was jolt über die belegung der sagem speichererweiterung gepostet hatte stimmt
das ist aus dem sagen schaltplan
aber jetzt bitte nicht nach dem schaltplan fragen
den hat niemand , naja niemand stimmt nicht ,
aufjedenfall hatt den keiner der ihn rausrücken würde
btw das is ne lange geschichte aber die belegung ist da draus
aber damit hat diemade ja schon ein "funtzendes" ide interface für die sagem gebaut ... oder so :)
was jolt über die belegung der sagem speichererweiterung gepostet hatte stimmt
das ist aus dem sagen schaltplan
aber jetzt bitte nicht nach dem schaltplan fragen
den hat niemand , naja niemand stimmt nicht ,
aufjedenfall hatt den keiner der ihn rausrücken würde
btw das is ne lange geschichte aber die belegung ist da draus
aber damit hat diemade ja schon ein "funtzendes" ide interface für die sagem gebaut ... oder so :)
-
- Senior Member
- Beiträge: 255
- Registriert: Donnerstag 25. August 2005, 11:34
Danke, und den Wünschen schliesse ich mich gleich an.PauleFoul hat geschrieben:Hoffe dass das Projekt im Jahr 2006 zum Erfolg gebracht wird und
wünsche allen viel Glück und Gesundheit.
Gruß
____Paule
Wenn man denn mal Zeit hat, daran zu arbeiten, gehts auch weiter: Soll heissen wir kommen vorran: Gestern hat meine "testbox" die ersten IDE
Zugriffe aus dem Kernel durchgeführt. Da ich noch immer keinen Interrupt angeschlossen habe, gab es dann zwar ewige Timeouts mit "Interrupt Lost", aber:
- die Partitionstabelle hat der Kernel gelesen und verstanden,
- Device Files waren da
- und ich habe mit "df" schon einige wenige Sektoren gelesen.
Ciao,
DboxBaer
-
- Senior Member
- Beiträge: 255
- Registriert: Donnerstag 25. August 2005, 11:34
Die Idee ist gut und ich habe gerade das per Google gefunden: In einem Datenblatt des erst besten USB2.0 IDE Bridge Chips....chkbox hat geschrieben: Hätte noch eine Idee: Wie wäre es wenn man eine USB-IDE-Bridge hinzufügt. Beim CPLD kann man die Pins sicher auf Z bringen. Bei der Bridge vielleicht auch oder man fügt einen Puffer ein. Ich kenne aber keinen der in beide Richtungen funktioniert und erstrecht nicht für UDMA133 takt.
2.4 Combo Mode Function
The µPD720133 can be used to realize that two IDE controller chips control one target IDE device in one system.
Die zwei Leitungen, die der dafür braucht haben wir am CPLD natürlich noch übrig. Mal sehen...
Ciao
DboxBaer
... und der Rest ist dann Software (TM)
-
- Senior Member
- Beiträge: 255
- Registriert: Donnerstag 25. August 2005, 11:34
und jetzt eben (nach mechanischen Umbauten, die Platte ist nun im Gehäuse festgeschraubt und das Modem wurde durch eine Lochrasterplatine ersetzt) auch- die Partitionstabelle hat der Kernel gelesen und verstanden,
- Device Files waren da
- und ich habe mit "df" schon einige wenige Sektoren gelesen.
- ein mount einer FAT Partition und
- ein "ls".
Beides erfolgreich.
Allerdings mit sehr vielen Lost-Interrupts, da noch immer kein INT angeschlossen ist
Ciao,
DboxBaer
PS:
Was kann man besser machen: Beim Layout die Mechanik! Die Bohrungen sind saudoof (= nahezu unbrauchbar) platziert.
Und die Stiftleisten (für die unbenutzten Pins) sollte man so zusammenfassen, das man mit einem Flachbandkabel zum ehemaligen Moden gehen kann. Ich habe so ein Kabel nun direkt an die Platine gelötet.
-
- Senior Member
- Beiträge: 255
- Registriert: Donnerstag 25. August 2005, 11:34
Es war mal wieder Donnerstag, da war es mal wieder DBox-IDE
Abend...
Die Leitung PC15 der CPU kommt am Modem Connector raus und kann
einen INT generieren: Weiss hier vielleicht jemand, ob die von
irgendeinem Treiber bereits verwendet wird?
Jedenfalls habe ich die einfach mal mit dem CPLD verbunden und es
hat sogar direkt funktioniert :-)
Filesystem gemountet und mit cd und ls herumgewandert, das hat
alles exakt und ohne Probleme funktioniert.
Schreiben auf die Platte habe ich nun auch zugelassen und auch das
hat (im Prinzip) funktioniert.
-> Das Konzept funktioniert also nun vollständig.
Nun kommen noch ein paar "kleine" Teile: Aufräumen und den Code
noch optimieren: Zur Zeit kann die CPU den CPLD auch noch überfahren,
wenn er mit dem IDE Zugriff noch gar nicht fertig ist. Das Problem ist
mir seit langem bekannt, und ich habe auch verschiedene Lösungsansätze,
aber ich wollte erstmal den Rest zum Laufen bringen.
Aus diesem Grund kann ich daher zur Performance noch
nichts endgültiges sagen und habe auch nichts reales gemessen, dafür
war es uns zu spät.
Ciao,
DboxBaer
Abend...
Die Leitung PC15 der CPU kommt am Modem Connector raus und kann
einen INT generieren: Weiss hier vielleicht jemand, ob die von
irgendeinem Treiber bereits verwendet wird?
Jedenfalls habe ich die einfach mal mit dem CPLD verbunden und es
hat sogar direkt funktioniert :-)
Filesystem gemountet und mit cd und ls herumgewandert, das hat
alles exakt und ohne Probleme funktioniert.
Schreiben auf die Platte habe ich nun auch zugelassen und auch das
hat (im Prinzip) funktioniert.
-> Das Konzept funktioniert also nun vollständig.
Nun kommen noch ein paar "kleine" Teile: Aufräumen und den Code
noch optimieren: Zur Zeit kann die CPU den CPLD auch noch überfahren,
wenn er mit dem IDE Zugriff noch gar nicht fertig ist. Das Problem ist
mir seit langem bekannt, und ich habe auch verschiedene Lösungsansätze,
aber ich wollte erstmal den Rest zum Laufen bringen.
Aus diesem Grund kann ich daher zur Performance noch
nichts endgültiges sagen und habe auch nichts reales gemessen, dafür
war es uns zu spät.
Ciao,
DboxBaer
-
- Senior Member
- Beiträge: 255
- Registriert: Donnerstag 25. August 2005, 11:34
Eine Idee, die uns vor kurzem kam:DBoxBaer hat geschrieben:Die Idee ist gut und ich habe gerade das per Google gefunden: In einem Datenblatt des erst besten USB2.0 IDE Bridge Chips....chkbox hat geschrieben: Hätte noch eine Idee: Wie wäre es wenn man eine USB-IDE-Bridge hinzufügt. Beim CPLD kann man die Pins sicher auf Z bringen. Bei der Bridge vielleicht auch oder man fügt einen Puffer ein. Ich kenne aber keinen der in beide Richtungen funktioniert und erstrecht nicht für UDMA133 takt.
2.4 Combo Mode Function
The µPD720133 can be used to realize that two IDE controller chips control one target IDE device in one system.
Die zwei Leitungen, die der dafür braucht haben wir am CPLD natürlich noch übrig. Mal sehen...
Ciao
DboxBaer
1. Es gibt IDE->SATA Adapter. Sowas sollte auch am CPLD funktionieren, für den ist das trotzdem eine Platte.
2. Es gibt externe Festplatten mit SATA und USB2.0 Anschluss.
-> braucht man also gar nichts umbauen, einfach nur zusammenstecken.
Klingt fast zu einfach.
... und der Rest ist dann Software (TM)
-
- Erleuchteter
- Beiträge: 585
- Registriert: Mittwoch 10. Oktober 2001, 00:00
Es gibt auch Festplattencontroller (SCSI / IDE) mit direktem Prozessorinterface.... z.B. den WD33C93. Ist ein SCSI-Controller, bekannt auch aus dem Amiga3000. Oder der NCR53C90A. Dieser CHip hat ein Interface direkt zu Motorola/Intel Prozessoren. Treiber für Linux gibts auch. Warum also alles noch einmal aufrollen?DBoxBaer hat geschrieben:DBoxBaer hat geschrieben: Eine Idee, die uns vor kurzem kam:
1. Es gibt IDE->SATA Adapter. Sowas sollte auch am CPLD funktionieren, für den ist das trotzdem eine Platte.
2. Es gibt externe Festplatten mit SATA und USB2.0 Anschluss.
-> braucht man also gar nichts umbauen, einfach nur zusammenstecken.
Klingt fast zu einfach.
-
- Erleuchteter
- Beiträge: 440
- Registriert: Samstag 10. April 2004, 15:17
-
- Contributor
- Beiträge: 1833
- Registriert: Mittwoch 10. April 2002, 15:39
-
- Wissender
- Beiträge: 1839
- Registriert: Sonntag 17. August 2003, 01:39
-
- Erleuchteter
- Beiträge: 440
- Registriert: Samstag 10. April 2004, 15:17
Da sich der CPLD beliebig programmieren lässt, ist das ganze im Prinzip deine EierlegendeWollMilchSau. Es wäre zum Beispiel möglich, die Datenleitungen des IDE als Multiplex für Daten und Adressen eines ISA Bus zu nehmen. Dann kannst du dranhängen, was du willst. Ursprünglich war IDE ja auch einfach eine Verländerung des ISA Bus zur Festplatte (mal abgesehen von den Adressleitungen). Das Problem ist ja "nur" wie man das ganze als SDRAM-Fake umsetzt. Und was das betrift, hat DBoxBaer offensichtlich das perfekte Konzept erfunden... (Und freundlicherweise auch schon veröffentlicht, fehlt eigentlich nur noch der Source )PauleFoul hat geschrieben:Vielleicht sollt man nicht versuchen eine EierlegendeWollMilchSau draus
zu machen...
-
- Senior Member
- Beiträge: 1339
- Registriert: Donnerstag 24. April 2003, 12:12
Sieht nicht so aus.DBoxBaer hat geschrieben:Die Leitung PC15 der CPU kommt am Modem Connector raus und kann einen INT generieren: Weiss hier vielleicht jemand, ob die von irgendeinem Treiber bereits verwendet wird?
Sagem-Modem-Stecker:
1: SMTXD2
2: SMRXD2
3: GND
4: CTS (PC4)
5: Vpp
6: !DTR (PB16)
7: GND
8: !DCD (PC15)
9: !Resetleitung (vom FP)
10: !RTS (PB17)
11: KR/RETRY/IRQ4/SPKROUT (Pin B7 vom MPC823)
12: !Sleepmode (vom FP)
Achtung: der Avia600 verwendet bereits !IRQ4, allerdings über Pin D4. IRQ-Sharing wäre zwar möglich, aber nicht besonders sinnvoll. Dafür ist IRQ6 besser geeignet (RI, Pin 9 vom RS232).
Bevor jemand fragt, siehe derget's Antwort woher die Info stammt.
-
- Einsteiger
- Beiträge: 123
- Registriert: Montag 28. November 2005, 11:31
Hmm, (auf dem Weg zur Eierlegenden Wollmilchsau...) vielleicht findet noch Platz für ein SD Card Adapter? Z.B.:chkbox hat geschrieben:Ich habe mal am Layout für die Sagem weitegemacht.
http://de.farnell.com/jsp/endecaSearch/ ... =gensearch
-
- Erleuchteter
- Beiträge: 440
- Registriert: Samstag 10. April 2004, 15:17
DBoxBaer hat geschrieben:Die Leitung PC15 der CPU kommt am Modem Connector raus und kann einen INT generieren: Weiss hier vielleicht jemand, ob die von irgendeinem Treiber bereits verwendet wird?
Wenn ich DBoxBaer richtig verstanden habe, verwendet er das CPM. Das ist in der Lage aus allen PCx Anschlüßen Interrupts zu erzeugen. An den PPC Core kommen die dann über den gemeinsamen Interrupt des CPM, während die IRQs direkt im Interrupt Controller des PPC Core verarbeitet werden.Npq hat geschrieben:Achtung: der Avia600 verwendet bereits !IRQ4, allerdings über Pin D4. IRQ-Sharing wäre zwar möglich, aber nicht besonders sinnvoll. Dafür ist IRQ6 besser geeignet (RI, Pin 9 vom RS232).
Oder meinst du den Umweg über den CPM mit "IRQ-Sharing"?
Habe ich das so weit richtig verstanden?
-
- Erleuchteter
- Beiträge: 440
- Registriert: Samstag 10. April 2004, 15:17
Ich wäre eher dafür das zu lassen. Es bleiben ein paar Pins über, die dann auch an einen Stecker geführt werden. Du kannst dann eine gesonderte Platine mit dem SD Sockel machen, irgendwo in der Front einbauen (was zum benutzen ja so oder so nötig wäre) und dann ein paar Kabel zum IDE Board legen.just_me hat geschrieben:Hmm, (auf dem Weg zur Eierlegenden Wollmilchsau...) vielleicht findet noch Platz für ein SD Card Adapter? Z.B.:chkbox hat geschrieben:Ich habe mal am Layout für die Sagem weitegemacht.
http://de.farnell.com/jsp/endecaSearch/ ... =gensearch
-
- Senior Member
- Beiträge: 255
- Registriert: Donnerstag 25. August 2005, 11:34
Sehr gut!chkbox hat geschrieben:@DBoxBaer
Ich habe mal am Layout für die Sagem weitegemacht. Dabei ist jetzt mein Problem, welche Addressleitungen ich verwenden soll. Denn einige sind nicht vorhanden, dafür insgesamt mehr. Welche soll ich nehmen? Einfach alle?
Wie hast du das mit PC15 herausgefunden? Schaltplan?
Zu den Adress-Leitungen: Ich habe einfach alle angeschlossen. Durch die RAS/CAS Aufteilung braucht man aber gar nicht alle. Auf der anderen Seite kann man den CPLD später ja auch noch (begrenzt) erweitern. Je nach Anwendung fehlen einem aber später vielleicht eher IO-Pins. (vgl: ISA Bus in der DBox...). An ein LAN Interface da noch mit dran glaube ich jedenfalls im Moment nicht so recht, weil evtl. einfach die Pins nicht reichen und einfach wirds das im Chip dann auch nicht.
Wer eine Eierlegende Wollmilch Sau will dem würde ich dann einen FPGA empfehlen mit ordentlich vielen Pins (evtl. sogar ein BGA Gehäuse) und das dann bestücken lassen. Wenn man es clever anstellt, wird dann die "Firmware" auch gleich von der CPU reingeladen (über weniger Port-Pins der CPU zum Beispiel). Kompatibel zum IDE-CPLD kann man dann trotzdem sein.
Aber zurück zum Layout mit CPLD: Versuch die Leitungen zwischen CPLD und Connector kurz zu halten, das ist immer gut und erspart Probleme.
Und die Masse/VCC Leitungen "gut" anbinden, Abblock Kondensatoren dicht am Chip sind Pflicht.
Da ich nicht an ein gemeinsames Layout für alle Varianten glaube, ist auch eine gemeinsame CPLD "Firmware" nicht unbedingt notwendig, man kann die Belegung des CPLD sehr einfach in der Xilinx Software ändern. Der Inhalt im CPLD ist dann trotzdem gleich und der Software ist das egal.
In dem Fall kann man dann auch gerne ein paar Pins anders beschalten (zu tauschen), wenn das Layout dadurch einfach wird. Vorschlag wäre hier, wenigstens die Gruppen gleich zu lassen (also nicht Datenleitungen mit Adressleitungen tauschen), da sich sonst das Timing stärker verschieben könnte. Bevor ein Layout produziert wird kann ich aber die Anschlussbelegung mal durch die Software jagen, ob sich da was dramatisch ändert.
Interessant wäre hier vielleicht mal ein Detail: Wie ist der Inhalt des MEMC_MAMR Registers bei den verschiedenen Boxen? Da drin gibt es drei Bits "AMA", bei mir sind diese "001". Diese legen die Verschiebung bei RAS/CAS fest und sind gemeinsam fürs externe und interne RAM. Übrigens sollte man damit bei einem Speicher-Modul mit mehr als 32 MB dieses auch vollständig in der Box zum Laufen bringen können. (Allerdings kann man dann wohl nicht mehr das interne RAM benutzen).
Bei einer Box mit nur 16MB on Board habe ich jedenfalls einen anderen Wert gefunden, und der Treiber müsste dann die Zugriffsadressen anpassen. Etwas aufwendiger auszulesen: Den Inhalt der UPM-A würde ich auch gerne mal zwischen den verschiedenen Boxen vergleichen. Das macht nämlich evtl. schon Unterschiede beim Chip.
Zu den Belegungen:
Im Prinzip braucht man für die Belegung des RAM-Steckers keinen Schaltplan bei Nokia, das kann man auf der Oberseite der Platine gut erkennen :-) Beim Modem ist das schwieriger, ein Schaltplan hilft da natürlich.
Wenn man aber wie auch immer eine Idee hat, welche Leitung es sein könnte, kann man einfach "nachmessen":
Ich habe sie einfach über einen 20k Widerstand auf Masse gelegt, und
dann war (per u-boot Kommando ausgelesen) das Bit im Port C Daten
Register "plötzlich" low. Die 20k hatte ich genommen, um nichts kaputt machen zu können. Paranoia Rulez.
Man kann aber auch einfach zum Beispiel im u-boot eine Routine laufen lassen, die den Pin auf Ausgang schaltet und dann zwischen High und Low toggeln lässt und dann einfach danach mit dem Oszi suchen... So hatte ich das wenigstens gelpant, war aber nicht notwendig, da der erste Versuch ja schon passte.
Wie das mit IRQ nun genau im Kernel abläuft habe ich mir gar nicht weiter angeschaut, nachdem ich durch ein wenig rum-grep-en in den Sourcen einfach den Wert "31 + CPM_IRQ_OFFSET" den IDE-Routinen übergeben hatte... 31, weil das PortC Pin 15 ist. Sieht da jemand ein Problem?
Zur Zeit beschränken sich die Änderungen am Code übrigens auf eine geänderte Kernel-Config, so dass die IDE Module compiled werden. Ansonsten habe ich da nur hunderte Debug-Outputs hinterlassen, das prüfe ich demnächst mal nach. Der eigentliche Treiber "dboxide" ist zur Zeit ein relativ einfaches Modul, die Hauptarbeit machen die IDE Layer vom Linux Kernel.
Ich schaue jetzt aber erstmal wieder in den Source und räume auf, damit ich bald auch mal davon was posten kann...
Ciao,
Dboxbaer
PS:
Vielleicht sollte man die Infos, wie das ganze Ding funktioniert irgendwie mal ins Wiki stellen? Ein paar Hardware Erweiterungen liegen da ja schon...
-
- Developer
- Beiträge: 2183
- Registriert: Mittwoch 10. Dezember 2003, 07:59
in commproc.h:Sieht da jemand ein Problem?
Code: Alles auswählen
#define CPMVEC_PIO_PC15 ((ushort)0x1f)
Weiter so
Houdini
-
- Wissender
- Beiträge: 1839
- Registriert: Sonntag 17. August 2003, 01:39