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)