Subject: Re: [PATCH 0/3] Initial AMCC Bamboo support

From: David Gibson <[email-masked]>
Date: Tue, 15 May 2007 11:44:31 +1000

On Mon, May 14, 2007 at 08:38:33PM -0500, Josh Boyer wrote:
> On Tue, 2007-05-15 at 11:26 +1000, David Gibson wrote:
> > On Mon, May 14, 2007 at 09:56:48AM -0500, Josh Boyer wrote:
> > > Hi All,
> > > 
> > > The following patches add the initial AMCC Bamboo eval board support.  
> > > 
> > > The support for peripheral devices at the moment is rather limited as
> > > the board is quite complicated in it's muxing of I/O lines.  Until the
> > > bootwrapper can figure out how to setup the EBC peripherals based on the
> > > dip switch settings, the DTS will lack any EBC devices.
> > 
> > Ick.  Can you describe roughly the setup here?  It might be that the
> > simplest approach is to include all options in the DTS, and delete
> > ones that aren't selected from the bootwrapper.
> 
> There's 3 switches that directly control the EBC memory map, and a
> handful of other pin strap registers add to that.  To further complicate
> things, there are two passes of the Bamboo board and the settings mean
> different things to the individual board revisions.
> 
> By comparison, there's about 350 lines of code in U-Boot to do the setup
> of the EBC.  It's not horrible, but I'm not sure it wants to be
> duplicated in the wrapper either.
> 
> > I have a patch which might help here, which fills in the ebc's
> > 'ranges' property based on the contents of the EBC bridge registers.
> > I'm using it as part of the code necessary to get the right address
> > for the Ebony flash depending on DIP switch settings.
> 
> Ooh... that's actually what I was thinking of doing.  Though I was
> planning on poking individual nodes' regs properties instead.

You may need to do both.  At least if you use the same format for the
ebc binding as I have on Ebony: in the reg properties of the
individual nodes I directly encode the ebc chip select value and
offset within the peripheral bank.  The ebc node's 'ranges' gives the
mappings into the OPB space.  So, in practice, the low 20 bits of
address are determined by the individual peripheral's reg properties,
and the upper 12 bits are determined by the ranges property at the EBC
node.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson