Fw: Suche Linux-Anschluss im Raum Bi-Sennestadt

Pfeiffer familie_pfeiffer at arcor.de
Tue Apr 24 22:25:04 CEST 2007


Hallölle,

ersteinmal Danke für das erste Lebenszeichen aus der Linuxwelt. Nicht 
bezogen auf die Mailingliste, sondern auch auf erfolglose Versuche in den 
Foren Linuxpate & LearningLinux bezogen. Freut mich echt. Um so besser, dass 
du mir gleich programmtechnisch auf die Sprünge hilfst.

>> Meine Name ist André Pfeiffer bin 35 Jahre und bin absoluter Newbie in
>> Sachen Linux.
>>
> Halli hallo!
>
>> In meiner programmiertechnischen Vergangenheit habe ich mich mit dem 
>> Amiga
>> beschäftigt und verfüge über Kenntnisse in 68k-Assembler, Pascal und 
>> Basic.
> Du schreckst also wenigstens nicht davor zurueck, dir die Bits und Bytes
> Untertan zu machen ;)
Macht mehr Spaß als KlickiBunti und sowas, noch fehlt mir jedoch die 
richtige Umgebung und natürlich das KnowHow.
Aber erstmal positiv dran an die Sache ... auf die Schnauze fallen kann ich 
dann immer noch.

>> In Sachen Linux habe ich NULL Ahnung und versuche mich nun an einem
>> schwierigen Projekt und kann jede erdenkliche Hilfe gebrauchen.
>>
>> Das Projekt an dem ich mitwirken möchte besteht aus einer PCI-Bridge die 
>> das
>> Bussystem des PCs mit dem Bussystem eines Amigas koppeln soll.
>> Auf dem PC soll eine 68K-CPU-Emulation die Arbeit der Amiga-CPU 
>> übernehmen
>> und die betagten MC680x0-CPU ablösen.
> Hmmm, aber muss fuer die Kompatibilitaet nicht die Geschwindigkeit
> eingehalten werden?
Hier kommt einem die Hardwarearchitektur des Amigas entgegen, das System 
arbeitet eigenständig. Das Refresh der RAM-Bausteine die Buslogik und die 
Grafik, Sound und I/O wird dort komplett über die CustomChips abgewickelt. 
Die CPU hat am Bus auch "nur" die zweit höchste Priorität und kann durch 
einen der CustomChips auch gestoppt werden. Dieses Design war vor 22 Jahren 
revolutinoär. Prozessorkarten für den Amiga sind eigentlich eigenständige 
Computer, die nur beim Zugriff auf die unteren 16MB (wo das Mainboard und 
die CustomChips liegen) sich mit dem Bus des Amigas synchronisieren und 
Daten austauschen, bei allen Operationen oberhalb der 16MB laufen diese 
Prozessorkarten asynchron zum 7,14MHz Takt, meistens mit 50MHz (68060 
Karten).
Bei Anbindung eines x86-Systems mit schnellerem Prozessor und ausgereiftem 
68k-Emulator (UAE, Basilisk) sollte diese keine grosse Herausforderung in 
Sachen Geschwindigkeit sein.

>> Es handelt sich bei dem Projektteilnehmern um einige Leute aus dem 
>> Bereich
>> des RetroComputings, wobei die Stärken jedoch im Hardwaredesign liegen.
>> Nun geht es uns um eine Firmware für unser x86-Spielzeug.
>>
> Nun, Firmware ist relativ. Das direkteste ware, auf ein OS zu
> verzichten, bringt aber die Unanhemlichkeit mit, das man sich ploetzlich
> um die ganze x86 Hardware kuemmern muss. Nebenbei wollt ihr ja
> vielleicht auf einen schon vorhandenen 68k-Emulator zurueckgreifen, und
> die gehen meist von einem OS aus....
>
Nun der Begriff Firmware ist wohl übertrieben, das System sollte nach dem 
Einschalten recht zügig mit der Arbeit beginnen.

>> Was ich irgendwie erreichen möchte ist ein wirklich mimimales 
>> Linuxsystem,
>> welches die PCI-Bridge aktiviert und in der MemoryMap einbindet.
>
> Da der PCI-Bus hier schon gluecklicher weise etwas weiter ist als der
> ISA-Bus, tut das schon das BIOS, das heist aber noch lange nicht, das
> man das device benutzten kann ;)
> Von sich wird Linux das device auch nicht ansprechen, nur eine
> "awareness" haben (da ist noch ein PCI-Device, das hat diese
> Speicheradresse, aber da kann ich nix mit machen, aber nicht weiter
> schlimm...), also wird da ein minimaler Treiber noetig sein.

Der Bekannte der den FPGA mit der PCI-Bridge anfertigt verwendet als Basis 
die freie PCI-Bridge der TU Chemnitz.
Daten zur Programmierung sind vorhanden, wir müssen jedoch noch 
bustechnische Anpassungen vornehmen.

>> Der Adressbereich wird 16MB betragen und sollte ab Adresse $00000000 bis
>> $010000000 gemapped werden.
Uhps ... eine Null zuviel, beim programmieren wieder tödlich.

> Oehm, und da geht es los...
> 1) Der Physikalische Speicher an und ueber $000000000 ist belegt, x86
> ISA-DMA area und BIOS und foo.
> 2) PCI-Rescourcen liegen eher so bei $FFFFF...
> 3) Aber das ist ja nicht schlimm, dafuer gibt es ja Virtuelle
> Speichermapings
> 5) Also dein Treiber stellt ein devicefile zur Verfuegung, worauf ein
> (Userspace-)Emulator mit mmap (wofuer du die unterstuzung Programmieren
> musst) sich "den Amiga" in seinen virtuellen Adressraum einblenden kann
> 6) Das kann der Emulator theoretisch auch an Addresse $00000..., da ist
> nur ein Problem: dort ist normalerweise das Programm/der Emulatorcode
> selbst (bzw. ein bischen oberhalb der Addresse)
>
Ok, das liesse sich sicherlich auch über Offsets innerhalb des Emulators 
erledigen.
Auf der anderen Seite wäre eine mmap-Lösung eine feine und wie ich finde 
saubere Lösung.

> Was noch weitere unlustigkeiten zu Tage fördert.
> Harware-Unterhaltung/Interrupts und Multitasking sind sich ein wenig
> Spinnefeind.
In welchem Bezug ist das zu verstehen? An welches Stelle wird Multitasking 
verwendet?
In meiner Phantasie müsste nur der Emulator gestartet werden, dieser würde 
den Bereich PCI-Bridge als normalen Arbeitsspeicher verwenden. Die Hardware 
übernimmt den Transfer und das Busprotokoll, könnte also als Arbeitsspeicher 
mit extrem langen Reaktionszeiten verstanden werden.

> Den Emulator in den Kernel? Uhhh...
> Hmmm...
> Echte Treiber fuer die devices schreiben? Mom, ne, der Gast im Emulator
> soll sie ja benutzen, Doppelemulation ist doof.
> RT-Linux? Interruptweiterleitung in den Emulator mit RT-Tasks...
Auf Heise stand letztens was zu einem RT-Patch mit 50ns Rekationszeit.
Aber wozu RT? Da müsstest du mich mal aufklären, das Amiga-System wartet in 
der Regel auf die CPU.

>> Das System sollte in der Endphase ohne Keyboard, Maus, Bildschirm 
>> arbeiten
>> und als CPU-Karte für Amiga-Systeme funktionieren.
>> Es sollte (sehr)schnell starten und aus einer RAM-Disk heraus laufen und
>> klein sein.
>>
> Kann man machen, muss man nur Zeit investieren das aufzusetzen...
Schon klar, ein Prototyp muss immer eine Menge Kabel haben. Aber am Ende 
wäre es natürlich fein.

Gruß
Andre 




More information about the Linux mailing list