Thanks for the reply. Then what is the irq number that is assigned to an io-apic pin? When writing a driver for a PCi device, how can I use the value in pci irq field to find the right irq no. for this device so I can call attach function in driver?
Chen On Jul 28, 2012 10:24 AM, "Udo Steinberg" udo@hypervisor.org wrote:
On Fri, 27 Jul 2012 16:34:12 -0800 Chen Tian (CT) wrote:
CT> I have some basic questions about IO-APIC. In the boot-up message, I can CT> see this: CT> CT> IO-APIC[ 0]: pins 23 CT> PIN[ 0m]: vector=20, del=0, dm=physical, dest=0 (high, edge) CT> PIN[ 1m]: vector=21, del=0, dm=physical, dest=0 (high, edge) CT> PIN[ 2m]: vector=22, del=0, dm=physical, dest=0 (high, edge) CT> CT> I understand this info is from IO-APIC redirection table. My question is CT> what does vector means? Is that the interrupt number CPU is going to see CT> when an interrupt request is sent from a pin? Or it's an irq number CT> assigned to an IO-APIC pin?
It is the interrupt vector that the IOAPIC will send to the CPU when there is interrupt activity on the respective pin. The vector is then used as an index into the IDT, which tells the CPU where the interrupt handler can be found. Which is why it starts at 0x20, because vectors 0x0-0x1f are reserved for exceptions.
Cheers, Udo
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers