<!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>&nbsp;</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>&nbsp;</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>&nbsp;</DIV>
<DIV><FONT face="Courier New" 
size=2>assigned-addresses&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT 
color=#0000ff><FONT color=#ff0000>8</FONT>1001810</FONT> 00000000 00000300 
00000000 00000100 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<FONT color=#0000ff><FONT color=#ff0000>8</FONT>2001814</FONT> 00000000 00100000 
00000000 00002000 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<FONT color=#0000ff><FONT color=#ff0000>8</FONT>2001830</FONT> 00000000 00180000 
00000000 00080000 
<BR>reg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<FONT color=#0000ff><FONT color=#ff0000>0</FONT>0001800</FONT> 00000000 00000000 
00000000 00000000 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<FONT color=#0000ff><FONT color=#ff0000>0</FONT>1001810</FONT> 00000000 00000000 
00000000 00000100 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<FONT color=#0000ff><FONT color=#ff0000>0</FONT>2001814</FONT> 00000000 00000000 
00000000 00002000 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<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&nbsp;(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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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&nbsp;BAR[2:1]:</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=437580921-27112007></SPAN></FONT>&nbsp;</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&nbsp;(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>&nbsp;</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>&nbsp;</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>-&nbsp;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>&nbsp;</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>&nbsp;</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">&nbsp; 
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>&nbsp;</o:p></SPAN></P></DIV>
<DIV>&nbsp;</DIV></BODY></HTML>