Autor Thema: CDI: AHCI-Treiber  (Gelesen 12862 mal)

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« am: 28. December 2014, 20:01 »
Ich bin mir nicht sicher, ob alle, die CDI benutzen, auch auf der Mailingliste sind, deswegen auch hier nochmal ein kurzer Hinweis: Ich habe auf cdi-devel einen AHCI-Treiber gepostet, der gerne erstens ein Review bekommen und zweitens auch in anderen Betriebssystemen getestet werden würde. ;)

Hier der Link zum Cover Letter: http://list.tyndur.org/pipermail/cdi-devel/2014-December/000264.html

Für alle anderen, die hier nur aus Interesse an týndur mitlesen: Die OS-spezifischen Patches dafür liegen auch schon bereit, dauert also hoffentlich nicht mehr lang. :)
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

OsDevNewbie

  • Beiträge: 282
    • Profil anzeigen
    • YourOS Kernel
Gespeichert
« Antwort #1 am: 01. January 2015, 22:51 »
Eine Frage: wie kommt man auf die Mailingliste?
Viele Grüsse
OsDevNewbie

Ein Computer ohne Betriebsystem ist nicht mehr wert als ein Haufen Schrott.
Ein Computer ist eine Maschine, die einem Lebewesen das kostbarste klaut, was sie selber nicht hat:
DIE ZEIT DES LEBENS

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 01. January 2015, 23:54 »
Man kann sich hier für cdi-devel und hier für tyndur-devel registrieren.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

OsDevNewbie

  • Beiträge: 282
    • Profil anzeigen
    • YourOS Kernel
Gespeichert
« Antwort #3 am: 03. January 2015, 04:49 »
Noch eine weitere Frage: wird der Treiber dann auch ins cdi repository aufgenommen?
Viele Grüsse
OsDevNewbie

Ein Computer ohne Betriebsystem ist nicht mehr wert als ein Haufen Schrott.
Ein Computer ist eine Maschine, die einem Lebewesen das kostbarste klaut, was sie selber nicht hat:
DIE ZEIT DES LEBENS

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 03. January 2015, 13:13 »
Ja, natürlich. Wenn niemand mehr Kommentare hat, werde ich den Treiber demnächst ins Repository pushen.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

OsDevNewbie

  • Beiträge: 282
    • Profil anzeigen
    • YourOS Kernel
Gespeichert
« Antwort #5 am: 03. January 2015, 15:09 »
Wirsz du denn auch noch CD-ROM Unterstützung implementieren?
Ich würde ihn nämlich gerne in mein os aufnehmen.
Viele Grüsse
OsDevNewbie

Ein Computer ohne Betriebsystem ist nicht mehr wert als ein Haufen Schrott.
Ein Computer ist eine Maschine, die einem Lebewesen das kostbarste klaut, was sie selber nicht hat:
DIE ZEIT DES LEBENS

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 03. January 2015, 19:49 »
CD-Unterstützung ist doch in v2 (was ich oben verlinkt habe) schon drin.

Oder vielleicht sollte ich besser SATAPI-Unterstützung sagen. Das bedeutet, dass du ein CDI-SCSI-Gerät bekommst, an das du SCSI-Pakete schicken kannst. Die Pakete musst du noch selber bauen. tyndur hat in seiner OS-spezifischen CDI-Lib noch einen Hack drin, der dann ein CDI-Storage-Gerät obendrauf setzt. Falls du SCSI nicht direkt unterstützen willst, könnte das einen Blick wert sein.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

OsDevNewbie

  • Beiträge: 282
    • Profil anzeigen
    • YourOS Kernel
Gespeichert
« Antwort #7 am: 04. January 2015, 12:42 »
CD-Unterstützung ist doch in v2 (was ich oben verlinkt habe) schon drin.
Oh, entschuldigung ich habe da irgendwie die nachricht der vorherigen Version gelesen.

Was ist mit den TODOs, die im Quellcode sind? Ich habe dort etwas gesehen mit
//TODO 64-bit Unterstützung
Ist dieser Treiber denn nicht 64-bit tauglich?
Viele Grüsse
OsDevNewbie

Ein Computer ohne Betriebsystem ist nicht mehr wert als ein Haufen Schrott.
Ein Computer ist eine Maschine, die einem Lebewesen das kostbarste klaut, was sie selber nicht hat:
DIE ZEIT DES LEBENS

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 04. January 2015, 16:44 »
Er macht kein 64-Bit-DMA, d.h. du brauchst physische Adressen < 4 GB für deine DMA-Puffer. Wenn du cdi_mem_alloc() korrekt implementiert hast, dann sollte das auch auf einem 64-Bit-System funktionieren, weil der Treiber CDI_MEM_DMA_4G benutzt, um diese Einschränkung anzuzeigen.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

OsDevNewbie

  • Beiträge: 282
    • Profil anzeigen
    • YourOS Kernel
Gespeichert
« Antwort #9 am: 04. January 2015, 18:43 »
Aber theoretisch würde es auch mit 64-bit funktionieren.
Viele Grüsse
OsDevNewbie

Ein Computer ohne Betriebsystem ist nicht mehr wert als ein Haufen Schrott.
Ein Computer ist eine Maschine, die einem Lebewesen das kostbarste klaut, was sie selber nicht hat:
DIE ZEIT DES LEBENS

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #10 am: 04. January 2015, 20:45 »
Theoretisch ja, ausprobiert habe ich es mangels 64-Bit-OS mit CDI nicht.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #11 am: 10. January 2015, 00:25 »
Der Treiber ist jetzt übrigens sowohl im CDI- als auch im tyndur-Repository committet.

Ein Problem mit tyndur ist im Moment noch, dass die Bootkonfiguration für IDE und AHCI unterschiedlich sein muss. Gerade die Live-CD sollte eigentlich einfach das richtige nehmen. Das sollte man vermutlich bis zum nächsten Release noch verbessern. Also falls sich jemand berufen fühlt...? ;)
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

OsDevNewbie

  • Beiträge: 282
    • Profil anzeigen
    • YourOS Kernel
Gespeichert
« Antwort #12 am: 10. January 2015, 00:44 »
Eine Frage habe ich noch: fwas macht das Macro CDI_BUILD_BUG_ON()?
Viele Grüsse
OsDevNewbie

Ein Computer ohne Betriebsystem ist nicht mehr wert als ein Haufen Schrott.
Ein Computer ist eine Maschine, die einem Lebewesen das kostbarste klaut, was sie selber nicht hat:
DIE ZEIT DES LEBENS

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #13 am: 10. January 2015, 01:06 »
Es produziert einen Compilerfehler, wenn die Bedingung falsch ist. Quasi wie ein assert() zur Compilezeit.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

OsDevNewbie

  • Beiträge: 282
    • Profil anzeigen
    • YourOS Kernel
Gespeichert
« Antwort #14 am: 10. January 2015, 01:26 »
Und wo wird das verwendet?
Und für was kann man das verwenden?

P.S: Vielleicht werde ich jetzt ein bisschen Offtopic. Wenn ja kann ich ja einen eigenen Thread öffnen für dieses Thema.
Viele Grüsse
OsDevNewbie

Ein Computer ohne Betriebsystem ist nicht mehr wert als ein Haufen Schrott.
Ein Computer ist eine Maschine, die einem Lebewesen das kostbarste klaut, was sie selber nicht hat:
DIE ZEIT DES LEBENS

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #15 am: 10. January 2015, 13:43 »
Du kannst da im Prinzip jede Bedingung eintragen, die der Compiler zur Compilezeit auflösen kann. Einen Teil kannst du auch mit dem Präprozessor erschlagen (#ifdef usw.), aber bestimmte Dinge wie sizeof() oder offsetof() kann man dort nicht zuverlässig verwenden. Dafür gibt es dann solche BUILD_BUG-Makros.

Ich benutze eins z.B., um sicherzustellen, dass ein Array nicht mehr Speicher benutzt, als da ist: "BUILD_BUG(SIZE_X * SIZE_Y * sizeof(node_t) > 24*1024)", wobei SIZE_X, SIZE_Y und node_t einstellbar sind. Die kann man im Prinzip beliebig einstellen, aber wenn das Ergebnis größer als 24 KB wird, funktioniert es halt nicht. Das fange ich damit ab.

 

Einloggen