Update Question 18.11:

- Add non-breakable spaces for better rendering
- Unfold and mark up Microsoft, Intel
- Mark up literals with <literal>
- Fix formulas, add <superscript>
- Fix grammar (suggested by gabor)
- Remove Ethernet address as example, because it is 48 bits long
- Reword sentences with grammar bogons (submitted by trhodes)

Reviewed by:  trhodes
Approved by:  gabor
This commit is contained in:
Gabor Pali 2008-07-05 03:19:31 +00:00
parent a5f445c1a7
commit 9a8aeaf579
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=32485

View file

@ -10551,7 +10551,7 @@ hint.sio.7.irq="12"</programlisting>
<qandaentry>
<question id="pnp-initialize">
<para>How are Plug N Play ISA cards detected and
<para>How are Plug&nbsp;N&nbsp;Play ISA cards detected and
initialized?</para>
</question>
@ -10567,33 +10567,33 @@ hint.sio.7.irq="12"</programlisting>
routine gets a wired-OR <quote>yes</quote> to that question. At
least one bit will be on in that reply. Then the probe code is
able to cause boards with board model IDs (assigned by
Microsoft/Intel) lower than X to go <quote>off-line</quote>. It
&microsoft;/&intel;) lower than <literal>X</literal> to go <quote>off-line</quote>. It
then looks to see if any boards are still responding to the
query. If the answer was <literal>0</literal>, then there are
no boards with IDs above X. Now probe asks if there are any
boards below <literal>X</literal>. If so, probe knows there are
boards with a model numbers below X. Probe then asks for boards
greater than X-(limit/4) to go off-line. If repeats the query.
no boards with IDs above <literal>X</literal>. Probe will then ask for
boards below <literal>X</literal>.
Finally, probe requests boards
greater than <literal>X&nbsp;-&nbsp;(limit&nbsp;/&nbsp;4)</literal> to go off-line. It then repeats this query.
By repeating this semi-binary search of IDs-in-range enough
times, the probing code will eventually identify all PnP boards
present in a given machine with a number of iterations that is
much lower than what 2^64 would take.</para>
much lower than what 2<superscript>64</superscript> would take.</para>
<para>The IDs are two 32-bit fields (hence 2&circ;64) + 8 bit
checksum. The first 32 bits are a vendor identifier. They never
<para>The IDs are two 32-bit fields (hence 2<superscript>64</superscript>) + 8-bit
checksum. The first 32&nbsp;bits are a vendor identifier. They never
come out and say it, but it appears to be assumed that
different types of boards from the same vendor could have
different 32-bit vendor ids. The idea of needing 32 bits just
different 32-bit vendor IDs. The idea of needing 32&nbsp;bits just
for unique manufacturers is a bit excessive.</para>
<para>The lower 32 bits are a serial #, Ethernet address,
something that makes this one board unique. The vendor must
never produce a second board that has the same lower 32 bits
unless the upper 32 bits are also different. So you can have
multiple boards of the same type in the machine and the full 64
bits will still be unique.</para>
<para>The lower 32&nbsp;bits are a serial #, or
something else that makes this one board unique. The vendor must
never produce a second board that has the same lower 32&nbsp;bits
unless the upper 32&nbsp;bits are also different. So you can have
multiple boards of the same type in the machine and the full
64&nbsp;bits will still be unique.</para>
<para>The 32 bit groups can never be all zero. This allows the
<para>The 32&nbsp;bit groups can never be all zero. This allows the
wired-OR to show non-zero bits during the initial binary
search.</para>
@ -10620,11 +10620,11 @@ hint.sio.7.irq="12"</programlisting>
<para>There is a lot of oversimplification above, but you
should get the general idea.</para>
<para>Microsoft took over some of the primary printer status
<para>&microsoft; took over some of the primary printer status
ports to do PnP, on the logic that no boards decoded those
addresses for the opposing I/O cycles. I found a genuine IBM
printer board that did decode writes of the status port during
the early PnP proposal review period, but MS said
the early PnP proposal review period, but &microsoft; said
<quote>tough</quote>. So they do a write to the printer status
port for setting addresses, plus that use that address +
<literal>0x800</literal>, and a third I/O port for reading that