Condividi tramite


PEP_ACPI_EXTENDED_ADDRESS struttura (pepfx.h)

La struttura PEP_ACPI_EXTENDED_ADDRESS viene usata per segnalare l'utilizzo delle risorse nello spazio indirizzi, ad esempio memoria e I/O.

Sintassi

typedef struct _PEP_ACPI_EXTENDED_ADDRESS {
  PEP_ACPI_RESOURCE_TYPE  Type;
  PEP_ACPI_RESOURCE_FLAGS Flags;
  UCHAR                   ResourceFlags;
  UCHAR                   GeneralFlags;
  UCHAR                   TypeSpecificFlags;
  UCHAR                   RevisionId;
  UCHAR                   Reserved;
  ULONGLONG               Granularity;
  ULONGLONG               MinimumAddress;
  ULONGLONG               MaximumAddress;
  ULONGLONG               TranslationAddress;
  ULONGLONG               AddressLength;
  ULONGLONG               TypeAttribute;
  PUNICODE_STRING         DescriptorName;
} PEP_ACPI_EXTENDED_ADDRESS, *PPEP_ACPI_EXTENDED_ADDRESS;

Members

Type

Valore di enumerazione PEP_ACPI_RESOURCE_TYPE che descrive questa risorsa.

Flags

Struttura PEP_ACPI_RESOURCE_FLAGS che descrive questa risorsa.

ResourceFlags

Indica il tipo di risorsa descritta da questa struttura.

Valore Significato
0
Indica che questa risorsa è un intervallo di memoria.
1
Indica che questa risorsa è un intervallo di I/O.
2
Indica che questa risorsa è un intervallo di numeri del bus.
3-191
Questi valori sono riservati per l'uso futuro.
192-255
Questi valori sono riservati per l'uso da parte del fornitore hardware.

GeneralFlags

Valore contenente i flag di bit comuni a tutti i tipi di risorse.

Bit(s) Significato
0 - Flag Consumer/Producer
Se impostato, questo indica che il dispositivo usa questa risorsa.
1 - Tipo di decodifica
Se impostato, indica che questo bridge decodifica in modo sottrazione l'indirizzo. Questo vale solo per i ponti di primo livello.

Se non è impostato, indica che questo bridge decodifica positivamente questo indirizzo.

2 - Indirizzo minimo fisso
Se impostato, indica che l'indirizzo minimo è fisso.
3 - Numero massimo di indirizzi fissi
Se impostato, indica che l'indirizzo massimo è fisso.
Da 4 a 7 - Riservato
Questi bit sono riservati e devono essere impostati su zero.

TypeSpecificFlags

Il valore di questo membro dipende dal valore del membro ResourceFlags . I flag per ogni tipo di risorsa sono descritti nelle tabelle seguenti.

Risorsa memoria (ResourceFlags = 0)

Bit(s) Significato
0 - Stato scrittura
Se impostato, indica che questo intervallo di memoria è disponibile per la lettura e la scrittura. In caso contrario, questo indica che questo intervallo di memoria è di sola lettura.
Da 1 a 2 - Attributi di memoria (MEM)
0 : indica che la memoria non è memorizzata nella cache.

1 - Indica che la memoria è memorizzata nella cache.

2 : indica che la memoria è memorizzata nella cache e supporta la combinazione di scrittura.

3 : la memoria è memorizzata nella cache e prefetchable.

Da 3 a 4 - Attributi di memoria (MTP)
Questi bit vengono definiti solo se questa risorsa di memoria descrive la RAM di sistema.

0 - Memoria dell'intervallo di indirizzi: questa gamma è disponibile ram utilizzabile dal sistema operativo.

1 - Intervallo di indirizzi riservato: questo intervallo di indirizzi è in uso o riservato dal sistema e non deve essere incluso nel pool di memoria allocabile della gestione memoria del sistema operativo.

2 - Intervallo di indirizzi ACPI: ACPI Recupera memoria. Questa gamma è disponibile ram utilizzabile dal sistema operativo dopo aver letto le tabelle ACPI.

3 - Intervallo di indirizzi NVS: memoria NVS ACPI. Questo intervallo di indirizzi è in uso o riservato dal sistema e non deve essere usato dal sistema operativo. Questo intervallo deve essere salvato e ripristinato in una sospensione NVS.

5 - Memoria per la traduzione di I/O
0 - Tipo statico: questa risorsa è memoria sui lati primari e secondari del bridge.

1 - Traduzione dei tipi: questa risorsa è memoria sul lato secondario del bridge e dell'I/O sul lato primario del bridge.

Da 6 a 7 - Riservato
Questi bit sono riservati e devono essere impostati su zero.
 

Risorsa I/O (ResourceFlags = 1)

Bit(s) Significato
Da 0 a 1 - Intervallo
0 - Riservato.

1 - Solo intervalli NON ISA. Questo flag è destinato ai ponti nei sistemi con più ponti. L'impostazione di questo bit indica che la finestra di memoria specificata in questo descrittore è limitata agli indirizzi IO non ISA che rientrano nella finestra specificata. Gli intervalli I/O non ISA sono: n100-n3FF, n500-n7FF, n900-nBFF, nD00-nFFF. Questo bit può essere impostato solo per i ponti completamente configurati tramite lo spazio dei nomi ACPI.

2 - Solo intervalli ISA. Questo flag è destinato ai ponti nei sistemi con più ponti. L'impostazione di questo bit indica che la finestra di memoria specificata in questo descrittore è limitata agli indirizzi ISA IO che rientrano nella finestra specificata. Gli intervalli ISA IO sono: n000-n0FF, n400-n4FF, n800-n8FF, nC00-nCFF. Questo bit può essere impostato solo per i ponti completamente configurati tramite lo spazio dei nomi ACPI.

3 - La finestra di memoria copre l'intero intervallo

Da 2 a 3 - Riservato
Questi bit sono riservati e devono essere impostati su zero.
4 - Traduzione I/O alla memoria
0 - Tipo statico: questa risorsa è I/O sui lati primari e secondari del bridge.

1 - Traduzione dei tipi: questa risorsa è I/O sul lato secondario del bridge e della memoria sul lato primario del bridge.

5 - Traduzione sparse
Questo bit è significativo solo se è impostato bit 4 (I/O per la traduzione della memoria).

0 - Traduzione densa: è possibile trovare l'indirizzo di memoria lato primario di qualsiasi porta I/O specifica all'interno dell'intervallo secondario usando la funzione seguente.

address = port + TranslationAddress

1 - Traduzione sparse: l'indirizzo di memoria lato primario di qualsiasi porta I/O specifica all'interno dell'intervallo secondario può essere trovato usando la funzione seguente.

address = ((porta & 0xFFFc) 10) << || (porta & 0xFFF)) + TranslationAddress

Nell'indirizzo usato per accedere alla porta di I/O, i bit da 2 a 11 devono essere identici a bit da 12 a 21, questo fornisce quattro byte di porte I/O in ogni pagina di 4 KB.

Da 6 a 7 - Riservato
Questi bit sono riservati e devono essere impostati su zero.
 

Risorsa intervallo di numeri bus (ResourceFlags = 2)

Bit(s) Significato
Da 0 a 7 - Riservato
Questi bit sono riservati e devono essere impostati su zero.

RevisionId

Indica la revisione del descrittore dello spazio indirizzi esteso dettagliato da questa struttura. Per ACPI 3.0, questo valore è 1.

Reserved

Granularity

Maschera bit che indica quali bit sono stati decodificati.

MinimumAddress

Indirizzo iniziale minimo. Per i ponti che traducono gli indirizzi, si tratta dello spazio indirizzi sul lato secondario del ponte.

MaximumAddress

Indirizzo iniziale massimo. Per i ponti che traducono gli indirizzi, si tratta dello spazio indirizzi sul lato secondario del ponte.

TranslationAddress

Per i ponti che traducono gli indirizzi attraverso il ponte, si tratta dell'indirizzo sul lato primario.

AddressLength

Lunghezza dell'indirizzo.

TypeAttribute

Indica gli attributi specifici del tipo di risorsa specificato nel membro ResourceFlags . Se ResourceFlags è zero, questo valore è zero, altrimenti il significato del valore può essere trovato nella specifica UEFI nella sezione denominata GetMemoryMap().

DescriptorName

Nome del descrittore di questa risorsa.

Requisiti

Requisito Valore
Client minimo supportato Supportato a partire da Windows 10.
Intestazione pepfx.h (includere Pep_x.h)