This relies on several data structures obtained from the BIOS/UEFI firmware to correctly intialize the system's hardware. One of these tables is the "MP Floating Pointer Table" which describes the PCI/PCIe interrupt routing for the APICs used.
The table in the fitlet2's BIOS (date 2018-09-17) seems to be faulty insofar as it contains entries that use an invalid APIC.
This is a textual dump of the table, created with a tool supplied by the RTOS' vendor:
Code: Select all
> Found MP Floating Pointer Structure at 401036E0
> Conf Table at: 00000000
> Length : 0
> Revision : 0
> ConfType : 0
> IMCR : not present
>
> Table Header at: 401036F0
> Length : 0
> Revision : 0
> OEMID :
> Product :
> OEM Table Addr : 00000000
> Entry Count : 39
> Local APIC Addr: FEE00000
>
> Bus 0: PCI
> Bus 99: PCI
> Bus 1: PCI
> Bus 2: PCI
> Bus 100: ISA
> IOAPIC, Id:32 at FEC00000, Flags: 01
> CPU with APIC Id: 0, Flags: 01, Sig: 00000000, Features: 00000200
> CPU with APIC Id: 2, Flags: 01, Sig: 00000000, Features: 00000200
> CPU with APIC Id: 4, Flags: 01, Sig: 00000000, Features: 00000200
> CPU with APIC Id: 6, Flags: 01, Sig: 00000000, Features: 00000200
> I/O Int 32: 2, Vectored, Bus 100, IRQ 0, Flags: [Edge, Active High]
> I/O Int 32: 9, Vectored, Bus 100, IRQ 9, Flags: [Level, Active Low]
> I/O Int 32:19, Vectored, Bus 0, Dev 2, Int A, Flags: [Level, Active Low]
> I/O Int 33: 1, Vectored, Bus 0, Dev 14, Int A, Flags: [Level, Active Low]
> I/O Int 32:20, Vectored, Bus 0, Dev 15, Int A, Flags: [Level, Active Low]
> I/O Int 32:19, Vectored, Bus 0, Dev 18, Int A, Flags: [Level, Active Low]
> I/O Int 32:22, Vectored, Bus 0, Dev 19, Int A, Flags: [Level, Active Low]
> I/O Int 32:23, Vectored, Bus 0, Dev 19, Int B, Flags: [Level, Active Low]
> I/O Int 32:20, Vectored, Bus 0, Dev 19, Int C, Flags: [Level, Active Low]
> I/O Int 32:21, Vectored, Bus 0, Dev 19, Int D, Flags: [Level, Active Low]
> I/O Int 32:17, Vectored, Bus 0, Dev 21, Int A, Flags: [Level, Active Low]
> I/O Int 33: 3, Vectored, Bus 0, Dev 22, Int A, Flags: [Level, Active Low]
> I/O Int 33: 4, Vectored, Bus 0, Dev 22, Int B, Flags: [Level, Active Low]
> I/O Int 33: 5, Vectored, Bus 0, Dev 22, Int C, Flags: [Level, Active Low]
> I/O Int 33: 6, Vectored, Bus 0, Dev 22, Int D, Flags: [Level, Active Low]
> I/O Int 33: 7, Vectored, Bus 0, Dev 23, Int A, Flags: [Level, Active Low]
> I/O Int 33: 8, Vectored, Bus 0, Dev 23, Int B, Flags: [Level, Active Low]
> I/O Int 33: 9, Vectored, Bus 0, Dev 23, Int C, Flags: [Level, Active Low]
> I/O Int 33:10, Vectored, Bus 0, Dev 23, Int D, Flags: [Level, Active Low]
> I/O Int 32: 4, Vectored, Bus 0, Dev 24, Int A, Flags: [Level, Active Low]
> I/O Int 32: 5, Vectored, Bus 0, Dev 24, Int B, Flags: [Level, Active Low]
> I/O Int 32: 6, Vectored, Bus 0, Dev 24, Int C, Flags: [Level, Active Low]
> I/O Int 32: 7, Vectored, Bus 0, Dev 24, Int D, Flags: [Level, Active Low]
> I/O Int 32: 3, Vectored, Bus 0, Dev 27, Int A, Flags: [Level, Active Low]
> I/O Int 33:15, Vectored, Bus 0, Dev 28, Int A, Flags: [Level, Active Low]
> I/O Int 33:18, Vectored, Bus 0, Dev 30, Int A, Flags: [Level, Active Low]
> I/O Int 32:20, Vectored, Bus 0, Dev 31, Int A, Flags: [Level, Active Low]
> I/O Int 32:23, Vectored, Bus 1, Dev 0, Int A, Flags: [Level, Active Low]
> I/O Int 32:20, Vectored, Bus 2, Dev 0, Int A, Flags: [Level, Active Low]
Though it is possible to manually construct a replacement to this table, this is quite an error-prone process, and has not been necessary on several other systems I'm running my application on.
These systems come with correct ACPI tables, so the problem seems not to be a generic problem of the RTOS.
These systems are the Intel NUC DN2820FYKH (Celeron N2830), the Gigabyte BRIX BACE3000 (Celeron N3000) and the Aaeon UpBoard (Atom x5-z8350).
Apparently the "MP Floating Pointer Table" might be not the only problem, there's also something very strange going on with the system's timers, but that might well be related to my manual replacement of the table.
Is there any hope for an updated BIOS/UEFI firmware that contains corrected APCI tables?
Thanks for any information