[LinuxBIOS] IRQ question

Feng, Libo Libo.Feng at amd.com
Thu Nov 22 08:17:52 CET 2007


 
I was a telecommunication engineer for ten years. It is my first year to work in computer field. The computer has greatly changed since I left school. Many thins are very interesting. Below is something I was once puzzled, who would check it is correct or not? 
Thank you bari, the link is very useful.
=====================================================================
There are two mappings in computer system: 1. the mapping between the device interrupt pins and the IRQs of APIC, and MPTABLE defines the mapping. 2. the mapping between IRQs of APIC and software vectors with x86, and the IOAPIC redirection table registers define the mapping. At beginning, I was confused by the Linux function:
 
int request_irq( unsigned int irq, 
                           void(*handler)(int, void*, struct pt_regs*), 
                           unsigned long irqflags,
                           const char *devname,
                           void * dev_id)
                      
The first input parameter irq, I thought it was a software vector. When I was in University, I could set any software interrupt under DOS with BIOS INT or directly writing the first 256*4 byte interrupt table. So the idea led me to a wrong direction. The file io_apic.c under arch/i386/kernel tells me all secret: the function assign_irq_vector(irq), as its name, assigns a vector to an IRQ of APIC.
======================================================================

Best Regards

??? Feng Libo @ AMD  Ext: 20906
Mobile Phone: 13683249071
Office Phone: 0086-010-62801406

-----Original Message-----
From: linuxbios-bounces at linuxbios.org [mailto:linuxbios-bounces at linuxbios.org] On Behalf Of bari
Sent: Saturday, November 17, 2007 11:40 PM
To: FengLibo
Cc: linuxbios at linuxbios.org
Subject: Re: [LinuxBIOS] IRQ question

FengLibo wrote:

> A simple question: when talking about IRQ, you mean one of the 256 interrupt vectors within x86, or one of the pins of APIC, or one of the pins of 8259? I always got confused by it.

Yes! I see the same term "IRQ" used for both hardware and software interrupts all the time. Context is the only key at times as to which interrupt the writer is referring to.

Software Interrupt =  256 interrupt vectors within x86 Hardware Interrupt = "IRQ" signals on APIC, 8259 or other hardware interrupt controller

http://en.wikipedia.org/wiki/Interrupt

> Another questiong about IRQ: The interrupt line register in PCI 
> configurationn space also contains an IRQ number, for example, my 
> ethernet card is IRQ 10, the IRQ number is the interrupter vector in 
> x86 or the physical signal in APIC or PIC?

PCI Hardware Interrupt

http://tldp.org/HOWTO/Plug-and-Play-HOWTO-7.html
http://en.wikipedia.org/wiki/Peripheral_Component_Interconnect#Interrupts

-Bari



--
linuxbios mailing list
linuxbios at linuxbios.org
http://www.linuxbios.org/mailman/listinfo/linuxbios








More information about the coreboot mailing list