powerpc/85xx: Add support for the "socrates" board (MPC8544)
Kumar Gala
galak at kernel.crashing.org
Thu Apr 2 00:27:10 EST 2009
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 <wg at grandegger.com
>> > wrote:
>>> Anton Vorontsov wrote:
>>>> On Tue, Mar 31, 2009 at 09:05:28AM -0600, Grant Likely wrote:
>>>> [...]
>>>>>>>>>> + soc8544 at 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
More information about the Linuxppc-dev
mailing list