Структура PEP_ACPI_EXTENDED_ADDRESS используется для создания отчетов об использовании ресурсов в адресном пространстве, например памяти и операций ввода-вывода.
Указывает тип ресурса, который описывает эта структура.
Значение
Значение
0
Указывает, что этот ресурс является диапазоном памяти.
1
Указывает, что этот ресурс является диапазоном операций ввода-вывода.
2
Указывает, что этот ресурс является диапазоном номеров шины.
3-191
Эти значения зарезервированы для использования в будущем.
192-255
Эти значения зарезервированы для использования поставщиком оборудования.
GeneralFlags
Значение типа , содержащее битовые флаги, общие для всех типов ресурсов.
Биты
Значение
0 — флаг потребителя/производителя
Если этот параметр задан, это означает, что устройство использует этот ресурс.
1. Тип декодирования
Если задано значение , указывает, что этот мост субтрактивно декодирует адрес. Это относится только к мостам верхнего уровня.
Если значение не задано, указывает, что этот мост декодирует этот адрес положительно.
2 — минимальный фиксированный адрес
Если задано значение , указывает, что минимальный адрес является фиксированным.
3 . Максимальный адрес фиксированный
Если задано значение , указывает, что максимальный адрес фиксированный.
От 4 до 7 — зарезервировано
Эти биты зарезервированы и должны иметь нулевое значение.
TypeSpecificFlags
Значение этого элемента зависит от значения в элементе ResourceFlags . Флаги для каждого типа ресурса описаны в таблицах ниже.
Ресурс памяти (ResourceFlags = 0)
Биты
Значение
0 — состояние записи
Если задано значение , указывает, что этот диапазон памяти доступен для чтения и записи. В противном случае это означает, что этот диапазон памяти доступен только для чтения.
От 1 до 2 — атрибуты памяти (MEM)
0 — указывает, что память не кэшируется.
1 — указывает, что память кэшируется.
2 — указывает, что память кэшируется и поддерживает объединение операций записи.
3 — память кэшируется и доступна для предварительной выборки.
От 3 до 4 — атрибуты памяти (MTP)
Эти биты определяются только в том случае, если этот ресурс памяти описывает системный ОЗУ.
0 — память диапазона адресов. Этот диапазон доступен для использования операционной системой.
1 . Диапазон адресов зарезервирован. Этот диапазон адресов используется или зарезервирован системой и не должен включаться в пул памяти, который можно выделить в диспетчере памяти операционной системы.
2 . AcPI диапазона адресов: ACPI Reclaim Memory. Этот диапазон является доступным ОЗУ, который ос может использовать после считывания таблиц ACPI.
3 . Диапазон адресов NVS: ACPI NVS Memory. Этот диапазон адресов используется или зарезервирован системой и не должен использоваться операционной системой. Этот диапазон необходимо сохранить и восстановить в спящем режиме NVS.
5. Преобразование операций ввода-вывода в память
0 — тип статический. Этот ресурс является памятью на основной и вторичной сторонах моста.
1 . Преобразование типов. Этот ресурс является памятью на вторичной стороне моста и операций ввода-вывода на основной стороне моста.
От 6 до 7 — зарезервировано
Эти биты зарезервированы и должны иметь нулевое значение.
Ресурс ввода-вывода (ResourceFlags = 1)
Биты
Значение
От 0 до 1 — диапазон
0 — зарезервировано.
1 — только диапазоны, отличные от ISA. Этот флаг предназначен для мостов в системах с несколькими мостами. Установка этого бита означает, что окно памяти, указанное в этом дескрипторе, ограничено адресами ввода-вывода, не относящихся к ISA, которые входят в указанное окно. Диапазоны операций ввода-вывода, отличные от ISA: n100-n3FF, n500-n7FF, n900-nBFF, nD00-nFFF. Этот бит можно задать только для мостов, полностью настроенных с помощью пространства имен ACPI.
2 — только диапазоны ISA. Этот флаг предназначен для мостов в системах с несколькими мостами. Установка этого бита означает, что окно памяти, указанное в этом дескрипторе, ограничено адресами ввода-вывода ISA, которые попадают в указанное окно. Диапазоны операций ввода-вывода ISA: n000-n0FF, n400-n4FF, n800-n8FF, nC00-nCFF. Этот бит можно задать только для мостов, полностью настроенных с помощью пространства имен ACPI.
3 . Окно памяти охватывает весь диапазон
От 2 до 3 — зарезервировано
Эти биты зарезервированы и должны иметь нулевое значение.
4. Преобразование операций ввода-вывода в память
0 — тип статический. Этот ресурс является операцией ввода-вывода на основной и вторичной сторонах моста.
1 . Преобразование типов. Это ресурс ввода-вывода на вторичной стороне моста и память на основной стороне моста.
5. Разреженный перевод
Этот бит имеет смысл только в том случае, если задан бит 4 (преобразование операций ввода-вывода в память).
0 — плотное преобразование. Адрес основной памяти для любого конкретного порта ввода-вывода в дополнительном диапазоне можно найти с помощью следующей функции.
address = port + TranslationAddress
1 — разреженное преобразование. Адрес основной памяти для любого конкретного порта ввода-вывода в дополнительном диапазоне можно найти с помощью следующей функции.
В адресе, используемом для доступа к порту ввода-вывода, биты от 2 до 11 должны быть идентичны битам от 12 до 21. Это дает четыре байта портов ввода-вывода на каждой странице размером 4 КБ.
От 6 до 7 — зарезервировано
Эти биты зарезервированы и должны иметь нулевое значение.
Ресурс диапазона номеров шины (ResourceFlags = 2)
Биты
Значение
От 0 до 7 — зарезервировано
Эти биты зарезервированы и должны иметь нулевое значение.
RevisionId
Указывает редакцию расширенного дескриптора адресного пространства, подробно описанного этой структурой. Для ACPI 3.0 это значение равно 1.
Reserved
Granularity
Битовая маска, указывающая, какие биты были декодированы.
MinimumAddress
Минимальный начальный адрес. Для мостов, которые преобразуют адреса, это адресное пространство на вторичной стороне моста.
MaximumAddress
Максимальный начальный адрес. Для мостов, которые преобразуют адреса, это адресное пространство на вторичной стороне моста.
TranslationAddress
Для мостов, которые переводят адреса через мост, это адрес на основной стороне.
AddressLength
Длина адреса.
TypeAttribute
Указывает атрибуты, относящиеся к типу ресурса, указанному в элементе ResourceFlags . Если ResourceFlags равно нулю, это значение равно нулю, в противном случае значение значения можно найти в спецификации UEFI в разделе GetMemoryMap().