Partager via


Table de redirection de la console du port série (SPCR)

Ce document définit le contenu de la table de redirection de la console de port série. Ce tableau est utilisé pour indiquer si un port série ou une interface UART non héritée est disponible pour une utilisation avec microsoft® Windows® Emergency Management Services (EMS).

Le tableau fournit des informations sur la configuration et l’utilisation du port série ou de l’interface UART non héritée. Sur un système où le BIOS ou le microprogramme système utilise le port série pour l’entrée/sortie de la console, ce tableau doit être utilisé pour transmettre des informations sur les paramètres, afin de garantir une transition transparente entre la sortie de la console du microprogramme et la sortie Windows EMS.

Cette table doit se trouver dans la mémoire système avec d’autres tables ACPI, et elle doit être référencée dans la table RSDT ACPI.

Avis de brevet : Microsoft met certains droits de brevet à la disposition des implémentations de cette spécification sous deux options :

  1. Promesse de la communauté de Microsoft, disponible à l’adresse https://www.microsoft.com/openspecifications/en/us/programs/community-promise/default.aspx; ou
  2. Le contrat de spécification final Open Web Foundation version 1.0 (« OWF 1.0 ») à compter du 1er octobre 2012, disponible sur le site web Open Web Foundation .
Field Byte Length Byte Offset Description
Header
Signature 4 0 'SPCR'. Signature pour la table de redirection de la console de port série.
Length 4 4 Longueur, en octets, de l’intégralité de la table de redirection de la console de port série, y compris NamespaceString.
Revision 1 8 La révision actuelle du tableau est 4.
Checksum 1 9 La table entière doit être égale à zéro.
OEM ID 6 10 ID du fabricant d’équipement d’origine (OEM).
OEM Table ID 8 16 Pour la table de redirection de la console de port série, l’ID de table est l’ID de modèle du fabricant.
OEM Revision 4 24 Révision OEM de la table de redirection de la console de port série pour l’ID de table OEM fourni.
Creator ID 4 28 ID du fournisseur de l’utilitaire qui a créé la table.
Creator Revision 4 32 Révision de l’utilitaire qui a créé la table.
Interface Type 1 36 Indique le type de l’interface d’inscription :
Pour révision 1 :
  • 0 = Interface complète 16550
  • 1 = Interface complète 16450 (doit également accepter l’écriture dans le registre 16550 FCR)
  • 2-255 = Réservé
Pour la révision 2 ou une version ultérieure :
See the Serial Port Subtypes in Table 3 of the DBG2 Specification.
Reserved 3 37 Doit être égal à 0.
Base Address 12 40 Adresse de base du jeu d’inscriptions de port série décrit à l’aide de la structure d’adresses génériques ACPI ou 0 si la redirection de la console est désactivée.

Note:
COM1 (0x3F8) serait :
  • Forme entière : 0x 01 08 00 00 00000000000000003F8
  • Vue en mémoire : 0x01080000F803000000000000
COM2 (0x2F8) serait :
  • Forme entière : 0x 01 08 00 00 00000000000000002F8
  • Vue en mémoire : 0x01080000F802000000000000
Interrupt Type 1 52 Types d’interruptions utilisés par l’UART :
  • Bit[0] : interruption IRQ compatible PC-AT double-8259
  • Bit[1] : interruption APIC d’E/S (interruption du système global)
  • Bit[2] : interruption SAPIC d’E/S (interruption du système global)
  • Bit[3] : interruption ARMH GIC (interruption système globale)
  • Bit[4] : RISC-V interruption PLIC/APLIC (interruption du système global)
  • Bit[5:7] : réservé (doit être défini sur 0)
Where
  • 0 = Non pris en charge
  • 1 = Pris en charge
Définissez ce champ sur zéro si l’interface décrite prend uniquement en charge l’opération interrogée.
Les plateformes avec un double-8259 et un APIC ou un SAPIC d’E/S doivent définir le bit IRQ (Bit[0]) et le bit d’interruption du système global correspondant (par exemple, un système qui a pris en charge 8259 et SAPIC serait 5).
IRQ 1 53 IRQ compatible PC-AT utilisé par l’UART :
  • 2-7, 9-12, 14-15 = IrQs valides respectivement
  • 0-1, 8, 13, 16-255 = Réservé
Valide uniquement si bit[0] du champ Type d’interruption est défini.
Interruption du système global 4 54 Interruption du système global (GSIV) utilisée par l’UART.
Non valide si bit[1:7] du champ Type d’interruption est 0.
Si le bit 3 du champ Type d’interruption est défini (ARMH GIC), un contrôleur d’interruption arm GIC est utilisé. Les interruptions arm GIC SGI et PPI ne peuvent pas être utilisées pour l’UART. Il est donc interdit que ce champ soit défini sur n’importe quelle valeur dans {0, ..., 31} ou dans {1056, ..., 1119}.
Taux Baud configuré 1 58 Taux de baud utilisé pour la redirection :
  • 0 = Tel est le cas, le système d’exploitation s’appuie sur la configuration actuelle du port série jusqu’à ce que le pilote complet soit initialisé.
  • 3 = 9600
  • 4 = 19200
  • 6 = 57600
  • 7 = 115200
  • 1-2, 5, 8-255 = Réservé
Parity 1 59
  • 0 = Aucune parité
  • 1-255 = Réservé
Stop Bits 1 60
  • 1 = 1 bit d’arrêt
  • 0, 2-255 = Réservé
Flow Control 1 61
  • Bit[0] : DCD requis pour la transmission
  • Bit[1] : contrôle de flux matériel RTS/CTS
  • Bit[2] : contrôle logiciel XON/XOFF
  • Bit[3:7] : réservé, doit être 0
Terminal Type 1 62 Le protocole terminal utilisé par le BIOS pour la redirection de console :
  • 0 = VT100
  • 1 = VT100 étendu (VT100+)
  • 2 = VT-UTF8
  • 3 = ANSI
  • 4-255 = Réservé
Language 1 63 Langue vers laquelle le BIOS redirigeait. Doit être égal à 0.
ID d’appareil PCI 2 64 Désigne l’ID d’appareil d’un appareil PCI qui contient un UART à utiliser comme port sans tête.
Doit être 0xFFFF s’il ne s’agit pas d’un appareil PCI.
ID du fournisseur PCI 2 66 Désigne l’ID du fournisseur d’un appareil PCI qui contient un UART à utiliser comme port sans tête.
Doit être 0xFFFF s’il ne s’agit pas d’un appareil PCI.
Numéro de bus PCI 1 68 Numéro de bus PCI si la table décrit un appareil PCI.
Doit être 0x00 s’il ne s’agit pas d’un appareil PCI.
Numéro d’appareil PCI 1 69 Numéro d’appareil PCI si la table décrit un appareil PCI.
Doit être 0x00 s’il ne s’agit pas d’un appareil PCI.
Numéro de fonction PCI 1 70 Numéro de fonction PCI si la table décrit un appareil PCI.
Doit être 0x00 s’il ne s’agit pas d’un appareil PCI.
PCI Flags 4 71 Masque de bits des indicateurs de compatibilité PCI. Doit être égal à zéro par défaut.
  • Bit[0] : le système d’exploitation ne doit PAS supprimer l’énumération d’appareils PNP ou désactiver la gestion de l’alimentation pour cet appareil. Doit être 0 s’il ne s’agit pas d’un appareil PCI.
  • Bit[1-31] : réservé, doit être 0.
PCI Segment 1 75 Numéro de segment PCI.

Pour les systèmes avec moins de 255 bus PCI, ce nombre doit être égal à 0.

Fréquence d’horloge UART 4 76 Pour révision 2 ou inférieure :
  • Doit être égal à 0.
Pour la révision 3 ou une version ultérieure :
  • Zéro, indiquant que la fréquence d’horloge UART est indéterminée.
  • Valeur différente de zéro indiquant la fréquence d’horloge UART en Hz.
Taux de Baud précis 4 80 Contient un taux de baud non égal à zéro spécifique qui remplace la valeur du champ Taux Baud configuré. Si ce champ est égal à zéro ou non, le taux Baud configuré est utilisé. Voir la remarque ci-dessous.
NamespaceStringLength 2 84 Longueur, en octets, de NamespaceString, y compris les caractères NUL.
NamespaceStringOffset 2 86 Offset, en octets, du début de cette structure au champ NamespaceString[]. Cette valeur doit être valide, car cette chaîne doit être présente.
NamespaceString[] NamespaceStringLength NamespaceStringOffset Chaîne ASCII terminée par un nul pour identifier de manière unique cet appareil. Cette chaîne se compose d’une référence complète à l’objet qui représente cet appareil dans l’espace de noms ACPI. Si aucun appareil d’espace de noms n’existe, NamespaceString[] ne doit contenir qu’un seul « . » Caractère (période ASCII).

Remarque sur les champs de taux Baud

Le champ Baud Rate configuré existe en tant que champ à octet unique depuis la création de la table SPCR et est largement pris en charge par les systèmes d’exploitation. Toutefois, étant donné qu’il s’agit d’une énumération, il est limité dans sa capacité à décrire précisément les taux de baud non traditionnels, tels que ceux utilisés par les UART à grande vitesse. Ainsi, le champ Précision Baud Rate a été ajouté pour permettre au microprogramme de fournir aux systèmes d’exploitation de prise en charge une valeur DWORD qui décrit un taux de baud spécifique (par exemple, 15000000). Lorsque le champ Taux Baud précis contient une valeur différente de zéro, le champ Taux Baud configuré est égal à zéro.

Revision History

Date Rev Description
2/15/00 .10 Created
3/1/00 .50 ‘SPCR’. Données de signature ajoutées
3/20/00 .55 Données révisées pour inclure le port et irq
3/22/00 .56 Clarification de l’identification des ports Ajout de la possibilité de désactiver la redirection. Ajout d’un pointeur à la structure d’adresse de registre générique
3/23/00 .56a Mise en forme, exclusion de responsabilité, modification de copie
4/24/00 .6 Publié sur le web pour WinHEC
4/24/00 .6 Brouillon de révision publique publié
5/25/00 .61 Correction de la description de BASE_ADDRESS
5/25/00 .61 Brouillon de révision publique publié
5/31/00 .7 Correction de BASE_ADDRESS exemples de description. Ajout de l’interface 16540.
5/31/00 .71 Modification des informations sur le GRAS d’une note par un « * »
5/31/00 .71 Brouillon de révision publique publié
6/1/00 .72 Modification des exemples de ports COM GRAS pour être peu endian. Ajout de texte à la fin de la ligne
7/12/00 .75 Correction de la description IRQ. Correction de différents problèmes de format ajout d’informations de bus PCI.
7/26/00 .76 Mettre à jour le nom du champ PCI « Numéro d’appareil ». Modification du langage d’introduction pour inclure l’UART non hérité.
8/10/00 .77 Informations d’interruption modifiées, ajout du contrôle de flux ajouté APIC et SAPIC
9/22/00 .78 Ajout du segment PCI
10/25/00 .80 Correction de la section Indicateurs PCI. Ajout des types de terminal ajout d’informations FCR 16450
10/1/01 .95 Codes de langue supprimés
1/11/02 1.00 ajout de la spécification de licence mise à jour à la version 1.00
3/12/14 1.01 Publication sous Microsoft Community Promise
6/2/14 1.02 Modification de la révision de table à 2 et ajout de la prise en charge des types d’interface supplémentaires, comme défini dans la spécification DBG2.
8/10/15 1.03 Mise à jour de l’avis de brevet.
7/23/2018 1.04
6/5/2020 1.05 Edited formatting
9/1/2020 1.06 Mise en forme modifiée et lien mis à jour vers la spécification DBG2
2/17/2021 1.07 Correction d’une description incorrecte dans le champ Stop Bits. Annuler la suppression accidentelle du champ Contrôle de flux. Edited formatting.
10/7/2021 1.08 Modification de la révision de la table en 3 et champ créé pour la fréquence d’horloge UART. Edited formatting.
4/10/2023 1.09 Modification de la révision du tableau à 4. Ajout de RISC-V et d’interrogation de la prise en charge du champ Type d’interruption. Ajout de nouveaux champs : Taux Baud précis, NamespaceStringLength, NamespaceStringOffset et NamespaceString[].
5/1/2023 1.10 Formulation précise dans les champs d’interruption du système global et de fréquence d’horloge UART.