8xx: Update and extend 8xx fdt support - resubmit
PATCH 3/3 8xx: Update and extend 8xx fdt support - resubmit
Attached patch updates the 8xx fdt support for 8xx. As pointed out by Scott Wood - OF_CPU, OF_TBCLK aren't needed and get_tbclk() should be used instead of bd->bi_busfreq.
---
cpu/mpc8xx/fdt.c new file +46 -0
@@ -0,0 +1,46 @@ +/* +* Copyright 2008 (C) Bryan O'Donoghue +* +* Code copied & edited from Freescale mpc85xx stuff. +* +* See file CREDITS for list of people who contributed to this +* project. +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place, Suite 330, Boston, +* MA 02111-1307 USA +*/ + +#include <common.h> +#include <libfdt.h> +#include <fdt_support.h> + +DECLARE_GLOBAL_DATA_PTR ; + +void ft_cpu_setup (void *blob,bd_t *bd) +{ +do_fixup_by_prop_u32 (blob,"device_type" ,"cpu" ,4 , +"timebase-frequency" ,get_tbclk (),1 ); +do_fixup_by_prop_u32 (blob,"device_type" ,"cpu" ,4 , +"bus-frequency" , bd->bi_busfreq,1 ); +do_fixup_by_prop_u32 (blob,"device_type" ,"cpu" ,4 , +"clock-frequency" , bd->bi_intfreq,1 ); +do_fixup_by_compat_u32 (blob,"fsl,cpm-brg" ,"clock-frequency" , + gd->brg_clk,1 ); + +/* Fixup ethernet MAC addresses */ +fdt_fixup_ethernet (blob, bd); + +fdt_fixup_memory (blob, (u64 )bd->bi_memstart, (u64 )bd->bi_memsize); +}
cpu/mpc8xx/Makefile +1 -1
@@ -29,7 +29,7 @@ LIB = $(obj)lib$(CPU).a START = start.o kgdb.o COBJS = bedbug_860.o commproc.o cpu.o cpu_init.o \ - fec.o i2c.o interrupts.o lcd.o scc.o \ + fec.o fdt.o i2c.o interrupts.o lcd.o scc.o \ serial.o speed.o spi.o \ traps.o upatch.o video.o SOBJS = plprcr_write.o
cpu/mpc8xx/cpu.c +0 -7
@@ -637,14 +637,3 @@ void reset_8xx_watchdog (volatile immap_t * immr)#endif /* CONFIG_WATCHDOG */ -/* ------------------------------------------------------------------------- */ -#if defined(CONFIG_OF_LIBFDT ) -void ft_cpu_setup (void *blob,bd_t *bd) -{ -char * cpu_path ="/cpus/" OF_CPU ; - - do_fixup_by_path_u32(blob, cpu_path, "bus-frequency", bd->bi_busfreq,
1);
- do_fixup_by_path_u32(blob, cpu_path, "timebase-frequency", OF_TBCLK,
1);
- do_fixup_by_path_u32(blob, cpu_path, "clock-frequency",bd->bi_intfreq, 1); -}
-#endif /* CONFIG_OF_LIBFDT */
cpu/mpc8xx/speed.c +25 -0
@@ -174,6 +174,27 @@ unsigned long measure_gclk(void)#endif +void get_brgclk (uint sccr) +{ +uint divider =0 ; + +switch ((sccr&SCCR_DFBRG11 )>>11 ){ +case 0 : + divider =1 ; +break ; +case 1 : + divider =4 ; +break ; +case 2 : + divider =16 ; +break ; +case 3 : + divider =64 ; +break ; + } + gd->brg_clk = gd->cpu_clk/divider; +} +#if !defined(CONFIG_8xx_CPUCLK_DEFAULT)/*
@@ -223,6 +244,8 @@ int get_clocks (void) gd->bus_clk = gd->cpu_clk /2 ; } +get_brgclk (sccr); +return (0 ); }
@@ -254,6 +277,8 @@ int get_clocks_866 (void) gd->cpu_clk =measure_gclk ();#endif +get_brgclk (immr->im_clkrst.car_sccr); +/* if cpu clock <= 66 MHz then set bus division factor to 1, * otherwise set it to 2 */
include/asm-ppc/global_data.h +0 -0
@@ -42,6 +42,9 @@ typedef struct global_data {unsigned long baudrate;unsigned long cpu_clk;/* CPU clock in
Hz! */ unsigned long bus_clk;
+#if defined(CONFIG_8xx)
+ unsigned long brg_clk;
+#endif
#if defined(CONFIG_CPM2)
/* There are many clocks on the MPC8260 - see page 9-5 */
unsigned long vco_out;
PATCH 3/3 8xx: Update and extend 8xx fdt support - resubmit
Quoted 5 lines · In message <[email protected]> you wrote:
Attached patch updates the 8xx fdt support for 8xx. As pointed out by Scott Wood -
OF_CPU,OF_TBCLKaren't needed andget_tbclk()should be used instead ofbd->bi_busfreq.Signed-off-by Bryan O'Donoghue <[email protected]>
...
Quoted 13 lines
cpu/mpc8xx/cpu.c +0
-7@@ -637,14 +637,3 @@ void reset_8xx_watchdog (volatile immap_t * immr)#endif /* CONFIG_WATCHDOG */ -/* ------------------------------------------------------------------------- */ -#if defined(CONFIG_OF_LIBFDT ) -void ft_cpu_setup (void *blob,bd_t *bd) -{ -char * cpu_path ="/cpus/" OF_CPU ; - - do_fixup_by_path_u32(blob, cpu_path, "bus-frequency", bd->bi_busfreq,
Quoted 1 line
1);
^^^^^
Quoted 2 lines
cpu/mpc8xx/cpu.c +0
-1- do_fixup_by_path_u32(blob, cpu_path, "timebase-frequency", OF_TBCLK,1);
^^^^^
Quoted 2 lines
cpu/mpc8xx/cpu.c +0
-1- do_fixup_by_path_u32(blob, cpu_path, "clock-frequency",
bd->bi_intfreq, 1); -}
^^^^^^^^^^^^^^^^^^^^^^^^
Patch is line-wrapped and does not apply. Please resubmit.
Best regards,
Wolfgang Denk
Signature · 7 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Your csh still thinks true is false. Write to your vendor today and
tell them that next year Configure ought to "rm /bin/csh" unless they
fix their blasted shell. :-)
- Larry Wall in Configure from the perl distribution