Pas fabuleux, non, c'est une vrai "merde" pour devoir utiliser trois instances dans deux chips, le driver est un cauchemar, le hard est d'une complexité phénoménale, et la moindre erreur de configuration est fatale....
Leur soucis est que le hard n'a pas de scheduleur d’émission de paquets USB, donc il doit être fait en soft avec l'IRQ de "Start of Frame" qui est synchronisée avec l'horloge USB (soit plusieurs milliers d'IRQ par secondes). Une version plus récente du hard introduit le "Descriptor DMA" qui permet de dire au hard quand envoyer la suite de paquets, et corrige le soucis (mais en introduit forcément d'autres....). Leur solution est d'utiliser une FIQ et faire une partie du traitement dans ce mode, mais c'est du gros bricolage.
Bref c'est un cauchemar, d'autant plus que le chip broadcom du RPi n'a pas de controlleur Ethernet natif, et qu'ils doivent forcément passer par l'USB, ce qui n'arrange pas les choses....
De plus Synopsys est très protecteur vis-a-vis de ses docs, et bien qu'ils aient un driver pour leur contrôleur USB3 en upstream, le driver pour l'USB2 est assez mal maintenu et très bordélique. Faire bouger Synopsys est une autre paire de manches ;-)
[^] # Re: Cool
Posté par superna (site web personnel) . En réponse au journal Donc maintenant Broadcom aime l'open source et les specs ouverte ?. Évalué à 5.
Pas fabuleux, non, c'est une vrai "merde" pour devoir utiliser trois instances dans deux chips, le driver est un cauchemar, le hard est d'une complexité phénoménale, et la moindre erreur de configuration est fatale....
Leur soucis est que le hard n'a pas de scheduleur d’émission de paquets USB, donc il doit être fait en soft avec l'IRQ de "Start of Frame" qui est synchronisée avec l'horloge USB (soit plusieurs milliers d'IRQ par secondes). Une version plus récente du hard introduit le "Descriptor DMA" qui permet de dire au hard quand envoyer la suite de paquets, et corrige le soucis (mais en introduit forcément d'autres....). Leur solution est d'utiliser une FIQ et faire une partie du traitement dans ce mode, mais c'est du gros bricolage.
Bref c'est un cauchemar, d'autant plus que le chip broadcom du RPi n'a pas de controlleur Ethernet natif, et qu'ils doivent forcément passer par l'USB, ce qui n'arrange pas les choses....
De plus Synopsys est très protecteur vis-a-vis de ses docs, et bien qu'ils aient un driver pour leur contrôleur USB3 en upstream, le driver pour l'USB2 est assez mal maintenu et très bordélique. Faire bouger Synopsys est une autre paire de manches ;-)