1 LE BUS PCI 8 ième partie: L ’espace de configuration Sommaire - Repère zHuitième partieL ’espace de configuration yQu ’est-ce? yEspace de configuration de type 00h yLa notion d ’adressage géographique yLes registres yEspace de configuration pour une entête de type 00h yExemple Cours_bus_PCI_7_02
2 LE BUS PCI 8 ième partie: L ’espace de configuration Qu ’est-ce? zEspace adressable dédié, complètement séparé zPermet l ’accès aux cibles PCI avant qu ’elles n ’aient été mappées dans l ’espace Mémoire ou l ’espace I/O zUtilisé pour la configuration et l ’initialisation du bus PCI et de la gestion des Erreurs zChaque agent PCI a un espace adressable de 256 octets, réservé aux registres de configuration yLes 16 premiers octets sont identiques pour tous les agents PCI yL ’entête (offset 0Eh) définit la configuration des octets suivants y3 types d ’entête: xType 00h:x Standard xType 01h:x PCI / PCI Bridge xType 02h:x CardBus Bridge xBit 7: agent mono (0) ou multi (1) fonction(s)
3 LE BUS PCI 8 ième partie: L ’espace de configuration Espace de configuration de type 00h
4 LE BUS PCI 8 ième partie: L ’espace de configuration La notion d ’adressage géographique zCommande transmise lors de la phase d ’adressage z2 types de commande yType 0:Adressage d ’un agent sur le même segment de bus yType 1: Adressage d ’un agent sur un autre segment de bus xReconnue uniquement par les bridges xTransformée en commande de type 0 par le bridge concerné zPhase d ’adressage d ’une transaction d ’accès à l ’espace de configuration: yC/BE[3::0]#: xAccès configuration écriture:1010 xAccès configuration lecture:1011 yIDSEL actif xChaque agent a une ligne IDSEL en entré xLes bridges seuls peuvent ne pas en avoir et assurer leur initialisation de manière autonome x21 lignes possibles, générées par le Host ou le Bridge yAdresses AD[31::0]
5 LE BUS PCI 8 ième partie: L ’espace de configuration La notion d ’adressage géographique AD[31::0]: adressent l ’un des 64 registres (de 32 bits) de l ’espace de configuration adressent l ’une des fonctions de l ’agent (agent multi-fonctions) Type 0: Inutilisés (utilisables pour générer les IDSEL) Type 0: 00 Type 1: 01 Type 1: N° du segment de bus Type 1: Inutilisés (utilisables pour générer les IDSEL) Attention, charge supplémentaire!
6 LE BUS PCI 8 ième partie: L ’espace de configuration Les registres zRegistre de commande: offset 04h (twait)
7 LE BUS PCI 8 ième partie: L ’espace de configuration Les registres zRegistre de Statut: offset 06h (Pointeur)
8 LE BUS PCI 8 ième partie: L ’espace de configuration Espace de configuration pour une entête de type 00h zBase Address Register (BAR) yFournit un mécanisme de mapping des agents dans les espaces adressables y3 types d ’information sont nécessaires: xQuel espace adressable: I/O mémoire xL ’alignement des adresses xLa taille de l ’espace adressable requis
9 LE BUS PCI 8 ième partie: L ’espace de configuration Espace de configuration pour une entête de de type 00h zBAR correspondant à un agent de l ’espace mémoire zLargeur: 32 ou 64 bits Read only Base Address Prefetchable Set to one if there are no side effects on reads, the device returns all bytes on reads regardless of the byte enables, and host bridges can merge processor writes into this range without causing errors. Bit must be set to zero otherwise. Memory space Indicator Type 00: Locate anywhere in 32 bit address space 01: Reserved 10: Locate anywhere in 64 bit address space 11: Reserved
10 LE BUS PCI 8 ième partie: L ’espace de configuration Espace de configuration pour une entête de de type 00h zBAR correspondant à un agent de l ’espace I/O zLargeur: 32 bits Read only
11 LE BUS PCI 8 ième partie: L ’espace de configuration Espace de configuration pour une entête de type 00h zBAR: Détermination de la taille mémoire et de l ’alignement yL’alignement et la taille sont déterminés par le nombre de bits de poids fort implémenté xExemple: Espace mémoire de 1 Moctets, alignement: yLe logiciel système peut ré-écrire toutes les valeurs lues à “1” pour déterminer la taille et l’alignement yL’agent utilise les contenus du registre en tant qu’entrée du décodeur d’adresses: Le décodage est une simple comparaison directe avec les bits d’adresses xxxForcés à « 0 »Accessibles en lecture / écriture
12 LE BUS PCI 8 ième partie: L ’espace de configuration Exemple (1/6) zPlan mémoire PCI pour le système suivant:
13 LE BUS PCI 8 ième partie: L ’espace de configuration Exemple (2/6) zÉtape 1: Détection du périphérique yIDSEL_Device1 = AD[31] IDSEL_Device2 = AD[30] yCycles de Lecture Configuration des identifications des agents et des vendeurs, numéro de 1 à 21 ySeulement 2 agents détectés par un accès en Lecture Configuration yTous les autres accès se terminent par un master abort du cycle de configuration lecture
14 LE BUS PCI 8 ième partie: L ’espace de configuration Exemple (3/6) zÉtape 2 : Détermination des besoins en mémoire yÉcriture de FFFF FFFFh dans le BAR du contrôleur graphique yLecture du BAR du contrôleur graphique: FF h yÉcriture de FFFF FFFFh dans le BAR du générateur de trame vidéo yLecture du BAR du générateur de trame vidéo: FE h Host PCI Bridge Graphics Controler Host CPU Frame Grabber 16 MB RAM 32 MB RAM Local CPU RAM h Device 1 Device h Hardwired to 0RW Device Hardwired to 0RW Device 2 BAR Layout before after before after FF hFE h
15 LE BUS PCI 8 ième partie: L ’espace de configuration Exemple (4/6) zÉtape 3 : Allocation mémoire yÉcriture de h dans le BAR du contrôleur graphique yÉcriture de h dans le BAR du générateur de trame vidéo Host PCI Bridge Graphics Controler Host CPU Frame Grabber 16 MB RAM 32 MB RAM Local CPU RAM FF h Device 1 Device 2 FE hbefore after before after h h
16 LE BUS PCI 8 ième partie: L ’espace de configuration Exemple (5/6) zÉtape 4 : Initialisation du registre de commande PCI yAutorise l’espace mémoire du contrôleur graphique yAutorise l’espace mémoire et la possibilité d’être maître du générateur de trame vidéo
17 LE BUS PCI 8 ième partie: L ’espace de configuration Exemple (6/6) zÉtape 5 : Système opérationnel yBeaucoup de transferts de mémoire à mémoire autorisés...