Share via


Tablas de descripción del sistema ACPI

La implementación de la especificación de hardware advanced Configuration and Power Interface (ACPI) no es necesaria en plataformas basadas en SoC, pero gran parte de la especificación de software ACPI es necesaria (o puede ser). ACPI define un mecanismo genérico y extensible de paso de tablas, además de tablas específicas para describir la plataforma al sistema operativo.

Las estructuras y encabezados de tabla, incluidos los campos id. y suma de comprobación, se definen en la especificación ACPI 5.0. Windows utiliza este mecanismo de paso de tablas, además de las tablas específicas que se describen en este artículo.

La idea de estas tablas es permitir que el software genérico admita bloques de propiedad intelectual (IP) estándar que se pueden integrar en varias plataformas de diversas maneras. Con la estrategia de tabla, los atributos de variable de plataforma de una plataforma determinada se proporcionan en una tabla y los usa el software genérico para adaptarse al conjunto específico de bloques IP integrados en la plataforma. Por lo tanto, este software se puede escribir una vez, probarse exhaustivamente y luego optimizarse con el tiempo.

Puntero de descripción del sistema raíz (RSDP)

Windows depende del firmware UEFI para arrancar la plataforma de hardware. Por lo tanto, Windows usará la tabla del sistema EFI para localizar el RSDP, como se describe en la sección 5.2.5.2, "Búsqueda del RSDP en sistemas habilitados para UEFI", de la especificación ACPI 5.0. El firmware de la plataforma rellena la dirección del RSDT o XSDT en el RSDP. (Si se proporcionan ambas direcciones de tabla, Windows prefiere el XSDT).

Tabla de descripción del sistema raíz (RSDT)

RSDT (o XSDT) incluye punteros a cualquier otra tabla de descripción del sistema proporcionada en la plataforma. En concreto, esta tabla contiene punteros a las tablas siguientes:

  • Tabla fija de hardware ACPI (FADT)

  • Tabla de controlador de interrupción múltiple (MADT)

  • Opcionalmente, la tabla de recursos del sistema principal (CSRT)

  • Tabla 2 de puerto de depuración (DBG2)

  • La tabla de recursos gráficos de arranque (BGRT)

  • Tabla de datos de rendimiento de firmware (FPDT)

  • La tabla de descripción del sistema base (DSDT)

  • Opcionalmente, tablas de descripción del sistema adicionales (SSDT)

Tabla de descripción ACPI fija (FADT)

La tabla de hardware ACPI fija (FADT) contiene información importante sobre las diversas características de hardware fijo disponibles en la plataforma. Para admitir plataformas ACPI reducidas por hardware, ACPI 5.0 amplía la definición de tabla FADT de la siguiente manera:

  • El campo Marcas dentro del FADT (desplazamiento 112) tiene dos marcas nuevas:

    HARDWARE_REDUCED_ACPI desplazamiento de bits 20. Indica que el hardware ACPI no está disponible en esta plataforma. Esta marca debe establecerse si no se implementa el modelo de programación de hardware fijo ACPI.

    LOW_POWER_S0_IDLE_CAPABLE Desplazamiento de bits 21. Indica que la plataforma admite estados inactivos de bajo consumo dentro del estado de alimentación del sistema ACPI S0 que son más eficientes de energía que cualquier estado de suspensión Sx. Si se establece esta marca, Windows no intentará suspender y reanudar, pero en su lugar usará los estados inactivos de la plataforma y el modo de espera conectado.

  • El campo FADT Preferred_PM_Profile (desplazamiento de bytes 45) tiene una nueva entrada de rol, "Tablet". Este rol influye en la directiva de administración de energía para la pantalla y la entrada, y afecta a la visualización de teclados en pantalla.

  • El campo "Marcas de arquitectura de arranque de IA-PC" (desplazamiento 109) tiene una nueva marca "CMOS RTC no presente" (desplazamiento de bits 5) para indicar que el CMOS RTC del equipo no está implementado o no existe en las direcciones heredadas. Si se establece esta marca, la plataforma debe implementar el dispositivo ACPI Time y Alarm Control Method. Para obtener más información, consulte la sección Tiempo del método de control y dispositivo de alarma en el artículo Dispositivos definidos por ACPI .

  • Se agregan nuevos campos para admitir la suspensión y reanudación de PC tradicional en plataformas ACPI reducidas por hardware. Windows omite estos campos, pero debe estar presente en la tabla para el cumplimiento.

  • Si se establece la marca HARDWARE_REDUCED_ACPI, el sistema operativo omite todos los campos relacionados con la especificación de hardware ACPI.

Todas las demás configuraciones DE FADT conservan sus significados de la versión anterior, ACPI 4.0. Para obtener más información, vea la sección 5.2.9, "Tabla de descripción ACPI fija (FADT)", de la especificación ACPI 5.0.

Tabla de descripción de APIC múltiple (MADT)

En las implementaciones de PC de ACPI, los descriptores de controlador de interrupción específicos de PC (MADT) y la Tabla de descripción de APIC múltiple (MADT) se usan para describir el modelo de interrupción del sistema. Para las plataformas soC basadas en Arm, ACPI 5.0 agrega descriptores para el controlador de interrupción genérico (GIC) de Arm Holdings y el distribuidor GIC. Windows incluye compatibilidad con la bandeja de entrada para el distribuidor GIC y GIC. Para obtener más información sobre estos descriptores, vea las secciones 5.2.12.14, "Estructura GIC" y 5.2.12.15, "Estructura del distribuidor GIC", de la especificación ACPI 5.0.

Las estructuras del descriptor del controlador de interrupción se muestran inmediatamente después del campo Marcas del MADT. Para las plataformas Arm, se muestra un descriptor para cada GIC, seguido de uno para cada distribuidor de GIC. El GIC correspondiente al procesador de arranque debe ser la primera entrada de la lista de descriptores del controlador de interrupción.

Tabla de descripción del temporizador genérico (GTDT)

Al igual que con el controlador de interrupción, hay una tabla de descripción del temporizador estándar en ACPI. En el caso de los sistemas Arm que usan el temporizador de GIT, el GTDT de ACPI se puede usar para aprovechar la compatibilidad integrada con GIT en Windows.

Tabla de recursos principales del sistema (CSRT)

Los recursos principales del sistema (CSR) son funciones de hardware compartidas, como controladores de interrupción, temporizadores y controladores DMA a los que el sistema operativo debe serializar el acceso. Cuando existen estándares del sector para características como temporizadores y controladores de interrupción (en arquitecturas x86 y Arm), Windows se basa en las tablas estándar descritas en ACPI (por ejemplo, MADT y GTDT). Sin embargo, hasta que el sector converge en los estándares de interfaz del controlador DMA, es necesario admitir algunos dispositivos no estándar en el sistema operativo.

Windows admite el concepto de extensiones HAL para solucionar este problema. Las extensiones HAL son módulos específicos de SoC, implementados como DLL, que adaptan Windows HAL a una interfaz de hardware específica de una clase específica de CSR requerida por Windows. Para identificar y cargar estos módulos CSR no estándar, Microsoft ha definido una nueva tabla ACPI. Esta tabla, que tiene una firma reservada de "CSRT" en la especificación ACPI, debe incluirse en el RSDT si se usan CSR no estándar en la plataforma.

El CSRT describe los grupos de recursos de LASR, donde cada grupo de recursos identifica el hardware de un tipo determinado. Windows usa el identificador proporcionado para el grupo de recursos para buscar y cargar la extensión HAL necesaria para este grupo. Los grupos de recursos dentro del CSRT también pueden contener descriptores de recursos individuales, según el tipo csr y las necesidades de la extensión HAL. El formato y el uso de estos descriptores de recursos se define mediante el escritor de extensiones HAL, que puede hacer que la extensión sea mucho más portátil y, por tanto, admitir varias plataformas SoC diferentes simplemente cambiando los descriptores de recursos contenidos en el CSRT.

Para admitir el mantenimiento de extensiones HAL y administrar los recursos del sistema utilizados por estas extensiones, cada grupo de recursos descrito en csrT también debe representarse como un dispositivo dentro del espacio de nombres ACPI de la plataforma. Para obtener más información, vea la siguiente sección "Tabla de descripción diferenciada del sistema (DSDT)". Los identificadores de dispositivo usados en el encabezado del grupo de recursos deben coincidir con los identificadores usados en el nodo de espacio de nombres del dispositivo. Para obtener más información, consulte la sección Identificación de dispositivos en ACPI del artículo Objetos de espacio de nombres de administración de dispositivos . La existencia de estos dispositivos de espacio de nombres del grupo de recursos permite que el servicio de Windows Update service a la extensión HAL pueda atender la extensión HAL.

Para obtener más información, consulte la especificación Tabla de recursos principales del sistema (CSRT).

Tabla de puertos de depuración 2 (DBG2)

Microsoft requiere un puerto de depuración en todos los sistemas. Para describir los puertos de depuración integrados en una plataforma, Microsoft define la tabla de puertos de depuración 2 (DBG2) para ACPI. Esta tabla especifica uno o varios puertos independientes para fines de depuración. La presencia de la tabla DBG2 indica que la plataforma incluye al menos un puerto de depuración. En esta tabla se incluye información sobre la identidad y la configuración de los puertos de depuración. La tabla se encuentra en la memoria del sistema con otras tablas ACPI y se debe hacer referencia a ella en la tabla ACPI RSDT.

Windows usa el valor De tipo de puerto de la tabla DBG2 para identificar y cargar el transporte del depurador de kernel (KD) (por ejemplo, USB o serie) que requiere el sistema. A continuación, el transporte KD usa el valor de Subtipo de puerto de la tabla DBG2 para identificar la interfaz de hardware utilizada por el puerto. Otra información de la tabla DBG2 especifica la dirección del sistema de los registros de puerto, que usa el módulo de interfaz de hardware para el subtipo especificado. Por último, la tabla DBG2 debe incluir una referencia al nodo de dispositivo en el espacio de nombres ACPI que corresponde al puerto de depuración. Esta referencia permite a Windows administrar conflictos entre el uso de depuración y el uso normal del dispositivo, si existe, y también para integrar el depurador con transiciones de energía.

Para obtener más información, consulte la especificación de la tabla de puertos de depuración de Microsoft 2 (DBG2).

Tabla de descripción del sistema diferenciada (DSDT)

En ACPI, los dispositivos periféricos y las características de hardware del sistema en la plataforma se describen en la Tabla diferenciada de descripción del sistema (DSDT), que se carga en el arranque o en tablas de descripción del sistema secundarias (SSDT), que se cargan en el arranque o se cargan dinámicamente en tiempo de ejecución. En el caso de los SOC, la configuración de la plataforma suele ser estática, por lo que el DSDT podría ser suficiente, aunque también se pueden usar SSDT para mejorar la modularidad de la descripción de la plataforma.

ACPI define un lenguaje interpretado (lenguaje de origen ACPI o ASL) y un entorno de ejecución (máquina virtual ACPI) para describir los dispositivos y características del sistema, y sus controles específicos de la plataforma, de forma independiente del sistema operativo. ASL se usa para definir objetos con nombre en el espacio de nombres ACPI y el compilador asl de Microsoft se usa para generar código de bytes del lenguaje de máquina ACPI (AML) para la transmisión al sistema operativo en DSDT. El controlador ACPI de Windows de la bandeja de entrada, Acpi.sys, implementa la máquina virtual ACPI e interpreta el código de bytes de AML. Un objeto AML podría simplemente devolver información de descripción. O bien, un objeto AML podría ser un método que realiza cálculos o realiza operaciones de E/S. Un método de control es un objeto AML ejecutable que usa los controladores de dispositivo del sistema operativo para realizar operaciones de E/S en el hardware de la plataforma. ASL usa OpRegions para abstraer los distintos espacios de direcciones accesibles en el sistema operativo. Los métodos de control realizan operaciones de E/S como una serie de transferencias hacia y desde campos con nombre declarados en OpRegions.

Para obtener más información sobre OpRegions, vea la sección 5.5.2.4, "Access to Operation Regions", en la especificación ACPI 5.0. Para obtener más información sobre ASL y los métodos de control, vea la sección 5.5, "Espacio de nombres ACPI", en la especificación ACPI 5.0.

Windows proporciona compatibilidad para desarrollar y depurar código ASL. El compilador ASL incluye un desensamblador para permitir que el implementador cargue un espacio de nombres desde un destino de depuración. Después, el compilador ASL se puede usar para volver a aplicar el espacio de nombres al destino para la creación rápida de prototipos y pruebas, sin tener que flashear el firmware del sistema. Además, el depurador de kernel de Windows, junto con una versión activada (CHK) del controlador Acpi.sys, admite el seguimiento y el análisis de la ejecución de AML. Para obtener más información, vea Depurador de AMLI.

Tabla de mitigaciones de seguridad de Windows SMM (WSMT)

La especificación tabla de mitigaciones de seguridad (WSMT) de Windows SMM contiene detalles de una tabla de configuración avanzada e interfaz de energía (ACPI) que se creó para su uso con sistemas operativos Windows que admiten características de seguridad basada en virtualización de Windows (VBS).

Esta información se aplica a los siguientes sistemas operativos:

Windows Server 2016

Windows 10, versión 1607

Para obtener más información, consulte la especificación tabla de mitigaciones de seguridad (WSMT) de Windows SMM (descarga de DOCX).

Tabla de firmware de arranque iSCSI (iBFT)

La tabla iSCSI Boot Firmware (iBF) Table (iBFT) es un bloque de información que contiene varios parámetros que son útiles para el proceso de arranque iSCSI. iBFT es el mecanismo por el que los valores de parámetro iBF se transmiten al sistema operativo. El iBF compila y rellena el iBFT. iBFT está disponible para el sistema operativo Windows para habilitar un flujo coherente del proceso de arranque.

Para obtener más información, consulte la especificación de la tabla de firmware de arranque iSCSI (iBFT) (descarga de DOCX).