Thread (23 messages) 23 messages, 5 authors, 2009-04-02

Re: powerpc/85xx: Add support for the "socrates" board (MPC8544)

From: Kumar Gala <hidden>
Date: 2009-04-01 13:27:19

On Apr 1, 2009, at 8:10 AM, Wolfgang Grandegger wrote:
Grant Likely wrote:
quoted
On Wed, Apr 1, 2009 at 1:36 AM, Wolfgang Grandegger <wg@grandegger.com 
quoted
wrote:
Anton Vorontsov wrote:
quoted
On Tue, Mar 31, 2009 at 09:05:28AM -0600, Grant Likely wrote:
[...]
quoted
quoted
quoted
quoted
quoted
quoted
+       soc8544@e0000000 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               device_type = "soc";
Drop device_type here too.
Grrr, I just realized that removing the devices type "soc"  
has broken
fsl_get_sys_freq(). See:

http://lxr.linux.no/linux+v2.6.29/arch/powerpc/sysdev/fsl_soc.c#L80

We need a quick fix and we could take the occasion to  
establish a common
function for the MPC52xx as well, but it's not obvious to me  
how to find
the SOC node without the device type property.
SoC node should have a compatible property, just like  
everything else.

compatible = "fsl,mpc8544-immr";  (immr == Internally Memory  
Mapped Registers)

Many other boards already do this.
Yes, it does, but searching for the SOC node is not straight- 
forward
because there is no common compatibility string but many CPU- 
specific
compatibility strings, e.g. "fsl,mpc8560-immr", etc. Have I  
missed
something?
Choose a new value ("fsl,mpc-immr" perhaps?), document exactly  
what it
means, and add add it to the end of the compatible list.
As Scott Wood once pointed out, IMMR does not exists for MPC85xx
parts. There it's called CCSR.

See this thread:

http://www.mail-archive.com/linuxppc-dev@ozlabs.org/msg12665.html

I still think that
"fsl,mpc83NN-immr", "fsl,soc", "simple-bus" for 83xx
and
"fsl,mpc85NN-ccsr", "fsl,soc", "simple-bus" for 85xx

would be OK, at least to start with. We can always deprecate  
"fsl,soc"
compatible in favour of something more elegant, but "fsl,soc"  
should be
just fine to replace device_type = "soc".

Also, there is another good thing about "fsl,soc" -- U-Boot already
finds it for 83xx CPUs. ;-)
Ugh! I just realize the full impact of removing device type "soc".  
It
will break compatibility with U-Boot for many boards. Is it worth  
it?
Yes, I know this.  I'm not asking you to fix all the other boards,  
but
make sure that it is not required for the new board.
Hm, I'm confused, if we want to fix this issue we need first to

- fix all functions in fsl_soc.c searching for the compatible string
 "fsl,soc" instead of the device type "soc" (or both for backward
 compatibility).

- fix U-Boot to find the SOC node by looking for "fsl,soc" to insert  
the
 proper bus-frequency, at least.

That affects *all* boards using CONFIG_FSL_SOC and requires an
up-to-date version of U-Boot for new kernels :-(. If that is fixed, I
can remove the "device_type = "soc";" from socrates.dts (and may  
more),
but not right now. Or have I missed something?
I presume the intent is not to break old u-boots w/new kernels, but to  
make it so new .dts don't require device_type = soc in them if using  
new kernels.

- k
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help