Actually correct and still right, but PNP ISA cards aren't relevant
anymore. Noted by: imp Approved by: bcr (mentor)
This commit is contained in:
parent
e8b50cb82d
commit
d42d1b16af
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=40596
1 changed files with 0 additions and 130 deletions
|
|
@ -2610,136 +2610,6 @@ bindkey ^[[3~ delete-char # for xterm</programlisting>
|
||||||
</answer>
|
</answer>
|
||||||
</qandaentry>
|
</qandaentry>
|
||||||
|
|
||||||
<qandaentry>
|
|
||||||
<question id="pnp-not-found">
|
|
||||||
<para>Why is my PnP card not found (or found as
|
|
||||||
<literal>unknown</literal>)?</para>
|
|
||||||
</question>
|
|
||||||
|
|
||||||
<answer>
|
|
||||||
<para>The reasons for this behavior are explained by the
|
|
||||||
following email, posted to the &a.questions; by &a.peter;, in
|
|
||||||
answer to a question about an internal modem that was no
|
|
||||||
longer found after an upgrade to
|
|
||||||
&os; 4.<replaceable>X</replaceable> (the comments in
|
|
||||||
<literal>[]</literal> have been added to clarify the
|
|
||||||
context).</para>
|
|
||||||
|
|
||||||
<note>
|
|
||||||
<para>The contents of this quotation has been updated from
|
|
||||||
its original text.</para>
|
|
||||||
</note>
|
|
||||||
|
|
||||||
<blockquote>
|
|
||||||
<para>The PNP bios preconfigured it [the modem] and left it
|
|
||||||
laying around in port space, so [in
|
|
||||||
3.<replaceable>X</replaceable>] the old-style ISA probes
|
|
||||||
<quote>found</quote> it there.</para>
|
|
||||||
|
|
||||||
<para>Under 4.0, the ISA code is much more PnP-centric. It
|
|
||||||
was possible [in 3.<replaceable>X</replaceable>] for an ISA
|
|
||||||
probe to find a <quote>stray</quote> device and then for
|
|
||||||
the PNP device ID to match and then fail due to resource
|
|
||||||
conflicts. So, it disables the programmable cards first
|
|
||||||
so this double probing cannot happen. It also means that
|
|
||||||
it needs to know the PnP IDs for supported PnP hardware.
|
|
||||||
Making this more user tweakable is on the TODO
|
|
||||||
list.</para>
|
|
||||||
</blockquote>
|
|
||||||
|
|
||||||
<para>To get the device working again requires finding its PnP
|
|
||||||
ID and adding it to the list that the ISA probes use to
|
|
||||||
identify PnP devices. This is obtained using
|
|
||||||
&man.pnpinfo.8; to probe the device, for example this is the
|
|
||||||
output from &man.pnpinfo.8; for an internal modem:</para>
|
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>pnpinfo</userinput>
|
|
||||||
Checking for Plug-n-Play devices...
|
|
||||||
|
|
||||||
Card assigned CSN #1
|
|
||||||
Vendor ID PMC2430 (0x3024a341), Serial Number 0xffffffff
|
|
||||||
PnP Version 1.0, Vendor Version 0
|
|
||||||
Device Description: Pace 56 Voice Internal Plug & Play Modem
|
|
||||||
|
|
||||||
Logical Device ID: PMC2430 0x3024a341 #0
|
|
||||||
Device supports I/O Range Check
|
|
||||||
TAG Start DF
|
|
||||||
I/O Range 0x3f8 .. 0x3f8, alignment 0x8, len 0x8
|
|
||||||
[16-bit addr]
|
|
||||||
IRQ: 4 - only one type (true/edge)</screen>
|
|
||||||
|
|
||||||
<para>[more TAG lines elided]</para>
|
|
||||||
|
|
||||||
<screen>TAG End DF
|
|
||||||
End Tag
|
|
||||||
|
|
||||||
Successfully got 31 resources, 1 logical fdevs
|
|
||||||
-- card select # 0x0001
|
|
||||||
|
|
||||||
CSN PMC2430 (0x3024a341), Serial Number 0xffffffff
|
|
||||||
|
|
||||||
Logical device #0
|
|
||||||
IO: 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8
|
|
||||||
IRQ 5 0
|
|
||||||
DMA 4 0
|
|
||||||
IO range check 0x00 activate 0x01</screen>
|
|
||||||
|
|
||||||
<para>The information you require is in the <literal>Vendor
|
|
||||||
ID</literal> line at the start of the output. The
|
|
||||||
hexadecimal number in parentheses
|
|
||||||
(<literal>0x3024a341</literal> in this example) is the PnP
|
|
||||||
ID and the string immediately before this
|
|
||||||
(<literal>PMC2430</literal>) is a unique ASCII ID.</para>
|
|
||||||
|
|
||||||
<para>Alternatively, if &man.pnpinfo.8; does not list the card
|
|
||||||
in question, &man.pciconf.8; can be used instead. This is
|
|
||||||
part of the output from <command>pciconf -vl</command> for
|
|
||||||
an onboard sound chip:</para>
|
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>pciconf -vl</userinput>
|
|
||||||
chip1@pci0:31:5: class=0x040100 card=0x00931028 chip=0x24158086 rev=0x02 hdr=0x00
|
|
||||||
vendor = 'Intel Corporation'
|
|
||||||
device = '82801AA 8xx Chipset AC'97 Audio Controller'
|
|
||||||
class = multimedia
|
|
||||||
subclass = audio</screen>
|
|
||||||
|
|
||||||
<para>Here, you would use the <varname>chip</varname> value,
|
|
||||||
<literal>0x24158086</literal>.</para>
|
|
||||||
|
|
||||||
<para>This information (<literal>Vendor ID</literal> or
|
|
||||||
<varname>chip</varname> value) needs adding to the file
|
|
||||||
<filename>/usr/src/sys/dev/sio/sio_isa.c</filename>.</para>
|
|
||||||
|
|
||||||
<para>You should first make a backup of
|
|
||||||
<filename>sio_isa.c</filename> just in case things go wrong.
|
|
||||||
You will also need it to make the patch to submit with your
|
|
||||||
PR (you are going to submit a PR, are you not?) then edit
|
|
||||||
<filename>sio_isa.c</filename> and search for the
|
|
||||||
line:</para>
|
|
||||||
|
|
||||||
<programlisting>static struct isa_pnp_id sio_ids[] = {</programlisting>
|
|
||||||
|
|
||||||
<para>Then scroll down to find the correct place to add the
|
|
||||||
entry for your device. The entries look like this, and are
|
|
||||||
sorted on the ASCII Vendor ID string which should be
|
|
||||||
included in the comment to the right of the line of code
|
|
||||||
along with all (if it will fit) or part of the
|
|
||||||
<emphasis>Device Description</emphasis> from the output of
|
|
||||||
&man.pnpinfo.8;:</para>
|
|
||||||
|
|
||||||
<programlisting>{0x0f804f3f, NULL}, /* OZO800f - Zoom 2812 (56k Modem) */
|
|
||||||
{0x39804f3f, NULL}, /* OZO8039 - Zoom 56k flex */
|
|
||||||
{0x3024a341, NULL}, /* PMC2430 - Pace 56 Voice Internal Modem */
|
|
||||||
{0x1000eb49, NULL}, /* ROK0010 - Rockwell ? */
|
|
||||||
{0x5002734a, NULL}, /* RSS0250 - 5614Jx3(G) Internal Modem */</programlisting>
|
|
||||||
|
|
||||||
<para>Add the hexadecimal Vendor ID for your device in the
|
|
||||||
correct place, save the file, rebuild your kernel, and
|
|
||||||
reboot. Your device should now be found as an
|
|
||||||
<devicename>sio</devicename> device.</para>
|
|
||||||
</answer>
|
|
||||||
</qandaentry>
|
|
||||||
|
|
||||||
<qandaentry>
|
<qandaentry>
|
||||||
<question id="nlist-failed">
|
<question id="nlist-failed">
|
||||||
<para>Why do I get the error <errorname>nlist
|
<para>Why do I get the error <errorname>nlist
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue