Subject: Re: U-Boot allocating PCI I/O space from 0 (Was: pata_sl82c105 can not reserve IO region)

From: Sergei Shtylyov <[email-masked]>
Date: Sat, 02 Dec 2006 19:33:37 +0300

Hello.

Sergei Shtylyov wrote:

>     Well, I'm having a very related issue with the U-Boot on MPC85xx: recently 
> I've noticed that it started allocating PCI I/O space from 0 (while the older 
> versions started from 0x1000). The IDE core can't tolerate this, giving me 
> such messages on bootup:

> PDC20269: inconsistent baseregs (BIOS) for port 0, skipping

> when I have Promise Ultra133TX2 card inserted into PCI alone. I've looked thru 
> the U-Boot sources and commit history but failed to locate the change that led 
> to this...

    It's actually much worse than just that. When I also plug in some other 
PCI card so Ultra133TX2 doesn't get the zero addresses anymore, I'm getting this:

eepro100.c: $Revision: 1.36 $ 2000/11/17 Modified by Andrey V. Savochkin
<[email-masked]> and others
eth3: Invalid EEPROM checksum 0xfffe, check settings before activating this
device!
eth3: OEM i82557/i82558 10/100 Ethernet, 00:00:00:00:FF:FF, IRQ 52.
[...]
PDC20269: 100% native mode on irq 51
     ide2: BM-DMA at 0x0060-0x0067, BIOS settings: hde:pio, hdf:pio
PDC20269: simplex device: DMA disabled
ide3: PDC20269 Bus-Master DMA disabled (BIOS)

    I've just verified that both these cards are working OK in x86 box
As for the simplex message, I've encountered this some months ago and it was 
caused by invalid programming of the MPC85xx bridge PCI/X outbound translation 
address register for the I/O space or at least by the non-zero value of the 
bus I/O address in the "ranges" property of the bridge device node in the 
device tree... I'm somewhat confused now since I know that the relevant U-Boot 
code has been fixed but it looks like that made it only worse -- I was using 
the custom patched version of U-Boot before which missed that fix:

http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=commitdiff;h=97074ed9655309b64231bc2cee69fe85399f8055

WBR, Sergei