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!