
Hello Wolfgang,
Wolfgang Denk wrote:
cpu/mpc8260/cpu.c used to use do_fixup_by_path_u32() to update the clock frequencies in the device tree, using a CPU path "/cpus/OF_CPU", with OF_CPU beind defined in the board config file.
However, this does not work when one board config file (here: MPC8260ADS.h) is intended to be used for several diffrent CPUs and therefor contains a generic definition like "cpu@0", as the device trees that will then be loaded will contain specific names like "PowerPC,8272@0".
We switch to using do_fixup_by_prop_u32() instead, so we can search for device_type="cpu", as it is done in other architectures, too.
Signed-off-by: Wolfgang Denk wd@denx.de Cc: Heiko Schocher hs@denx.de
v2: Fix typo in Heiko's name.
Heiko, could you please test if this works with mgcoge, too?
It works fine on the mgcoge:
=> tftp 400000 mgcoge/mgcoge.dtb-hs Using SCC ETHERNET device TFTP from server 192.168.1.1; our IP address is 192.168.20.3 Filename 'mgcoge/mgcoge.dtb-hs'. Load address: 0x400000 Loading: # done Bytes transferred = 6000 (1770 hex) => fdt addr 400000 => fdt print [...] cpus { #address-cells = <0x1>; #size-cells = <0x0>; PowerPC,8247@0 { device_type = "cpu"; reg = <0x0>; d-cache-line-size = <0x20>; i-cache-line-size = <0x20>; d-cache-size = <0x4000>; i-cache-size = <0x4000>; timebase-frequency = <0x0>; clock-frequency = <0x0>; bus-frequency = <0x0>; };
=> fdt board => fdt print /cpus cpus { #address-cells = <0x1>; #size-cells = <0x0>; PowerPC,8247@0 { device_type = "cpu"; reg = <0x0>; d-cache-line-size = <0x20>; i-cache-line-size = <0x20>; d-cache-size = <0x4000>; i-cache-size = <0x4000>; timebase-frequency = <0xfbc520>; clock-frequency = <0xbcd3d80>; bus-frequency = <0x3ef1480>; }; }; =>
Also Linux boots fine :-) so this patch looks good to me, so:
Acked-by: Heiko Schocherhs@denx.de
bye Heiko