Sourcecode Fortschritt


  • Mod

    @Z: Tobiking und ich quälen uns momentan etwas herum, aber wir kommen vorwärts.

    Diesen MS-Code kennen wir schon, bringt mich aber nicht wirklich weiter.
    Was soll ich z.B. damit?

    /* Initialize the aperiodic list
         * NB: This is the endpoint #0 used during configuration, we only
         *     initialize here only the fields that will not change.
         */
         EhciWriteRegister(&Qhead->Ed.Next,
                          VirtualToPhysical(Qhead) | EHCI_POINTER_TYPE_QH);
         EhciWriteRegister(&Qhead->Ed.EndpointCaps,
                          (1 << EHCI_QH_RL_SHIFT)
                          | (8 << EHCI_QH_MPS_SHIFT)
                          | EHCI_QH_H
                          | EHCI_QH_DTC
                          | EHCI_QH_480Mbps
                          );
         EhciWriteRegister(&Qhead->Ed.TransferOverlay.Next,
                          EHCI_POINTER_TYPE_TERMINATOR);
         EhciWriteRegister(&Qhead->Ed.TransferOverlay.Alternate,
                          EHCI_POINTER_TYPE_TERMINATOR);
    


  • Erhard Henkes schrieb:

    Was soll ich z.B. damit?

    Als Beispiel verwenden, analysieren und verstehen.
    Sonst seid ihr nächstes Jahr noch nicht fertig. 😉


  • Mod

    Ich zitiere mal Tobiking aus dem IRC:

    Gerade MS Code würde ich nicht nehmen ^^

    Dennoch, wenn es hakt, schauen wir da schon rein. ehci.h fand ich dort ganz gut, weil man ein Gefühl für die notwendigen Strukturen und Defines bekommt. Sind aber auch Fehler drinnen, die ich bereits gesehen habe.

    Wir wühlen uns durch die Specs von EHCI und USB 2.0. Das reicht erstmal an Infos. Eher zuviel als zu wenig. 😉


  • Mod

    Rev. 206:
    http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=206

    EHCI /USB Zwischenschritt

    Transaktionen funktionieren noch nicht. 🙄



  • Ich möchte ja kein Spielverderber oder Schwarzseher sein, aber vom Microsoftcode würde ich wirklich die Finger lassen. Inwieweit Linuxcode ansehen und den als Anleitung für ein BSD-OS zu nehmen schlimm ist, weiß ich nicht (denke nicht allzu schlimm), aber der MS-Code ist mit einem "All rights reserved" gekennzeichnet. Ich denke zwar nicht, dass MS euch deshalb verfolgen wird, aber trotzdem ist es rechtlich eher problematisch, sich den vorzunehmen, könnte ich mir vorstellen...


  • Mod

    Wir möchten das ja auch selbst verstehen und lösen. Bei EHCI und USB 2.0 kommt es echt auf den Durchblick und das Verstehen der Abläufe an. Irgendwo haben wir einen Mechanismus - vermutlich bei EHCI - noch nicht verstanden.

    Einer meiner PCs zeigt ja auch noch J-State anstelle 0x1004 oder 0x1005 (high speed enabled). VBox läuft nicht richtig.

    Ich hoffe nur, dass die physikalische Adresse, die VMM zurück gibt, ok ist.


  • Mod

    Rev. 207:
    http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=207

    ehci.c:
    die allokierten Bereiche auf dem Heap werden mit memset(...) durchgängig auf 0 gesetzt.

    EHCI /USB Zwischenschritt, Transaktion läuft noch nicht. 🙄



  • Rev. 208:
    http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=208

    • Wochentage werden nun (aufgrund unterschiedlicher zählweisen unterschiedlicher cmos) berechnet statt ausgelesen.


  • XanClic schrieb:

    Ich möchte ja kein Spielverderber oder Schwarzseher sein, aber vom Microsoftcode würde ich wirklich die Finger lassen. Inwieweit Linuxcode ansehen und den als Anleitung für ein BSD-OS zu nehmen schlimm ist, weiß ich nicht (denke nicht allzu schlimm), aber der MS-Code ist mit einem "All rights reserved" gekennzeichnet. Ich denke zwar nicht, dass MS euch deshalb verfolgen wird, aber trotzdem ist es rechtlich eher problematisch, sich den vorzunehmen, könnte ich mir vorstellen...

    Du sollst ihn auch nicht kopieren, sondern davon lernen.



  • Z schrieb:

    XanClic schrieb:

    Ich möchte ja kein Spielverderber oder Schwarzseher sein, aber vom Microsoftcode würde ich wirklich die Finger lassen. Inwieweit Linuxcode ansehen und den als Anleitung für ein BSD-OS zu nehmen schlimm ist, weiß ich nicht (denke nicht allzu schlimm), aber der MS-Code ist mit einem "All rights reserved" gekennzeichnet. Ich denke zwar nicht, dass MS euch deshalb verfolgen wird, aber trotzdem ist es rechtlich eher problematisch, sich den vorzunehmen, könnte ich mir vorstellen...

    Du sollst ihn auch nicht kopieren, sondern davon lernen.

    Ich weiß nicht, ob es das besser macht. 😉



  • XanClic schrieb:

    Z schrieb:

    XanClic schrieb:

    Ich möchte ja kein Spielverderber oder Schwarzseher sein, aber vom Microsoftcode würde ich wirklich die Finger lassen. Inwieweit Linuxcode ansehen und den als Anleitung für ein BSD-OS zu nehmen schlimm ist, weiß ich nicht (denke nicht allzu schlimm), aber der MS-Code ist mit einem "All rights reserved" gekennzeichnet. Ich denke zwar nicht, dass MS euch deshalb verfolgen wird, aber trotzdem ist es rechtlich eher problematisch, sich den vorzunehmen, könnte ich mir vorstellen...

    Du sollst ihn auch nicht kopieren, sondern davon lernen.

    Ich weiß nicht, ob es das besser macht.

    Kommt wohl auf die Person an. Ich jedenfalls finde fremde Code-Beispiele oft sehr hilfreich.


  • Mod

    @Z: in welcher Funktion läuft ein Control Transfer auf der asynchronen Liste ab?



  • Z schrieb:

    Kommt wohl auf die Person an. Ich jedenfalls finde fremde Code-Beispiele oft sehr hilfreich.

    Hm, solche Sätze kenne ich noch von jemand anderem... Egal.

    Ich natürlich auch. Mein OS steht nicht ohne Grund unter der GPL, damit ich vollkommen legal GPL-Code ansehen und mich davon (unbegrenzt weit) inspirieren lassen kann. Aber PrettyOS steht erstens nicht unter der GPL und zweitens sind bei diesem Code sogar alle Rechte vorbehalten. Und Lizenzen verletzen ist eher doof.

    (Das Problem ist halt immer: Angucken ist an sich wohl kein Problem, aber wer garantiert am Ende, dass man nicht doch unbewusst kopiert hat?)



  • Erhard Henkes schrieb:

    @Z: in welcher Funktion läuft ein Control Transfer auf der asynchronen Liste ab?

    Was fragst Du mich? Ich habe mich mit USB noch nie beschäftigt. Es gibt aber IMHO ohne Ende Literatur zu USB, Bücher und Spezifikationen.

    Vielleichst sucht Du mal nach einem Minimalbeispiel, etwa einer USB-Host Implementation für Mikrokontroller. Solche Codes sind weniger durchsetzt von Systemaufrufen. Im Internet solltest Du einiges finden.

    Edit: Ist möglicherweise wertlos, weil zu hardwareabhängig.


  • Mod

    Rev. 209:
    http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=209

    ehci.c: einige Parameter verändert, inactive ergänzt


  • Mod

    Rev. 210:
    http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=210

    ehci: fehler in memset beseitigt

    Tobiking: Host Error ab 207!


  • Mod

    Rev. 211:
    http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=211

    ehci: Änderungen von Tobiking bezüglich QH und QTD sowie Speicher eingebaut

    VMWare: data: 0 😕



  • Revision 212:

    - Ausgabe der Memory-Größe in Bytes, sowie in KiB/MiB/GiB (je nach Größe) und KB/MB/GB
    - weekday wird nicht mehr aus cmos ausgelesen.


  • Mod

    Revision 213:

    Veränderungen in ehci.c
    testtransfer auch bei Anschluss eines Hispeed-Gerätes


  • Mod

    Revision 214:

    Veränderungen in ehci.c:
    void* createQTD(uint32_t next, uint8_t pid, bool toggle, uint32_t tokenBytes)

    zusätzlicher Parameter tokenBytes


Anmelden zum Antworten