mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-19 12:30:32 +00:00
109 lines
No EOL
6 KiB
HTML
109 lines
No EOL
6 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||
<html>
|
||
<head>
|
||
<title></title>
|
||
</head>
|
||
<body>
|
||
|
||
<ul>
|
||
<li>IRQs can interrupt each other. But of same level?</li>
|
||
<li>IRQs can stack up - if same IRQ they can get "lost" (<a
|
||
href="http://www.gossamer-threads.com/lists/linux/kernel/494604">Link</a>).
|
||
If of different level, will queue up.. lower priority queues up, higher
|
||
intterupts unless masked.</li>
|
||
</ul>
|
||
|
||
IRQs are handled by priority and are queued.<h3>
|
||
Questions</h3>
|
||
<p>
|
||
Higher priority IRQs can happen while lower ones are in progress</p>
|
||
<p>
|
||
Can a signle IRQ happen while one is already in progress? ie Int 2 happen while
|
||
Int 2 is already in progress? If so does it call again, queue it? or lose it?</p>
|
||
<p>
|
||
MtW: This depends on us: we can do this, but can have issues with debugger etc.
|
||
Right now, we dont allow it.</p>
|
||
<p>
|
||
</p>
|
||
<p>
|
||
One thing to keep in mind: the Hardware IRQ's are mapped to interrupts 0x20-0x2F</p>
|
||
<h3>
|
||
Links</h3>
|
||
<p>
|
||
<a href="http://en.wikipedia.org/wiki/Interrupt">
|
||
http://en.wikipedia.org/wiki/Interrupt</a><br />
|
||
<a href="http://en.wikipedia.org/wiki/Interrupt_request">
|
||
http://en.wikipedia.org/wiki/Interrupt_request</a><br />
|
||
<a href="http://en.wikipedia.org/wiki/IF_(x86_flag)/">
|
||
http://en.wikipedia.org/wiki/IF_%28x86_flag%29\</a><br />
|
||
<a href="http://wiki.osdev.org/IRQ">http://wiki.osdev.org/IRQ</a><br />
|
||
<a href="http://www.xml.com/ldd/chapter/book/ch09.html">
|
||
http://www.xml.com/ldd/chapter/book/ch09.html</a><br />
|
||
</p>
|
||
<p>
|
||
Interrupt Descriptor Table -
|
||
<a href="http://en.wikipedia.org/wiki/Interrupt_descriptor_table">
|
||
http://en.wikipedia.org/wiki/Interrupt_descriptor_table</a><br />
|
||
Interrupt Threads - <a href="http://en.wikipedia.org/wiki/Interrupt_handler">
|
||
http://en.wikipedia.org/wiki/Interrupt_handler</a><br />
|
||
Efficiency <a href="http://lwn.net/Articles/395783/">
|
||
http://lwn.net/Articles/395783/</a></p>
|
||
<h3>
|
||
<span id="Master_PIC" class="mw-headline">Master PIC</span></h3>
|
||
<ul>
|
||
<li>IRQ 0 — system timer (cannot be changed);</li>
|
||
<li>IRQ 1 — <a class="mw-redirect"
|
||
href="http://en.wikipedia.org/wiki/Computer_keyboard" title="Computer keyboard">
|
||
keyboard</a> (cannot be changed);</li>
|
||
<li>IRQ 2 — cascaded signals from IRQs 8–15 (<i>any devices configured to use IRQ 2
|
||
will actually be using IRQ 9</i>);</li>
|
||
<li>IRQ 3 — <a href="http://en.wikipedia.org/wiki/Serial_port" title="Serial port">
|
||
serial port</a> 2 or 4;</li>
|
||
<li>IRQ 4 — serial port 1 or 3;</li>
|
||
<li>IRQ 5 — <a href="http://en.wikipedia.org/wiki/LPT" title="LPT">LPT</a> port 2 or
|
||
<a href="http://en.wikipedia.org/wiki/Sound_card" title="Sound card">sound card</a>;</li>
|
||
<li>IRQ 6 — <a href="http://en.wikipedia.org/wiki/Floppy_disk_controller"
|
||
title="Floppy disk controller">floppy disk controller</a>;</li>
|
||
<li>IRQ 7 — <a href="http://en.wikipedia.org/wiki/LPT" title="LPT">LPT</a> port 1 or
|
||
sound card (8-bit <a href="http://en.wikipedia.org/wiki/Sound_Blaster"
|
||
title="Sound Blaster">Sound Blaster</a> and compatibles). - Special note on
|
||
IRQ7, Spurious IRQ
|
||
<a href="http://en.wikipedia.org/wiki/Intel_8259#Spurious_Interrupts">
|
||
http://en.wikipedia.org/wiki/Intel_8259#Spurious_Interrupts</a></li>
|
||
</ul>
|
||
<h3>
|
||
<span id="Slave_PIC" class="mw-headline">Slave PIC</span></h3>
|
||
<ul>
|
||
<li>IRQ 8 — <a href="http://en.wikipedia.org/wiki/Real-time_clock"
|
||
title="Real-time clock">real-time clock</a>;</li>
|
||
<li>IRQ 9 — free / open interrupt / available /
|
||
<a href="http://en.wikipedia.org/wiki/SCSI" title="SCSI">SCSI</a> (<i>any
|
||
devices configured to use IRQ 2 will actually be using IRQ 9</i>);</li>
|
||
<li>IRQ 10 — free / open interrupt / available /
|
||
<a href="http://en.wikipedia.org/wiki/SCSI" title="SCSI">SCSI</a> /
|
||
<a class="mw-redirect" href="http://en.wikipedia.org/wiki/Network_card"
|
||
title="Network card">NIC</a>;</li>
|
||
<li>IRQ 11 — free / open interrupt / available /
|
||
<a href="http://en.wikipedia.org/wiki/SCSI" title="SCSI">SCSI</a> /
|
||
<a class="mw-redirect" href="http://en.wikipedia.org/wiki/Network_card"
|
||
title="Network card">NIC</a>;</li>
|
||
<li>IRQ 12 — <a href="http://en.wikipedia.org/wiki/PS/2_connector"
|
||
title="PS/2 connector">PS/2 connector</a> mouse;</li>
|
||
<li>IRQ 13 — math <a class="mw-redirect"
|
||
href="http://en.wikipedia.org/wiki/Co-processor" title="Co-processor">
|
||
co-processor</a> / integrated <a class="mw-redirect"
|
||
href="http://en.wikipedia.org/wiki/Floating_point_unit"
|
||
title="Floating point unit">floating point unit</a> /
|
||
<a href="http://en.wikipedia.org/wiki/Inter-processor_interrupt"
|
||
title="Inter-processor interrupt">inter-processor interrupt</a> (Use depends
|
||
on OS);</li>
|
||
<li>IRQ 14 — primary <a href="http://en.wikipedia.org/wiki/Parallel_ATA"
|
||
title="Parallel ATA">ATA</a> channel;</li>
|
||
<li>IRQ 15 — secondary <a href="http://en.wikipedia.org/wiki/Parallel_ATA"
|
||
title="Parallel ATA">ATA</a> channel</li>
|
||
</ul>
|
||
<p>
|
||
</p>
|
||
|
||
</body>
|
||
</html> |