Thread (16 messages) 16 messages, 3 authors, 2009-04-27

Re: PCI changes 2.6.26 => 2.6.28

From: Gary Thomas <hidden>
Date: 2009-04-21 23:00:55

Kumar Gala wrote:
quoted
quoted
quoted
I'm still looking into how the PCI address register for the video
card did not get written, even though the system obviously thinks
it did (hence "virtual")
It most definitely has something to do with 0xC0000000 being
assigned to the video card.  I changed my DTS to move everything
up (started the whole space at 0xC4000000) and the video card
came to life!  Of course, I'm not interested in this hack,
so the simplest thing would be to figure out why 2.6.26 allocated
that outgoing window and 2.6.28 doesn't
So I think the difference is due to the change in PCI code between
2.6.26 and .28 for 83xx.  If you notice we exclude the FSL device in
.26 you have:
quoted
quoted
c0000000-c7ffffff : 0000:00:00.0
and in .28 its gone.  This accounts for the allocation differences. 
What I don't get is why the behavior would vary based on address.

Can you dump out the PCI inbound/outbound registers.  I have a theory
as to what's going on and want to confirm it.
I found the difference - in 2.6.28 the inbound/outbound windows
don't seem to be set up at all.  In 2.6.26, the function 'fsl_add_bridge'
was common among architectures and ended up calling 'setup_pci_atmu'
which created those mappings.  In 2.6.28, the 83xx PCI setup code
has been refactored.  It uses 'mpc83xx_add_bridge' instead of
'fsl_add_bridge' and 'setup_pci_atmu' is not called at all :-(

I'm sure this is the problem.
Also, what's your .dts look like for the PCI node.
For the record:
		bus-range = <0 0>;
		ranges = <0x02000000 0x0 0xC0000000 0xC0000000 0x0 0x10000000
			  0x01000000 0x0 0x00000000 0xB8000000 0x0 0x00100000>;


-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help