<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2523" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN class=437580921-27112007>Hi
everyone!</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=437580921-27112007></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=437580921-27112007>I've run into what
seems to be a contradiction with reference to the "relocatability" of a
BAR's</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=437580921-27112007>mem/io
space.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=437580921-27112007></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=437580921-27112007>In the following
example the spec. of the device says that BARs 0x10, 0x14 and 0x30
are</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=437580921-27112007>relocatable.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face="Courier New"
size=2>assigned-addresses <FONT
color=#0000ff><FONT color=#ff0000>8</FONT>1001810</FONT> 00000000 00000300
00000000 00000100
<BR>
<FONT color=#0000ff><FONT color=#ff0000>8</FONT>2001814</FONT> 00000000 00100000
00000000 00002000
<BR>
<FONT color=#0000ff><FONT color=#ff0000>8</FONT>2001830</FONT> 00000000 00180000
00000000 00080000
<BR>reg
<FONT color=#0000ff><FONT color=#ff0000>0</FONT>0001800</FONT> 00000000 00000000
00000000 00000000
<BR>
<FONT color=#0000ff><FONT color=#ff0000>0</FONT>1001810</FONT> 00000000 00000000
00000000 00000100
<BR>
<FONT color=#0000ff><FONT color=#ff0000>0</FONT>2001814</FONT> 00000000 00000000
00000000 00002000
<BR>
<FONT color=#0000ff><FONT color=#ff0000>0</FONT>2001830</FONT> 00000000 00000000
00000000 00080000 <BR></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=437580921-27112007>So when I create and
assign values to the reg property, I set the "n" bit to 0. Example BAR 0x10:
<FONT face="Courier New" color=#0000ff><FONT
color=#ff0000>0</FONT>1001810</FONT></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=437580921-27112007>As defined in the
OpenFirmware </SPAN></FONT><FONT face=Arial size=2><SPAN
class=437580921-27112007>IEEE-1275 PCI Bus Binding 2.1, the "n" bit
indicates (non)relocatability of</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=437580921-27112007>the corresponding
BAR's mem/io address space.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=437580921-27112007></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=437580921-27112007>The
assigned-addresses property, however, is created by the system OpenFirmware (Sun
SPARC Blade 1500</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=437580921-27112007>in this example).
And as you can see the "n" bit in the phy-hi values is set for all the BARs
(0x10, 0x14, 0x30),</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=437580921-27112007>indicating that the
corresponding </SPAN></FONT><FONT face=Arial size=2><SPAN
class=437580921-27112007>BAR's space is non-relocatable. Example BAR 0x10: <FONT
face="Courier New" color=#0000ff><FONT
color=#ff0000>8</FONT>1001810</FONT></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=437580921-27112007></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=437580921-27112007>I know, I'm being
lazy! I can look for the piece of code in Sun's OBP source.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=437580921-27112007></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=437580921-27112007>But I'm trying to
understand the rule for setting this "n" bit as far as the PCI spec. is
concerned.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=437580921-27112007>I could not find
anything indicating the attribute of relocatibility in the PCI spec. (including
the PCI Architecture</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=437580921-27112007>2.1 book from
Mindshare.)</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=437580921-27112007></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=437580921-27112007>The only place I was
able to make any sense of relocatability was the type bit field in
the BAR[2:1]:</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=437580921-27112007></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=437580921-27112007>For BAR[0] = 0, this
BAR is associated with a memory address space:</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=437580921-27112007>Type field BAR[2:1]
=</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=437580921-27112007>00 (locate anywhere
in lower 4GB)</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=437580921-27112007>01 (locate
below 1MB (reserved in PCI 2.2 spec))</SPAN></FONT></DIV>
<DIV><FONT><SPAN class=437580921-27112007></SPAN></FONT><SPAN
class=437580921-27112007><FONT face=Arial size=2>10 (locate anywhere over 4GB
(implies that register is 64-bits wide))</FONT></SPAN></DIV>
<DIV><SPAN class=437580921-27112007><FONT face=Arial size=2>11
(reserved)</FONT></SPAN></DIV>
<DIV><SPAN class=437580921-27112007><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=437580921-27112007><FONT face=Arial size=2>For BAR[0] = 1, this
BAR is associated with a IO address space.</FONT></SPAN></DIV>
<DIV><SPAN class=437580921-27112007><FONT face=Arial size=2>There is no type
field in this case.</FONT></SPAN></DIV>
<DIV><SPAN class=437580921-27112007><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=437580921-27112007><FONT face=Arial size=2>All this leads me to
conclude:</FONT></SPAN></DIV>
<DIV><SPAN class=437580921-27112007><FONT face=Arial size=2>- all
memory-address-space BARs are relocatable;</FONT></SPAN></DIV>
<DIV><SPAN class=437580921-27112007><FONT face=Arial size=2>- all
io-address-space BARs are non-relocatable.</FONT></SPAN></DIV>
<DIV><SPAN class=437580921-27112007><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=437580921-27112007><FONT face=Arial size=2>Is this conclusion
correct?</FONT></SPAN></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV class=Section1>
<P style="MARGIN: 0in 0in 0pt"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Arial">_____________<?xml:namespace
prefix = o ns = "urn:schemas-microsoft-com:office:office"
/><o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Tahoma">Äsif
Haswaréy<o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Tahoma">QLogic
Corporation<o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt"><?xml:namespace prefix = st1 /><st1:Street
w:st="on"><st1:address
style="BACKGROUND-POSITION: left bottom; BACKGROUND-IMAGE: url(res://ietag.dll/#34/#1001); BACKGROUND-REPEAT: repeat-x"
tabIndex=0 w:st="on"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Tahoma">FCode
Driver Development</SPAN></st1:address></st1:Street><SPAN
style="FONT-FAMILY: 'Courier New'; mso-bidi-font-family: 'Times New Roman'"><o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Tahoma">Phone:
949.389.7607<o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Tahoma">
Fax: 949.389.6308</SPAN><SPAN
style="FONT-FAMILY: 'Courier New'; mso-bidi-font-family: 'Times New Roman'"><o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Tahoma"><A
href="mailto:asif.haswarey@qlogic.com">asif.haswarey@qlogic.com</A></SPAN><SPAN
style="FONT-FAMILY: 'Courier New'; mso-bidi-font-family: 'Times New Roman'"><o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-font-family: Tahoma"><o:p> </o:p></SPAN></P></DIV>
<DIV> </DIV></BODY></HTML>