Condividi tramite


struttura PEP_ACPI_EXTENDED_ADDRESS (pep_x.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 dell'hardware.

GeneralFlags

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

Bit/i Significato
0 - Flag Consumer/Producer
Se impostato, questo indica che il dispositivo utilizza questa risorsa.
1 - Tipo di decodifica
Se impostato, indica che questo bridge decodifica in modo sottrazione l'indirizzo. Questo vale solo per i bridge 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 - Indirizzo massimo fisso
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 nel membro ResourceFlags . I flag per ogni tipo di risorsa sono descritti nelle tabelle seguenti.

Risorsa memoria (ResourceFlags = 0)

Bit/i 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 è memorizzabile nella cache.

1 - Indica che la memoria è memorizzabile nella cache.

2 - Indica che la memoria è memorizzabile nella cache e supporta la combinazione di scrittura.

3 - La memoria è memorizzabile nella cache e preletturabile.

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 intervallo di indirizzi: questo intervallo è 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 del gestore di memoria del sistema operativo.

2 - Intervallo di indirizzi ACPI: ACPI Recupera memoria. Questo intervallo di 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 utilizzato dal sistema operativo. Questo intervallo deve essere salvato e ripristinato in una sospensione NVS.

5 - Conversione da memoria a I/O
0 - Type-static: questa risorsa è memoria sui lati primario e secondario del bridge.

1 - Conversione del tipo: questa risorsa è memoria sul lato secondario del bridge e 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/i Significato
Da 0 a 1 - Intervallo
0 - Riservato.

1 - Solo intervalli non ISA. Questa bandiera è per ponti su sistemi con più ponti. L'impostazione di questo bit indica che la finestra di memoria specificata in questo descrittore è limitata agli indirizzi I/O 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 bridge completamente configurati tramite lo spazio dei nomi ACPI.

2 - Solo intervalli ISA. Questa bandiera è per ponti su sistemi con più ponti. L'impostazione di questo bit indica che la finestra di memoria specificata in questo descrittore è limitata agli indirizzi I/O ISA 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 bridge 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 - Conversione da I/O a memoria
0 - Type-static: questa risorsa è I/O sui lati primario e secondario del bridge.

1 - Conversione del tipo: questa risorsa è I/O sul lato secondario del bridge e della memoria sul lato primario del bridge.

5 - Traduzione di tipo sparse
Questo bit è significativo solo se è impostata la conversione da I/O a memoria.

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

address = port + TranslationAddress

1 - Conversione sparse: l'indirizzo di memoria sul lato primario di qualsiasi porta di I/O specifica all'interno dell'intervallo secondario è disponibile 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 ai bit da 12 a 21, con quattro byte di porte di 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/i 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 descritto in dettaglio da questa struttura. Per ACPI 3.0, questo valore è 1.

Reserved

Granularity

Maschera di bit che indica quali bit sono stati decodificati.

MinimumAddress

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

MaximumAddress

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

TranslationAddress

Per i bridge che traducono gli indirizzi attraverso il ponte, questo è l'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; in caso contrario, il significato del valore è disponibile nella specifica UEFI nella sezione intitolata GetMemoryMap().

DescriptorName

Nome del descrittore di risorsa.

Requisiti

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