Documentation: x86: convert i386/IO-APIC.txt to reST
This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du <changbin.du@gmail.com> Reviewed-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
Родитель
71892b25fc
Коммит
8fffdc9353
|
@ -1,3 +1,11 @@
|
||||||
|
.. SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
|
=======
|
||||||
|
IO-APIC
|
||||||
|
=======
|
||||||
|
|
||||||
|
:Author: Ingo Molnar <mingo@kernel.org>
|
||||||
|
|
||||||
Most (all) Intel-MP compliant SMP boards have the so-called 'IO-APIC',
|
Most (all) Intel-MP compliant SMP boards have the so-called 'IO-APIC',
|
||||||
which is an enhanced interrupt controller. It enables us to route
|
which is an enhanced interrupt controller. It enables us to route
|
||||||
hardware interrupts to multiple CPUs, or to CPU groups. Without an
|
hardware interrupts to multiple CPUs, or to CPU groups. Without an
|
||||||
|
@ -13,9 +21,8 @@ usually worked around by the kernel. If your MP-compliant SMP board does
|
||||||
not boot Linux, then consult the linux-smp mailing list archives first.
|
not boot Linux, then consult the linux-smp mailing list archives first.
|
||||||
|
|
||||||
If your box boots fine with enabled IO-APIC IRQs, then your
|
If your box boots fine with enabled IO-APIC IRQs, then your
|
||||||
/proc/interrupts will look like this one:
|
/proc/interrupts will look like this one::
|
||||||
|
|
||||||
---------------------------->
|
|
||||||
hell:~> cat /proc/interrupts
|
hell:~> cat /proc/interrupts
|
||||||
CPU0
|
CPU0
|
||||||
0: 1360293 IO-APIC-edge timer
|
0: 1360293 IO-APIC-edge timer
|
||||||
|
@ -28,7 +35,6 @@ If your box boots fine with enabled IO-APIC IRQs, then your
|
||||||
NMI: 0
|
NMI: 0
|
||||||
ERR: 0
|
ERR: 0
|
||||||
hell:~>
|
hell:~>
|
||||||
<----------------------------
|
|
||||||
|
|
||||||
Some interrupts are still listed as 'XT PIC', but this is not a problem;
|
Some interrupts are still listed as 'XT PIC', but this is not a problem;
|
||||||
none of those IRQ sources is performance-critical.
|
none of those IRQ sources is performance-critical.
|
||||||
|
@ -37,14 +43,14 @@ none of those IRQ sources is performance-critical.
|
||||||
In the unlikely case that your board does not create a working mp-table,
|
In the unlikely case that your board does not create a working mp-table,
|
||||||
you can use the pirq= boot parameter to 'hand-construct' IRQ entries. This
|
you can use the pirq= boot parameter to 'hand-construct' IRQ entries. This
|
||||||
is non-trivial though and cannot be automated. One sample /etc/lilo.conf
|
is non-trivial though and cannot be automated. One sample /etc/lilo.conf
|
||||||
entry:
|
entry::
|
||||||
|
|
||||||
append="pirq=15,11,10"
|
append="pirq=15,11,10"
|
||||||
|
|
||||||
The actual numbers depend on your system, on your PCI cards and on their
|
The actual numbers depend on your system, on your PCI cards and on their
|
||||||
PCI slot position. Usually PCI slots are 'daisy chained' before they are
|
PCI slot position. Usually PCI slots are 'daisy chained' before they are
|
||||||
connected to the PCI chipset IRQ routing facility (the incoming PIRQ1-4
|
connected to the PCI chipset IRQ routing facility (the incoming PIRQ1-4
|
||||||
lines):
|
lines)::
|
||||||
|
|
||||||
,-. ,-. ,-. ,-. ,-.
|
,-. ,-. ,-. ,-. ,-.
|
||||||
PIRQ4 ----| |-. ,-| |-. ,-| |-. ,-| |--------| |
|
PIRQ4 ----| |-. ,-| |-. ,-| |-. ,-| |--------| |
|
||||||
|
@ -56,7 +62,7 @@ lines):
|
||||||
PIRQ1 ----| |- `----| |- `----| |- `----| |--------| |
|
PIRQ1 ----| |- `----| |- `----| |- `----| |--------| |
|
||||||
`-' `-' `-' `-' `-'
|
`-' `-' `-' `-' `-'
|
||||||
|
|
||||||
Every PCI card emits a PCI IRQ, which can be INTA, INTB, INTC or INTD:
|
Every PCI card emits a PCI IRQ, which can be INTA, INTB, INTC or INTD::
|
||||||
|
|
||||||
,-.
|
,-.
|
||||||
INTD--| |
|
INTD--| |
|
||||||
|
@ -78,19 +84,19 @@ to have non shared interrupts). Slot5 should be used for videocards, they
|
||||||
do not use interrupts normally, thus they are not daisy chained either.
|
do not use interrupts normally, thus they are not daisy chained either.
|
||||||
|
|
||||||
so if you have your SCSI card (IRQ11) in Slot1, Tulip card (IRQ9) in
|
so if you have your SCSI card (IRQ11) in Slot1, Tulip card (IRQ9) in
|
||||||
Slot2, then you'll have to specify this pirq= line:
|
Slot2, then you'll have to specify this pirq= line::
|
||||||
|
|
||||||
append="pirq=11,9"
|
append="pirq=11,9"
|
||||||
|
|
||||||
the following script tries to figure out such a default pirq= line from
|
the following script tries to figure out such a default pirq= line from
|
||||||
your PCI configuration:
|
your PCI configuration::
|
||||||
|
|
||||||
echo -n pirq=; echo `scanpci | grep T_L | cut -c56-` | sed 's/ /,/g'
|
echo -n pirq=; echo `scanpci | grep T_L | cut -c56-` | sed 's/ /,/g'
|
||||||
|
|
||||||
note that this script won't work if you have skipped a few slots or if your
|
note that this script won't work if you have skipped a few slots or if your
|
||||||
board does not do default daisy-chaining. (or the IO-APIC has the PIRQ pins
|
board does not do default daisy-chaining. (or the IO-APIC has the PIRQ pins
|
||||||
connected in some strange way). E.g. if in the above case you have your SCSI
|
connected in some strange way). E.g. if in the above case you have your SCSI
|
||||||
card (IRQ11) in Slot3, and have Slot1 empty:
|
card (IRQ11) in Slot3, and have Slot1 empty::
|
||||||
|
|
||||||
append="pirq=0,9,11"
|
append="pirq=0,9,11"
|
||||||
|
|
||||||
|
@ -105,7 +111,7 @@ won't function properly (e.g. if it's inserted as a module).
|
||||||
If you have 2 PCI buses, then you can use up to 8 pirq values, although such
|
If you have 2 PCI buses, then you can use up to 8 pirq values, although such
|
||||||
boards tend to have a good configuration.
|
boards tend to have a good configuration.
|
||||||
|
|
||||||
Be prepared that it might happen that you need some strange pirq line:
|
Be prepared that it might happen that you need some strange pirq line::
|
||||||
|
|
||||||
append="pirq=0,0,0,0,0,0,9,11"
|
append="pirq=0,0,0,0,0,0,9,11"
|
||||||
|
|
||||||
|
@ -115,5 +121,3 @@ Good luck and mail to linux-smp@vger.kernel.org or
|
||||||
linux-kernel@vger.kernel.org if you have any problems that are not covered
|
linux-kernel@vger.kernel.org if you have any problems that are not covered
|
||||||
by this document.
|
by this document.
|
||||||
|
|
||||||
-- mingo
|
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
.. SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
|
============
|
||||||
|
i386 Support
|
||||||
|
============
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
|
||||||
|
IO-APIC
|
|
@ -26,3 +26,4 @@ x86-specific Documentation
|
||||||
microcode
|
microcode
|
||||||
resctrl_ui
|
resctrl_ui
|
||||||
usb-legacy-support
|
usb-legacy-support
|
||||||
|
i386/index
|
||||||
|
|
Загрузка…
Ссылка в новой задаче