The Q1900B-ITX board has problems booting FreeBSD, similar to other Baytrail-based systems. Its ACPI table is buggy.
Following are examples of incorrect parameters in MADT:
1)
Type=Local APIC NMI
ACPI CPU=1
LINT Pin=60
Flags={Polarity=active-hi, Trigger=0x2} <-- trigger value is incorrect. 2 is reserved
Assuming that TRIGGER flag for ACPI CPU 1 is LEVEL, the value should be (3<<2) or (number 2 shifted left 3 bits). The value 2 is for INTR_TRIGGER_LEVEL, not ACPI_MADT_TRIGGER_LEVEL.
Because of this, interrupt_trigger() panics with "Bogus Interrupt Trigger Mode".
2)
Type=Local APIC NMI
ACPI CPU=2
LINT Pin=61
Flags={Polarity=0x2, Trigger=level} <-- polarity value is incorrect. 2 is reserved
Assuming that the POLARITY flag is LOW for ACPI CPU 2, the value is 3. The value 2 is for INTR_POLARITY_LOW, not ACPI_MADT_POLARITY_ACTIVE_LOW.
This causes interrupt_polarity() to panic with "Bogus Interrupt Polarity".
Please fix these problems with the BIOS!
Following are examples of incorrect parameters in MADT:
1)
Type=Local APIC NMI
ACPI CPU=1
LINT Pin=60
Flags={Polarity=active-hi, Trigger=0x2} <-- trigger value is incorrect. 2 is reserved
Assuming that TRIGGER flag for ACPI CPU 1 is LEVEL, the value should be (3<<2) or (number 2 shifted left 3 bits). The value 2 is for INTR_TRIGGER_LEVEL, not ACPI_MADT_TRIGGER_LEVEL.
Because of this, interrupt_trigger() panics with "Bogus Interrupt Trigger Mode".
2)
Type=Local APIC NMI
ACPI CPU=2
LINT Pin=61
Flags={Polarity=0x2, Trigger=level} <-- polarity value is incorrect. 2 is reserved
Assuming that the POLARITY flag is LOW for ACPI CPU 2, the value is 3. The value 2 is for INTR_POLARITY_LOW, not ACPI_MADT_POLARITY_ACTIVE_LOW.
This causes interrupt_polarity() to panic with "Bogus Interrupt Polarity".
Please fix these problems with the BIOS!