| #ifndef __DEV_Q35_H |
| #define __DEV_Q35_H |
| |
| #include "types.h" // u16 |
| |
| #define PCI_DEVICE_ID_INTEL_Q35_MCH 0x29c0 |
| #define Q35_HOST_BRIDGE_PAM0 0x90 |
| #define Q35_HOST_BRIDGE_SMRAM 0x9d |
| #define Q35_HOST_BRIDGE_PCIEXBAR 0x60 |
| #define Q35_HOST_BRIDGE_PCIEXBAR_SIZE (256 * 1024 * 1024) |
| #define Q35_HOST_BRIDGE_PCIEXBAR_ADDR 0xb0000000 |
| #define Q35_HOST_BRIDGE_PCIEXBAREN ((u64)1) |
| #define Q35_HOST_PCIE_PCI_SEGMENT 0 |
| #define Q35_HOST_PCIE_START_BUS_NUMBER 0 |
| #define Q35_HOST_PCIE_END_BUS_NUMBER 255 |
| |
| #define PCI_DEVICE_ID_INTEL_ICH9_LPC 0x2918 |
| #define ICH9_LPC_PMBASE 0x40 |
| #define ICH9_LPC_PMBASE_RTE 0x1 |
| |
| #define ICH9_LPC_ACPI_CTRL 0x44 |
| #define ICH9_LPC_ACPI_CTRL_ACPI_EN 0x80 |
| #define ICH9_LPC_PIRQA_ROUT 0x60 |
| #define ICH9_LPC_PIRQE_ROUT 0x68 |
| #define ICH9_LPC_PIRQ_ROUT_IRQEN 0x80 |
| #define ICH9_LPC_GEN_PMCON_1 0xa0 |
| #define ICH9_LPC_GEN_PMCON_1_SMI_LOCK (1 << 4) |
| #define ICH9_LPC_PORT_ELCR1 0x4d0 |
| #define ICH9_LPC_PORT_ELCR2 0x4d1 |
| #define ICH9_LPC_RCBA 0xf0 |
| #define ICH9_LPC_RCBA_ADDR 0xfed1c000 |
| #define ICH9_LPC_RCBA_EN 0x1 |
| #define PCI_DEVICE_ID_INTEL_ICH9_SMBUS 0x2930 |
| #define ICH9_SMB_SMB_BASE 0x20 |
| #define ICH9_SMB_HOSTC 0x40 |
| #define ICH9_SMB_HOSTC_HST_EN 0x01 |
| |
| #define ICH9_ACPI_ENABLE 0x2 |
| #define ICH9_ACPI_DISABLE 0x3 |
| |
| /* ICH9 LPC PM I/O registers are 128 ports and 128-aligned */ |
| #define ICH9_PMIO_GPE0_STS 0x20 |
| #define ICH9_PMIO_GPE0_BLK_LEN 0x10 |
| #define ICH9_PMIO_SMI_EN 0x30 |
| #define ICH9_PMIO_SMI_EN_APMC_EN (1 << 5) |
| #define ICH9_PMIO_SMI_EN_GLB_SMI_EN (1 << 0) |
| |
| /* FADT ACPI_ENABLE/ACPI_DISABLE */ |
| #define ICH9_APM_ACPI_ENABLE 0x2 |
| #define ICH9_APM_ACPI_DISABLE 0x3 |
| |
| #endif // dev-q35.h |