2012-08-04 3 views
5

Je travaille sur un projet d'accès USB brut en mode réel x86. Cela implique un amorceur personnalisé, un chargeur de démarrage de second niveau et des pilotes matériels triviaux.Contrôle USB en mode réel x86

L'objectif final est de fournir un produit qui démarre, envoie des données via l'interface USB, reçoit des données via l'interface USB et imprime la valeur de résultat à l'écran. J'ai tout sauf l'accès USB terminé.

J'ai déjà découvert que le BIOS ne fournit PAS l'accès à l'USB embarqué. J'ai passé par des dizaines de sites d'osdevver à brokenthorn. J'ai même regardé la spécification USB 2.0.

Personne, nulle part, ne donne d'informations pertinentes ou utiles sur l'accès direct à un concentrateur USB racine utilisant l'assemblage x86 en mode réel x86 sans passer par un système d'exploitation préexistant.

N'existe-t-il pas un port d'entrée/sortie standard pour les concentrateurs USB? Et s'il y en a, où exactement la documentation spécifie-t-elle la communication standard qui permet au logiciel de dire au Hub quelles données envoyer et quel périphérique connecté envoyer ces données?

+0

x86 mode réel, avec ... pas de support OS? Cela signifie probablement qu'il faut s'interfacer avec le contrôleur PCI de votre chipset, en utilisant le contrôleur PCI pour détecter, (re) réinitialiser le contrôleur USB de votre chipset. Ensuite, il y a le problème de la configuration des mappages de mémoire et de la gestion de l'IRQ (que vous n'avez peut-être pas assez de place pour effectuer les 1 Mo et les 8 IRV accessibles en mode réel). Je pourrais avoir certains détails erronés ici, mais vous ne voulez certainement pas le faire. Construire au-dessus d'un petit système d'exploitation intégré comme http://ecos.sourceware.org/ à la place. – Managu

+0

Donc le concentrateur USB racine va être subordonné au contrôleur PCI? –

+0

Je m'y attendais, oui. – Managu

Répondre

0

Il n'est pas possible d'avoir une interface USB en mode réel. Vous pouvez implémenter cela en mode protégé comme indiqué dans PrettyOS. Et ce n'est pas si facile à mettre en œuvre si nous comparons avec notre interface PS/2.