On Apr 1, 2009, at 8:10 AM, Wolfgang Grandegger wrote:
Grant Likely wrote:
On Wed, Apr 1, 2009 at 1:36 AM, Wolfgang Grandegger <w...@grandegger.com
> wrote:
Anton Vorontsov wrote:
On Tue, Mar 31, 2009 at 09:05:28AM -0600, Grant Likely wrote:
[...]
+ soc8...@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
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev