<br><font size=2 face="sans-serif">Hi all,</font>
<br>
<br><font size=2 face="sans-serif">I think I found a bug in the pci_allocate_resources()
RTEMS function. We are working with RTEMS for leon2 processor, and writing
drivers for some other PCI boards we discovered a bad behaviour in the
init_pci() function. </font>
<br>
<br><font size=2 face="sans-serif">--------------------</font>
<br><font size=3>RTEMS version: 4.6.5-1.0.19 </font>
<p><font size=3>Source file affected: pci.c </font>
<p><font size=3>Path: rtems-4.6.5/c/src/lib/libbsp/sparc/leon2/pci </font>
<p><font size=3>Affected functions: </font>
<ul>
<li><font size=3>void pci_allocate_resources(void) </font></ul>
<br><font size=3><b>Modification description</b> </font>
<p><font size=3><i>void pci_allocate_resources(void)</i>. </font>
<p><font size=3><b>Lines: 472 and 563</b> </font>
<p><font size=3>Substitute the line: </font>
<br><font size=3><b>if (size == 0 || size == 0xffffffff || (size &
0x3f1) != 0) {</b> </font>
<p><font size=3>by the line: </font>
<br><font size=3><b>if ((size == 0 || size == 0xffffffff) != 0) {</b>
</font>
<br>
<br><font size=2 face="sans-serif">------------------------------</font>
<br>
<br><font size=2 face="sans-serif">In our PCI boards, the bits 3:0 of the
BAR1 address are hardcoded to "1000" and the (size & 0x3f1)
statement made the condition to be false always. The change does not affect
the rest of boards we had already working. The reason why this condition
is set in the original "pci.c" file is not clear and is not documented
(maybe Jiri may say some).</font>
<br>
<br><font size=2 face="sans-serif">I didn't have a look, but maybe this
also affects to RTEMS 4.8 and RTEMS 4.9 and maybe not only leon2 code but
also leon3.</font>
<br>
<br><font size=2 face="sans-serif"><br>
//avs<br>
<br>
-----------------------------<br>
Aitor Viana Sánchez<br>
<br>
ESA - European Space Technology Centre (ESTEC)<br>
TEC-EDD - Computer and Data Systems Section<br>
ESA/ESTEC P.O. Box 299 / 2200AG Noordwijk ZH, The Netherlands<br>
Tel (+31) 71 565 6727<br>
Email: aitor.viana.sanchez@esa.int</font>
<br>
<br>