Partilhar via


Tabela de redirecionamento do console de porta serial (SPCR)

Este documento define o conteúdo da Tabela de Redirecionamento do Console da Porta Serial. Esta tabela é usada para indicar se uma porta serial ou uma interface UART não herdada está disponível para uso com o Microsoft® Windows® Emergency Management Services (EMS).

A tabela fornece informações sobre a configuração e o uso da porta serial ou da interface UART não herdada. Em um sistema em que o BIOS ou o firmware do sistema usa a porta serial para entrada/saída do console, esta tabela deve ser usada para transmitir informações sobre as configurações, para garantir uma transição perfeita entre a saída do console do firmware e a saída do Windows EMS.

Esta tabela deve estar localizada na memória do sistema com outras tabelas ACPI e deve ser referenciada na tabela ACPI RSDT.

Aviso de patente: A Microsoft está disponibilizando certos direitos de patente para implementações desta especificação em duas opções:

  1. Community Promise da Microsoft, disponível em https://www.microsoft.com/openspecifications/en/us/programs/community-promise/default.aspx; ou
  2. O Acordo de Especificação Final da Open Web Foundation Versão 1.0 ("OWF 1.0") a partir de 1º de outubro de 2012, disponível no site da Open Web Foundation .
Field Byte Length Byte Offset Description
Header
Signature 4 0 'SPCR'. Assinatura da tabela de redirecionamento do console da porta serial.
Length 4 4 Comprimento, em bytes, de toda a Tabela de Redirecionamento do Console da Porta Serial, incluindo NamespaceString.
Revision 1 8 A revisão da tabela atual é 4.
Checksum 1 9 A tabela inteira deve ser somada a zero.
OEM ID 6 10 ID do fabricante do equipamento original (OEM).
ID da tabela OEM 8 16 Para a Tabela de Redirecionamento do Console da Porta Serial, o ID da tabela é o ID do modelo do fabricante.
OEM Revision 4 24 Revisão OEM da Tabela de Redirecionamento do Console da Porta Serial para ID da Tabela OEM fornecida.
Creator ID 4 28 ID do fornecedor do utilitário que criou a tabela.
Creator Revision 4 32 Revisão do utilitário que criou a tabela.
Interface Type 1 36 Indica o tipo de interface de registo:
Para a revisão 1:
  • 0 = Interface completa 16550
  • 1 = Interface completa 16450 (também deve aceitar escrita no registo FCR 16550)
  • 2-255 = Reservado
Para a Revisão 2 ou superior:
See the Serial Port Subtypes in Table 3 of the DBG2 Specification.
Reserved 3 37 Deve ser 0.
Base Address 12 40 O endereço base do conjunto de registros de porta serial descrito usando a Estrutura de Endereço Genérico ACPI, ou 0 se o redirecionamento do console estiver desabilitado.

Note:
COM1 (0x3F8) seria:
  • Formulário inteiro: 0x 01 08 00 00 00000000000003F8
  • Visualizado em Memória: 0x01080000F803000000000000
COM2 (0x2F8) seria:
  • Formulário inteiro: 0x 01 08 00 00 0000000000002F8
  • Visualizado em Memória: 0x01080000F802000000000000
Interrupt Type 1 52 Tipo(s) de interrupção usado(s) pela UART:
  • Bit[0]: Interrupção IRQ dual-8259 compatível com PC-AT
  • Bit[1]: interrupção I/O APIC (Global System Interrupt)
  • Bit[2]: interrupção I/O SAPIC (Global System Interrupt)
  • Bit[3]: interrupção ARMH GIC (Global System Interrupt)
  • Bit[4]: RISC-V interrupção PLIC/APLIC (Interrupção Global do Sistema)
  • Bit[5:7]: Reservado (deve ser definido como 0)
Where
  • 0 = Não suportado
  • 1 = Suportado
Defina este campo como zero se a interface descrita suportar apenas a operação sondada.
As plataformas com um dual-8259 e um I/O APIC ou I/O SAPIC devem definir o bit IRQ (Bit[0]) e o bit de interrupção do sistema global correspondente (por exemplo, um sistema que suportasse 8259 e SAPIC seria 5).
IRQ 1 53 O IRQ compatível com PC-AT usado pelo UART:
  • 2-7, 9-12, 14-15 = IRQs válidos, respectivamente
  • 0-1, 8, 13, 16-255 = Reservado
Válido apenas se Bit[0] do campo Tipo de interrupção estiver definido.
Interrupção Global do Sistema 4 54 A Interrupção Global do Sistema (GSIV) utilizada pela UART.
Não é válido se Bit[1:7] do campo Tipo de interrupção for 0.
Se o bit 3 do campo Tipo de interrupção estiver definido (ARMH GIC), então um controlador de interrupção Arm GIC será usado. As interrupções de braço GIC SGI e PPI não podem ser usadas para o UART, por isso é proibido que este campo seja definido para qualquer valor em {0, ..., 31} ou em {1056, ..., 1119}.
Taxa de transmissão configurada 1 58 A taxa de transmissão que o BIOS usou para redirecionamento:
  • 0 = Como está, o sistema operacional depende da configuração atual da porta serial até que o driver completo seja inicializado.
  • 3 = 9600
  • 4 = 19200
  • 6 = 57600
  • 7 = 115200
  • 1-2, 5, 8-255 = Reservado
Parity 1 59
  • 0 = Sem paridade
  • 1-255 = Reservado
Stop Bits 1 60
  • 1 = 1 bit de paragem
  • 0, 2-255 = Reservado
Flow Control 1 61
  • Bit[0]: DCD necessário para transmissão
  • Bit[1]: Controle de fluxo de hardware RTS/CTS
  • Bit[2]: Controle de software XON/XOFF
  • Bit[3:7]: Reservado, deve ser 0
Terminal Type 1 62 O protocolo de terminal que o BIOS estava usando para o redirecionamento do console:
  • 0 = VT100
  • 1 = VT100 estendido (VT100+)
  • 2 = VT-UTF8
  • 3 = ANSI
  • 4-255 = Reservado
Linguagem 1 63 Idioma que o BIOS estava redirecionando. Deve ser 0.
ID do dispositivo PCI 2 64 Designa a ID do dispositivo de um dispositivo PCI que contém uma UART para ser usada como uma porta sem cabeça.
Deve ser 0xFFFF se não for um dispositivo PCI.
ID do fornecedor PCI 2 66 Designa a ID do fornecedor de um dispositivo PCI que contém uma UART para ser usada como uma porta sem cabeça.
Deve ser 0xFFFF se não for um dispositivo PCI.
Número de barramento PCI 1 68 Número de barramento PCI se a tabela descreve um dispositivo PCI.
Deve ser 0x00 se não for um dispositivo PCI.
Número do dispositivo PCI 1 69 Número do dispositivo PCI se a tabela descreve um dispositivo PCI.
Deve ser 0x00 se não for um dispositivo PCI.
Número da função PCI 1 70 Número de função PCI se a tabela descreve um dispositivo PCI.
Deve ser 0x00 se não for um dispositivo PCI.
PCI Flags 4 71 Compatibilidade PCI sinaliza bitmask. Deve ser zero por padrão.
  • Bit[0]: O sistema operacional NÃO deve suprimir a enumeração de dispositivos PNP ou desabilitar o gerenciamento de energia para este dispositivo. Deve ser 0 se não for um dispositivo PCI.
  • Bit[1-31]: Reservado, deve ser 0.
PCI Segment 1 75 Número do segmento PCI.

Para sistemas com menos de 255 barramentos PCI, esse número deve ser 0.

Frequência do relógio UART 4 76 Para a Revisão 2 ou inferior:
  • Deve ser 0.
Para a Revisão 3 ou superior:
  • Zero, indicando que a frequência do relógio UART é indeterminada.
  • Um valor diferente de zero que indica a frequência do relógio UART em Hz.
Taxa de transmissão precisa 4 80 Contém uma taxa de transmissão diferente de zero específica que substitui o valor do campo Taxa de transmissão configurada. Se este campo for zero ou não estiver presente, a Taxa de Transmissão Configurada será usada. Consulte a nota abaixo.
NamespaceStringLength 2 84 Comprimento, em bytes, de NamespaceString, incluindo caracteres NUL.
NamespaceStringOffset 2 86 Deslocamento, em bytes, do início dessa estrutura para o campo NamespaceString[]. Esse valor deve ser válido porque essa cadeia de caracteres deve estar presente.
NamespaceString[] NamespaceStringLength NamespaceStringOffset Cadeia de caracteres ASCII terminada por NUL para identificar exclusivamente este dispositivo. Essa cadeia de caracteres consiste em uma referência totalmente qualificada ao objeto que representa esse dispositivo no namespace ACPI. Se nenhum dispositivo de namespace existir, NamespaceString[] deve conter apenas um único '.' (período ASCII).

Nota sobre os campos Taxa de transmissão

O campo Taxa de transmissão configurada existe como um campo de byte único desde a criação da tabela SPCR e é amplamente suportado pelos sistemas operacionais. No entanto, por ser uma enumeração, ela é limitada em sua capacidade de descrever com precisão taxas de transmissão não tradicionais, como as usadas por UARTs de alta velocidade. Assim, o campo Taxa de transmissão precisa foi adicionado para permitir que o firmware forneça aos sistemas operacionais de suporte um valor DWORD que descreve uma taxa de transmissão específica (por exemplo, 1500000). Quando o campo Taxa de transmissão precisa contém um valor diferente de zero, o campo Taxa de transmissão configurada deve ser zero.

Revision History

Date Rev Description
2/15/00 .10 Created
3/1/00 .50 ‘SPCR’. Dados de assinatura adicionados
3/20/00 .55 Dados revisados para incluir port e irq
3/22/00 .56 Identificação de porta esclarecida Adicionada capacidade de desativar o redirecionamento. Ponteiro adicionado à Estrutura de Endereço de Registro Genérico
3/23/00 .56a Formatação, declaração de exoneração de responsabilidade, edição de cópias
4/24/00 .6 Postado na web para WinHEC
4/24/00 .6 Rascunho de revisão pública publicado
5/25/00 .61 Correção BASE_ADDRESS descrição
5/25/00 .61 Rascunho de revisão pública publicado
5/31/00 .7 Correção de BASE_ADDRESS exemplos de descrição. Adicionada interface 16540.
5/31/00 .71 Alterada a informação no GRAS de uma nota para um "*"
5/31/00 .71 Rascunho de revisão pública publicado
6/1/00 .72 Exemplos de porta GRAS COM alterados para serem little-endian. Texto adicionado ao final da linha
7/12/00 .75 Descrição do IRQ fixo. Corrigidos vários problemas de formato Adicionadas informações de barramento PCI.
7/26/00 .76 Atualize para o nome do campo PCI "Número do dispositivo". Linguagem de introdução alterada para incluir UART não herdado.
8/10/00 .77 Informações de interrupção alteradas, adicionando APIC e SAPIC Adicionado controle de fluxo
9/22/00 .78 Segmento PCI adicionado
10/25/00 .80 Seção de sinalizadores PCI fixa. Tipos de terminal adicionados 16450 informações FCR adicionadas
10/1/01 .95 Códigos de idioma removidos
1/11/02 1.00 adicionando especificações de licenciamento atualizadas à versão 1.00
3/12/14 1.01 Lançado sob Microsoft Community Promise
6/2/14 1.02 Alterada a Revisão de Tabela para 2 e adicionado suporte para Tipos de Interface adicionais, conforme definido na especificação DBG2.
8/10/15 1.03 Aviso de patente atualizado.
7/23/2018 1.04
6/5/2020 1.05 Edited formatting
9/1/2020 1.06 Formatação editada e link atualizado para a especificação DBG2
2/17/2021 1.07 Corrigida a descrição incorreta no campo Bits de parada. Desfaça a remoção acidental do campo Controle de fluxo. Edited formatting.
10/7/2021 1.08 Alterada a Revisão da Tabela para 3 e criado campo para Frequência de Relógio UART. Edited formatting.
4/10/2023 1.09 Revisão da tabela alterada para 4. Adicionado suporte a RISC-V e sondagem ao campo Tipo de interrupção. Novos campos adicionados: Taxa de transmissão precisa, NamespaceStringLength, NamespaceStringOffset e NamespaceString[].
5/1/2023 1.10 Redação esclarecida nos campos Interrupção Global do Sistema e Frequência do Relógio UART.