Cosmos/source/Cosmos.Core/INTs.html

109 lines
No EOL
6.1 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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 &quot;lost&quot; (<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>
&nbsp;</p>
<p>
One thing to keep in mind: the Hardware IRQ&#39;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 815 (<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>
&nbsp;</p>
</body>
</html>