diff options
Diffstat (limited to 'arch/powerpc/cpu/mpc83xx')
-rw-r--r-- | arch/powerpc/cpu/mpc83xx/cpu.c | 1 | ||||
-rw-r--r-- | arch/powerpc/cpu/mpc83xx/cpu_init.c | 3 | ||||
-rw-r--r-- | arch/powerpc/cpu/mpc83xx/fdt.c | 6 | ||||
-rw-r--r-- | arch/powerpc/cpu/mpc83xx/speed.c | 31 | ||||
-rw-r--r-- | arch/powerpc/cpu/mpc83xx/traps.c | 29 | ||||
-rw-r--r-- | arch/powerpc/cpu/mpc83xx/u-boot.lds | 8 |
6 files changed, 48 insertions, 30 deletions
diff --git a/arch/powerpc/cpu/mpc83xx/cpu.c b/arch/powerpc/cpu/mpc83xx/cpu.c index 663510987d..e64b0c3411 100644 --- a/arch/powerpc/cpu/mpc83xx/cpu.c +++ b/arch/powerpc/cpu/mpc83xx/cpu.c @@ -56,6 +56,7 @@ int checkcpu(void) u32 partid; } cpu_type_list [] = { CPU_TYPE_ENTRY(8308), + CPU_TYPE_ENTRY(8309), CPU_TYPE_ENTRY(8311), CPU_TYPE_ENTRY(8313), CPU_TYPE_ENTRY(8314), diff --git a/arch/powerpc/cpu/mpc83xx/cpu_init.c b/arch/powerpc/cpu/mpc83xx/cpu_init.c index 76afba5dd2..20d06003e5 100644 --- a/arch/powerpc/cpu/mpc83xx/cpu_init.c +++ b/arch/powerpc/cpu/mpc83xx/cpu_init.c @@ -268,6 +268,9 @@ void cpu_init_f (volatile immap_t * im) #ifdef CONFIG_SYS_SICRL __raw_writel(CONFIG_SYS_SICRL, &im->sysconf.sicrl); #endif +#ifdef CONFIG_SYS_GPR1 + __raw_writel(CONFIG_SYS_GPR1, &im->sysconf.gpr1); +#endif #ifdef CONFIG_SYS_DDRCDR /* DDR control driver register */ __raw_writel(CONFIG_SYS_DDRCDR, &im->sysconf.ddrcdr); #endif diff --git a/arch/powerpc/cpu/mpc83xx/fdt.c b/arch/powerpc/cpu/mpc83xx/fdt.c index 028c8f0d58..1f54781b7e 100644 --- a/arch/powerpc/cpu/mpc83xx/fdt.c +++ b/arch/powerpc/cpu/mpc83xx/fdt.c @@ -88,7 +88,8 @@ void ft_cpu_setup(void *blob, bd_t *bd) u32 tmp[] = { 32, 0x8, 33, 0x8, 34, 0x8 }; path = fdt_path_offset(blob, prop); - prop = fdt_getprop(blob, path, "interrupts", 0); + prop = fdt_getprop(blob, path, "interrupts", + NULL); if (prop) fdt_setprop(blob, path, "interrupts", &tmp, sizeof(tmp)); @@ -100,7 +101,8 @@ void ft_cpu_setup(void *blob, bd_t *bd) u32 tmp[] = { 35, 0x8, 36, 0x8, 37, 0x8 }; path = fdt_path_offset(blob, prop); - prop = fdt_getprop(blob, path, "interrupts", 0); + prop = fdt_getprop(blob, path, "interrupts", + NULL); if (prop) fdt_setprop(blob, path, "interrupts", &tmp, sizeof(tmp)); diff --git a/arch/powerpc/cpu/mpc83xx/speed.c b/arch/powerpc/cpu/mpc83xx/speed.c index f78099d2fe..b8c05d1592 100644 --- a/arch/powerpc/cpu/mpc83xx/speed.c +++ b/arch/powerpc/cpu/mpc83xx/speed.c @@ -52,7 +52,7 @@ typedef struct { mult_t vco_divider; } corecnf_t; -corecnf_t corecnf_tab[] = { +static corecnf_t corecnf_tab[] = { {_byp, _byp}, /* 0x00 */ {_byp, _byp}, /* 0x01 */ {_byp, _byp}, /* 0x02 */ @@ -105,6 +105,8 @@ int get_clocks(void) u32 tsec1_clk; u32 tsec2_clk; u32 usbdr_clk; +#elif defined(CONFIG_MPC8309) + u32 usbdr_clk; #endif #ifdef CONFIG_MPC834x u32 usbmph_clk; @@ -120,14 +122,16 @@ int get_clocks(void) #if defined(CONFIG_FSL_ESDHC) u32 sdhc_clk; #endif +#if !defined(CONFIG_MPC8309) u32 enc_clk; +#endif u32 lbiu_clk; u32 lclk_clk; u32 mem_clk; #if defined(CONFIG_MPC8360) u32 mem_sec_clk; #endif -#if defined(CONFIG_MPC8360) || defined(CONFIG_MPC832x) +#if defined(CONFIG_QE) u32 qepmf; u32 qepdf; u32 qe_clk; @@ -185,7 +189,10 @@ int get_clocks(void) /* unkown SCCR_TSEC1CM value */ return -2; } +#endif +#if defined(CONFIG_MPC830x) || defined(CONFIG_MPC831x) || \ + defined(CONFIG_MPC834x) || defined(CONFIG_MPC837x) switch ((sccr & SCCR_USBDRCM) >> SCCR_USBDRCM_SHIFT) { case 0: usbdr_clk = 0; @@ -260,6 +267,7 @@ int get_clocks(void) return -6; } #endif +#if !defined(CONFIG_MPC8309) switch ((sccr & SCCR_ENCCM) >> SCCR_ENCCM_SHIFT) { case 0: enc_clk = 0; @@ -277,6 +285,7 @@ int get_clocks(void) /* unkown SCCR_ENCCM value */ return -7; } +#endif #if defined(CONFIG_FSL_ESDHC) switch ((sccr & SCCR_SDHCCM) >> SCCR_SDHCCM_SHIFT) { @@ -329,6 +338,8 @@ int get_clocks(void) i2c1_clk = sdhc_clk; #elif defined(CONFIG_MPC837x) i2c1_clk = enc_clk; +#elif defined(CONFIG_MPC8309) + i2c1_clk = csb_clk; #endif #if !defined(CONFIG_MPC832x) i2c2_clk = csb_clk; /* i2c-2 clk is equal to csb clk */ @@ -444,7 +455,7 @@ int get_clocks(void) return -13; } -#if defined(CONFIG_MPC8360) || defined(CONFIG_MPC832x) +#if defined(CONFIG_QE) qepmf = (im->clk.spmr & SPMR_CEPMF) >> SPMR_CEPMF_SHIFT; qepdf = (im->clk.spmr & SPMR_CEPDF) >> SPMR_CEPDF_SHIFT; qe_clk = (pci_sync_in * qepmf) / (1 + qepdf); @@ -457,6 +468,8 @@ int get_clocks(void) gd->tsec1_clk = tsec1_clk; gd->tsec2_clk = tsec2_clk; gd->usbdr_clk = usbdr_clk; +#elif defined(CONFIG_MPC8309) + gd->usbdr_clk = usbdr_clk; #endif #if defined(CONFIG_MPC834x) gd->usbmph_clk = usbmph_clk; @@ -472,14 +485,16 @@ int get_clocks(void) #if !defined(CONFIG_MPC832x) gd->i2c2_clk = i2c2_clk; #endif +#if !defined(CONFIG_MPC8309) gd->enc_clk = enc_clk; +#endif gd->lbiu_clk = lbiu_clk; gd->lclk_clk = lclk_clk; gd->mem_clk = mem_clk; #if defined(CONFIG_MPC8360) gd->mem_sec_clk = mem_sec_clk; #endif -#if defined(CONFIG_MPC8360) || defined(CONFIG_MPC832x) +#if defined(CONFIG_QE) gd->qe_clk = qe_clk; gd->brg_clk = brg_clk; #endif @@ -516,14 +531,14 @@ ulong get_ddr_freq(ulong dummy) return gd->mem_clk; } -int do_clocks (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[]) +static int do_clocks(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { char buf[32]; printf("Clock configuration:\n"); printf(" Core: %-4s MHz\n", strmhz(buf, gd->core_clk)); printf(" Coherent System Bus: %-4s MHz\n", strmhz(buf, gd->csb_clk)); -#if defined(CONFIG_MPC8360) || defined(CONFIG_MPC832x) +#if defined(CONFIG_QE) printf(" QE: %-4s MHz\n", strmhz(buf, gd->qe_clk)); printf(" BRG: %-4s MHz\n", strmhz(buf, gd->brg_clk)); #endif @@ -533,7 +548,9 @@ int do_clocks (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[]) #if defined(CONFIG_MPC8360) printf(" DDR Secondary: %-4s MHz\n", strmhz(buf, gd->mem_sec_clk)); #endif +#if !defined(CONFIG_MPC8309) printf(" SEC: %-4s MHz\n", strmhz(buf, gd->enc_clk)); +#endif printf(" I2C1: %-4s MHz\n", strmhz(buf, gd->i2c1_clk)); #if !defined(CONFIG_MPC832x) printf(" I2C2: %-4s MHz\n", strmhz(buf, gd->i2c2_clk)); @@ -549,6 +566,8 @@ int do_clocks (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[]) printf(" TSEC1: %-4s MHz\n", strmhz(buf, gd->tsec1_clk)); printf(" TSEC2: %-4s MHz\n", strmhz(buf, gd->tsec2_clk)); printf(" USB DR: %-4s MHz\n", strmhz(buf, gd->usbdr_clk)); +#elif defined(CONFIG_MPC8309) + printf(" USB DR: %-4s MHz\n", strmhz(buf, gd->usbdr_clk)); #endif #if defined(CONFIG_MPC834x) printf(" USB MPH: %-4s MHz\n", strmhz(buf, gd->usbmph_clk)); diff --git a/arch/powerpc/cpu/mpc83xx/traps.c b/arch/powerpc/cpu/mpc83xx/traps.c index 9d71b8b730..53a1062ea8 100644 --- a/arch/powerpc/cpu/mpc83xx/traps.c +++ b/arch/powerpc/cpu/mpc83xx/traps.c @@ -42,8 +42,7 @@ extern unsigned long search_exception_table(unsigned long); * Trap & Exception support */ -void -print_backtrace(unsigned long *sp) +static void print_backtrace(unsigned long *sp) { int cnt = 0; unsigned long i; @@ -63,7 +62,7 @@ print_backtrace(unsigned long *sp) putc ('\n'); } -void show_regs(struct pt_regs * regs) +void show_regs(struct pt_regs *regs) { int i; @@ -89,8 +88,7 @@ void show_regs(struct pt_regs * regs) } -void -_exception(int signr, struct pt_regs *regs) +static void _exception(int signr, struct pt_regs *regs) { show_regs(regs); print_backtrace((unsigned long *)regs->gpr[1]); @@ -114,8 +112,7 @@ void dump_pci (void) } #endif -void -MachineCheckException(struct pt_regs *regs) +void MachineCheckException(struct pt_regs *regs) { unsigned long fixup; @@ -174,8 +171,7 @@ MachineCheckException(struct pt_regs *regs) panic("machine check"); } -void -AlignmentException(struct pt_regs *regs) +void AlignmentException(struct pt_regs *regs) { #if defined(CONFIG_CMD_KGDB) if (debugger_exception_handler && (*debugger_exception_handler)(regs)) @@ -186,8 +182,7 @@ AlignmentException(struct pt_regs *regs) panic("Alignment Exception"); } -void -ProgramCheckException(struct pt_regs *regs) +void ProgramCheckException(struct pt_regs *regs) { #if defined(CONFIG_CMD_KGDB) if (debugger_exception_handler && (*debugger_exception_handler)(regs)) @@ -198,8 +193,7 @@ ProgramCheckException(struct pt_regs *regs) panic("Program Check Exception"); } -void -SoftEmuException(struct pt_regs *regs) +void SoftEmuException(struct pt_regs *regs) { #if defined(CONFIG_CMD_KGDB) if (debugger_exception_handler && (*debugger_exception_handler)(regs)) @@ -211,8 +205,7 @@ SoftEmuException(struct pt_regs *regs) } -void -UnknownException(struct pt_regs *regs) +void UnknownException(struct pt_regs *regs) { #if defined(CONFIG_CMD_KGDB) if (debugger_exception_handler && (*debugger_exception_handler)(regs)) @@ -227,8 +220,7 @@ UnknownException(struct pt_regs *regs) extern void do_bedbug_breakpoint(struct pt_regs *); #endif -void -DebugException(struct pt_regs *regs) +void DebugException(struct pt_regs *regs) { printf("Debugger trap at @ %lx\n", regs->nip ); show_regs(regs); @@ -240,8 +232,7 @@ DebugException(struct pt_regs *regs) /* Probe an address by reading. If not present, return -1, otherwise * return 0. */ -int -addr_probe(uint *addr) +int addr_probe(uint *addr) { #if 0 int retval; diff --git a/arch/powerpc/cpu/mpc83xx/u-boot.lds b/arch/powerpc/cpu/mpc83xx/u-boot.lds index 2f4b9ad557..d699def9dd 100644 --- a/arch/powerpc/cpu/mpc83xx/u-boot.lds +++ b/arch/powerpc/cpu/mpc83xx/u-boot.lds @@ -58,9 +58,11 @@ SECTIONS PROVIDE (edata = .); . = .; - __u_boot_cmd_start = .; - .u_boot_cmd : { *(.u_boot_cmd) } - __u_boot_cmd_end = .; + + . = ALIGN(4); + .u_boot_list : { + #include <u-boot.lst> + } . = .; |