I have disabled PIC and enabled LAPIC and I/O APIC for my OS on physical machine.
Previously, with PIC, I had IRQ0 for PIT and IRQ1 for keyboard. Now during the I/O APIC initialization, first I assumed all ISA IRQs are remapped with the same numbering to I/O APIC, but only keyboard interrupts work and there is no PIT timer signal. Then to make sure that IRQ0 is mapped to I/O APIC INTIN0 or not, I parsed the MP config table and found all the information for I/O Interrupt Assignment Entries, as partly shown in the enclosed image.
Here is the issue:
There are two entries labeled as IRQ0 (shown with arrow). One has interrupt type ExtINT and mapped to INTIN0 and the second one goes to INTIN2 with type INT.
It does not matter if I remap the vectors during my I/O APIC initialization as:
Code: Select all
remap_vect(0, (0 + 32), EDGE, HIGH);
Code: Select all
remap_vect(0, (2 + 32), EDGE, HIGH);
notes:
1-my system shows no ACPI table labeled as MADT
2-I would not be interested to work with LAPIC timer
image: Best.
Iman.