marcrew wrote:
1. is it possible to change PCI IRQ?
Sometimes, yes.
If a device can be routed to different IRQs, you can enumerate them using the ACPI _PRS method and select one using the ACPI _SRS method. Note that you must first call _PIC to specify whether you're using APIC or legacy PIC.
If you're not using ACPI or APIC, you can use PCI BIOS calls to route PCI IRQs. There's also an optional PCI IRQ Routing Table in the BIOS ROM that may be useful as a complement to the PCI BIOS calls.
marcrew wrote:
(I guess IRQ6 is 0x26)
Don't guess. Also, if you choose an interrupt vector that's already assigned to a different interrupt controller, you'll have to examine the in-service register to determine which interrupt controller received the interrupt request.
marcrew wrote:
Does the Local APIC is not enabled under old PIC mode?
Maybe!
marcrew wrote:
if it is true, how to enable it?
There are two bits that must be set to enable the APIC. One is in IA32_APIC_BASE_MSR, the other is in the APIC's own SVR. However, firmware does not expect the APIC and the legacy PICs to be used at the same time, so firmware may misbehave if you don't also disable the legacy PICs, and firmware tables that describe interrupt routing may not tell you how the legacy PICs can be routed through the APIC.