Таблица перенаправления консоли последовательного порта (SPCR)
В этом документе определяется содержимое таблицы перенаправления консоли последовательного порта. Эта таблица используется для указания того, доступен ли последовательный порт или не устаревший интерфейс UART для использования со службами® microsoft Windows® Emergency Management Services (EMS).
В таблице приведены сведения о конфигурации и использовании последовательного порта или не устаревшего интерфейса UART. В системе, где BIOS или встроенное ПО использует последовательный порт для ввода-вывода консоли, эту таблицу следует использовать для передачи сведений о параметрах, чтобы обеспечить простой переход между выходными данными консоли встроенного ПО и выходными данными Windows EMS.
Эта таблица должна находиться в системной памяти вместе с другими таблицами ACPI, и на нее должна быть ссылка в таблице ACPI RSDT.
Уведомление о патенте. Корпорация Майкрософт предоставляет определенные патентные права для реализации этой спецификации в двух вариантах:
- Обещание сообщества Майкрософт, доступное по адресу https://www.microsoft.com/openspecifications/en/us/programs/community-promise/default.aspx; или
- Соглашение о окончательной спецификации Open Web Foundation версии 1.0 ("OWF 1.0") с 1 октября 2012 г., доступное на веб-сайте Open Web Foundation .
Поле | Длина байтов | Смещение в байтах | Описание |
---|---|---|---|
Заголовок | |||
Сигнатура | 4 | 0 | SPCR. Сигнатура для таблицы перенаправления консоли последовательного порта. |
Длина | 4 | 4 | Длина в байтах всей таблицы перенаправления консоли последовательного порта, включая NamespaceString. |
Редакция | 1 | 8 | Текущая редакция таблицы — 4. |
Контрольная сумма | 1 | 9 | Вся таблица должна суммироваться до нуля. |
ИДЕНТИФИКАТОР ИЗГОТОВИТЕЛЯ ОБОРУДОВАНИЯ | 6 | 10 | Исходный идентификатор изготовителя оборудования (OEM). |
Идентификатор таблицы OEM | 8 | 16 | Для таблицы перенаправления консоли последовательного порта идентификатором таблицы является идентификатор модели производителя. |
Редакция OEM | 4 | 24 | Версия OEM таблицы перенаправления консоли последовательных портов для предоставленного идентификатора таблицы OEM. |
Идентификатор создателя | 4 | 28 | Идентификатор поставщика служебной программы, создающей таблицу. |
Редакция creator | 4 | 32 | Редакция служебной программы, создающей таблицу. |
Тип интерфейса | 1 | 36 | Указывает тип интерфейса регистрации: Для редакции 1:
См. подтипы последовательных портов в таблице 3 спецификации DBG2. |
Зарезервировано | 3 | 37 | Должно быть равно 0. |
Базовый адрес | 12 | 40 | Базовый адрес набора регистров последовательных портов, описанный с помощью универсальной структуры адресов ACPI, или 0, если перенаправление консоли отключено. Примечание. COM1 (0x3F8) будет иметь значение:
|
Тип прерывания | 1 | 52 | Типы прерываний, используемые UART:
Платформы с двойным значением 8259 и API-интерфейсом ввода-вывода или SAPIC ввода-вывода должны задавать бит IRQ (Bit[0]) и соответствующий бит прерывания глобальной системы (например, система, которая поддерживает 8259 и SAPIC, будет иметь значение 5). |
IRQ | 1 | 53 | Совместимая с PC-AT IRQ, используемая UART:
|
Прерывание глобальной системы | 4 | 54 | Глобальное системное прерывание (GSIV), используемое UART. Недействителен, если значение Bit[1:7] поля Тип прерывания равно 0. Если задан бит 3 поля Тип прерывания (ARMH GIC), то используется контроллер прерываний Arm GIC. Прерывания SGI и PPI arm GIC нельзя использовать для UART, поэтому для этого поля запрещено задавать любое значение в {0, ..., 31} или {1056, ..., 1119}. |
Настроенная ставка Baud | 1 | 58 | Скорость передачи данных BIOS, используемая для перенаправления:
|
Parity | 1 | 59 |
|
Стоп-биты | 1 | 60 |
|
Управление потоком | 1 | 61 |
|
Тип терминала | 1 | 62 | Протокол терминала, используемый BIOS для перенаправления консоли:
|
Язык | 1 | 63 | Язык, который перенаправлял BIOS. Должно быть равно 0. |
Идентификатор устройства PCI | 2 | 64 | Указывает идентификатор устройства PCI, содержащего UART, который будет использоваться в качестве порта без головного устройства. Должен быть 0xFFFF, если это не устройство PCI. |
Идентификатор поставщика PCI | 2 | 66 | Указывает идентификатор поставщика устройства PCI, содержащего UART, который будет использоваться в качестве порта без головного устройства. Должен быть 0xFFFF, если это не устройство PCI. |
Номер шины PCI | 1 | 68 | Номер шины PCI, если таблица описывает устройство PCI. Должен быть 0x00, если это не устройство PCI. |
Номер устройства PCI | 1 | 69 | Номер устройства PCI, если таблица описывает устройство PCI. Должен быть 0x00, если это не устройство PCI. |
Номер функции PCI | 1 | 70 | Номер функции PCI, если таблица описывает устройство PCI. Должен быть 0x00, если это не устройство PCI. |
Флаги PCI | 4 | 71 | Битовая маска флагов совместимости PCI. Значение должно быть равно нулю по умолчанию.
|
Сегмент PCI | 1 | 75 | Номер сегмента PCI. Для систем с менее чем 255 шинами PCI это число должно быть равно 0. |
Частота часов UART | 4 | 76 | Для редакции 2 или более ранней версии:
|
Точная скорость Baud | 4 | 80 | Содержит определенную ненулевой скорость передачи данных, которая переопределяет значение поля Настроенная ставка Baud. Если это поле равно нулю или отсутствует, используется настроенная ставка Baud. См. примечание ниже. |
NamespaceStringLength | 2 | 84 | Длина NamespaceString в байтах, включая символы NUL. |
NamespaceStringOffset | 2 | 86 | Смещение в байтах от начала этой структуры до поля NamespaceString[]. Это значение должно быть допустимым, так как эта строка должна присутствовать. |
NamespaceString[] | NamespaceStringLength | NamespaceStringOffset | Строка ASCII с символом NUL для уникальной идентификации этого устройства. Эта строка состоит из полной ссылки на объект , представляющий это устройство в пространстве имен ACPI. Если устройство пространства имен не существует, NamespaceString[] должен содержать только один "". (точка ASCII). |
Примечание о полях скорости Baud
Поле Настроенная ставка Baud существует в виде однобайтового поля с момента создания таблицы SPCR и широко поддерживается операционными системами. Однако, поскольку это перечисление, оно ограничено в его способности точно описывать нетрадиционные скорости baud, например те, которые используются высокоскоростными UART. Таким образом, было добавлено поле Точная скорость передачи данных, чтобы встроенное ПО предоставляло вспомогательным операционным системам значение DWORD, описывающее определенную скорость передачи (например, 1500000). Если поле Точное значение скорости передачи данных содержит ненулевое значение, поле Настроенная ставка Baud должно быть равно нулю.
История редакций
Дата | Редакция | Описание |
---|---|---|
2/15/00 | 0,10 | Создание |
3/1/00 | 0,50 | SPCR. Добавленные данные подписи |
3/20/00 | 0,55 | Измененные данные для включения порта и irq |
3/22/00 | .56 | Уточнена идентификация портов Добавлена возможность отключения перенаправления. Добавлен указатель на структуру адресов универсального регистра |
3/23/00 | .56a | Форматирование, отказ от ответственности, редактирование копии |
4/24/00 | .6 | Опубликовано в Интернете для WinHEC |
4/24/00 | .6 | Опубликовано общедоступное рецензирование проекта |
5/25/00 | .61 | Исправление BASE_ADDRESS описания |
5/25/00 | .61 | Опубликовано общедоступное рецензирование проекта |
5/31/00 | .7 | Исправление BASE_ADDRESS примеров описания. Добавлен интерфейс 16540. |
5/31/00 | .71 | Изменены сведения о GRAS с заметки на "*" |
5/31/00 | .71 | Опубликовано общедоступное рецензирование проекта |
6/1/00 | .72 | Изменены примеры COM-портов GRAS на маленькие байтовые. Добавлен текст в конец строки |
7/12/00 | .75 | Исправлено описание IRQ. Исправлены различные проблемы с форматом. Добавлены сведения о шине PCI. |
7/26/00 | .76 | Обновите имя поля PCI "Номер устройства". Изменен язык интро для включения не устаревшего UART. |
8/10/00 | .77 | Изменены сведения об прерывании, добавлены APIC и SAPIC Добавлено управление потоком. |
9/22/00 | .78 | Добавлен сегмент PCI |
10/25/00 | 0,80 | Исправлен раздел флагов PCI. Добавлены типы терминалов, добавлены сведения о FCR 16450 |
10/1/01 | .95 | Удалены коды языков |
1/11/02 | 1.00 | добавлена обновленная спецификация лицензирования до версии 1.00 |
3/12/14 | 1.01 | Выпущено в рамках обещания сообщества Майкрософт |
6/2/14 | 1.02 | Изменена версия таблицы на 2 и добавлена поддержка дополнительных типов интерфейсов, как определено в спецификации DBG2. |
8/10/15 | 1,03 % | Обновлено уведомление о патенте. |
7/23/2018 | 1,04 | |
05.06.2020 | 1.05 | Измененное форматирование |
9/1/2020 | 1,06 | Изменено форматирование и обновлена ссылка на спецификацию DBG2 |
17.02.2021 | 1.07 | Исправлено неправильное описание в поле Stop Bits. Отмените случайное удаление поля Управления потоком. Измененное форматирование. |
10/7/2021 | 1.08 | Исправление таблицы изменено на 3 и создано поле для параметра "Частота часов UART". Измененное форматирование. |
4/10/2023 | 1,09 | Исправление таблицы изменено на 4. Добавлена поддержка RISC-V и опрашиваемая поддержка в поле Тип прерывания. Добавлены новые поля: Точная скорость передачи данных, NamespaceStringLength, NamespaceStringOffset и NamespaceString[]. |
5/1/2023 | 1,10 | Уточнена формулировка в полях Глобальные системные прерывания и частота часов UART. |