Bonjour
Y-a-t-il des ressources sur la programmation des ports PCI , quelles sont les adresses sont elle fixe et attribuer chaque fois au meme port pci (ex pci1 = ES:0100h, pci2=ES:0200h) => c 'est un exemple.
Bonjour
Y-a-t-il des ressources sur la programmation des ports PCI , quelles sont les adresses sont elle fixe et attribuer chaque fois au meme port pci (ex pci1 = ES:0100h, pci2=ES:0200h) => c 'est un exemple.
Moi, je te dirais : puis, pci.h ou quelque chose dans ce genre là, tu vois ce que je veux dire ?
Tu es sous quel système ?
C'est pour faire quoi ?
salut, les h contiennent de l'assembleur?, j'ai fait un ptite recherche avec pci bus assembler mais pas grand chose.
Je travaill sous nasm version dos, mais donc j'aimerais eviter les interruptions du dos.
T'as pas répondu à ma deuxième question : c'est pour faire quoi ?
Les .h ne contiennent pas d'assembleur, ou très peu, mais ça te donne des liens, pour aller chercher les .c ou les fichiers annexes, car à mon avis, t'as pas fini, si tu veux programmer toi-même le driver PCI...
Ha désolé je l'avait pas vu, ben dans un premier temps j'aimerais modifier l'état des ports sur le bus pci, lire aussi l'état avec une carte pci de développement, ensuite pouvoir programmer une carte reseau, pctv,etc...Envoyé par progfou
vous avez jammais entendu parler du Plug & Play ?
les ressources ne sont pas fixes ! (enfin je crois )
Exact elles ne sont pas fixes, et on y accede pas par la mémoire. Cela dépends de la carte, les ports, les irqs, les channel dma vont changer suivant le materiel.
Bonjour,
Concernant l'accès aux ressources PCI, comment interroge t'on le contrôleur pour avoir la liste des composants PCI et leur IRQs ?
Merci pour la réponse
Bonjour,
Concernant l'accés à l'espace de configuration PCI, il existe certains registres adressables via certaines adresses d'E/S.
Cet espace de configuration de décompose en "slots", ce qui permet à chaque périphérique de contenir jusqu'à 8 fonctions, chaque fonction contenant 256 octets de registres de configuration.
Pour le chipset Intel 440 BX par exemple, nous disposons de 2 bus, le bus 0 (PCI) et le bus 1 (AGP).
Le bus 0 supporte au maximum 21 périphérique, le bus 1 en supporte lui 16.
L'on accède à cet espace via deux registres:
- Un registre de configuration d'adresse ($0CF8) qui détermine quelle portion de l'espace de configuration sera visible en paramètrant le bus, le périphérique, la fonction et le registre désirés.
- Un registre de configuration de données ($0CFC) qui est un registre 32 bits R/W qui permet de lire ou d'écrire dans l'espace de configuration à l'emplacement déterminé donc par le premier registre, c'est en quelquesorte une fenêtre dans l'espace.
L'espace de configuration d'une fonction d'un périphérique se compose donc de 256 octets ($0-$0FF), comprend généralement l'identification du vendeur (WORD) @ $0, l'identification du periphérique (WORD) @ $02 , la ligne d'interruption affectée au périphérique se situe généralement @ $3c (BYTE) de cet espace alloué à ce périphérique.Toutes ces informations se trouvent dans le "DATASHEET" des différents périphériques lorsque ceux ci sont bien évidemment disponibles ...
Il existe aussi certaines extensions du BIOS (voir les spécifications PNPBIOS, DMI, SMBIOS, ESCD) offrants des fonctions permettant d'acceder aux ressources matérielles selon un standard lorsque le BIOS le suppporte.
AsnOd.
Partager