FADT/ru

From KolibriOS wiki
Jump to: navigation, search

FADT (Fixed ACPI Description Table) - структура данных (таблица), используемая в программном интерфейсе ACPI. Эта таблица содержит информацию о фиксированных блоках регистров, относящихся к управлению питанием.

Обнаружение FADT

Указатель на FADT содержится в таблице RSDT. Поле Signature в таблице FADT должно содержать сигнатуру 'FACP'.

Структура

Таблица FADT содержит указатели на две дополнительные таблицы (наряду с другой информацией):

  • Таблица FACS (Firmware ACPI Control Structure) по смещению +36 (физический адрес размером в 4 байта)
  • Таблица DSDT (Differentiated System Description Table) по смещению +40 (физический адрес размером в 4 байта)

Структура всей таблицы имеет вид:

struct FADT {
  struct ACPISDTHeader h;
  DWORD FIRMWARE_CTRL;
  DWORD DSDT;
  BYTE Reserved;
  BYTE Preferred_PM_Profile;
  WORD SCI_INT;
  DWORD SMI_CMD;
  BYTE ACPI_ENABLE;
  BYTE ACPI_DISABLE;
  BYTE S4BIOS_REQ;
  BYTE PSTATE_CNT;
  DWORD PM1a_EVT_BLK;
  DWORD PM1b_EVT_BLK;
  DWORD PM1a_CNT_BLK;
  DWORD PM1b_CNT_BLK;
  DWORD PM2_CNT_BLK;
  DWORD PM_TMR_BLK;
  DWORD GPE0_BLK;
  DWORD GPE1_BLK;
  BYTE PM1_EVT_LEN;
  BYTE PM1_CNT_LEN;
  BYTE PM2_CNT_LEN;
  BYTE PM_TMR_LEN;
  BYTE GPE0_BLK_LEN;
  BYTE GPE1_BLK_LEN;
  BYTE GPE1_BASE;
  BYTE CST_CNT;
  WORD P_LVL2_LAT;
  WORD P_LVL3_LAT;
  WORD FLUSH_SIZE;
  WORD FLUSH_STRIDE;
  BYTE DUTY_OFFSET;
  BYTE DUTY_WIDTH;
  BYTE DAY_ALRM;
  BYTE MON_ALRM;
  BYTE CENTURY;
  WORD IAPC_BOOT_ARCH;
  BYTE Reserved;
  DWORD Flags;
  struct GenericAddressStructure RESET_REG; //Размер структуры GenericAddressStructure = 12 байт.
  BYTE RESET_VALUE;
  BYTE Reserved[3];
  DWORD X_FIRMWARE_CTRL[2];
  DWORD X_DSDT[2];
  struct GenericAddressStructure X_PM1a_EVT_BLK; 
  struct GenericAddressStructure X_PM1b_EVT_BLK;
  struct GenericAddressStructure X_PM1a_CNT_BLK;
  struct GenericAddressStructure X_PM1b_CNT_BLK;
  struct GenericAddressStructure X_PM2_CNT_BLK;
  struct GenericAddressStructure X_PM_TMR_BLK;
  struct GenericAddressStructure X_GPE0_BLK;
  struct GenericAddressStructure X_GPE1_BLK;
}

Размер всей таблицы FADT 244 байта.