On 4/14/10 5:54 AM, Keith Hui wrote:
irq 9: nobody cared (try booting with the "irqpoll" option)
This is caused by setting fadt->sci_int without an irqoverride source in the MADT.
current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *) current, 0, 9, 9, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_HIGH);
Generally your fadt looks a bit off, still: + fadt->sci_int = 9; // APM_CNT This is not APM control but the sci interrupt + fadt->smi_cmd = 0; This should be APM_CNT + fadt->acpi_enable = 0xa1; // ACPI_ENABLE + fadt->acpi_disable = 0xa0; // ACPI_DISABLE These two should be zero unless you have an SMM handler + fadt->s4bios_req = 0x0; + fadt->pstate_cnt = 0x0;
With SMM it should look like this, assuming the APM_CNT port is 0xb2 on the 82371 too. (It is on the ICHx chips)
#define APM_CNT 0xb2 #define CST_CONTROL 0x85 #define PST_CONTROL 0x80 #define ACPI_DISABLE 0x1e #define ACPI_ENABLE 0xe1
fadt->sci_int = 0x9; fadt->smi_cmd = APM_CNT; fadt->acpi_enable = ACPI_ENABLE; fadt->acpi_disable = ACPI_DISABLE; fadt->s4bios_req = 0x0; fadt->pstate_cnt = PST_CONTROL; ... fadt->cst_cnt = CST_CONTROL;
HTH, Stefan