Add initial iomega StorCenter board port.
RFC PATCH 2/3 Add initial iomega StorCenter board port.
Use cuImage bootwrapper until U-Boot port is completed. Derived heavily from Linkstation port.
---
Nope, I have NOT verified that the bd_t file that is used here byte-identical to U-Boot's layout yet. [ There is _always_ something more to do... ]
arch/powerpc/boot/Makefile | 3 +- arch/powerpc/boot/cuboot-824x.c | 52 ++++++++ arch/powerpc/platforms/embedded6xx/Kconfig | 15 ++- arch/powerpc/platforms/embedded6xx/Makefile | 2 + arch/powerpc/platforms/embedded6xx/storcenter.c | 158 +++++++++++++++++++++++ 5 files changed, 227 insertions(+), 3 deletions(-) create mode 100644 arch/powerpc/boot/cuboot-824x.c create mode 100644 arch/powerpc/platforms/embedded6xx/storcenter.c
arch/powerpc/boot/Makefile +2 -1
@@ -57,7 +57,7 @@ src-wlib := string.S crt0.S stdio.c main.c \ 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \ cpm-serial.c stdlib.c mpc52xx-psc.c planetcore.c uartlite.c \ fsl-soc.c mpc8xx.c pq2.c -src-plat := of.c cuboot-52xx.c cuboot-83xx.c cuboot-85xx.c holly.c \ +src-plat := of.c cuboot-52xx.c cuboot-824x.c cuboot-83xx.c cuboot-85xx.c holly.c \ cuboot-ebony.c treeboot-ebony.c prpmc2800.c \ ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c \ cuboot-pq2.c cuboot-sequoia.c treeboot-walnut.c cuboot-bamboo.c \
@@ -196,6 +196,7 @@ image-$(CONFIG_PPC_EP88XC) += zImage.ep88xc image-$(CONFIG_EP405) += zImage.ep405 image-$(CONFIG_8260) += cuImage.pq2 image-$(CONFIG_PPC_MPC52xx) += cuImage.52xx +image-$(CONFIG_STORCENTER) += cuImage.824x image-$(CONFIG_PPC_83xx) += cuImage.83xx image-$(CONFIG_PPC_85xx) += cuImage.85xx image-$(CONFIG_MPC7448HPC2) += cuImage.hpc2
arch/powerpc/boot/cuboot-824x.c new file +52 -0
52 lines not on this page · raw message
arch/powerpc/platforms/embedded6xx/Kconfig +13 -2
@@ -16,6 +16,17 @@ config LINKSTATION Linkstation-I HD-HLAN and HD-HGLAN versions, and PPC-based Terastation systems should be supported too. +config STORCENTER + bool "IOMEGA StorCenter" + depends on EMBEDDED6xx + select MPIC + select FSL_SOC + select PPC_UDBG_16550 if SERIAL_8250 + select WANT_DEVICE_TREE + help + Select STORCENTER if configuring for the iomega StorCenter + with an 8241 CPU in it. + config MPC7448HPC2 bool "Freescale MPC7448HPC2(Taiga)" depends on EMBEDDED6xx
@@ -56,7 +67,7 @@ config TSI108_BRIDGE config MPC10X_BRIDGE bool - depends on LINKSTATION + depends on LINKSTATION || STORCENTER select PPC_INDIRECT_PCI default y
@@ -67,7 +78,7 @@ config MV64X60 config MPC10X_OPENPIC bool - depends on LINKSTATION + depends on LINKSTATION || STORCENTER default y config MPC10X_STORE_GATHERING
arch/powerpc/platforms/embedded6xx/Makefile +2 -0
@@ -3,5 +3,7 @@ # obj-$(CONFIG_MPC7448HPC2) += mpc7448_hpc2.o obj-$(CONFIG_LINKSTATION) += linkstation.o ls_uart.o +obj-$(CONFIG_STORCENTER) += storcenter.o obj-$(CONFIG_PPC_HOLLY) += holly.o obj-$(CONFIG_PPC_PRPMC2800) += prpmc2800.o +obj-$(CONFIG_STORCENTER) += storcenter.o
arch/powerpc/platforms/embedded6xx/storcenter.c new file +158 -0
158 lines not on this page · raw message
Signature · 1 line
1.5.4.rc0
arch/powerpc/platforms/embedded6xx/Kconfig
Quoted 12 lines · Jon Loeliger
Use cuImage bootwrapper until U-Boot port is completed. Derived heavily from Linkstation port.
Signed-off-by Andy Wilcox <[email protected]>Signed-off-by Jon Loeliger <[email protected]>---
arch/powerpc/platforms/embedded6xx/Kconfig +0
-0
Curious; why in platforms/embedded6xx vs platforms/82xx?
arch/powerpc/platforms/embedded6xx/Makefile line 9
Quoted 12 lines
arch/powerpc/platforms/embedded6xx/Makefile +2
-0@@ -3,5 +3,7 @@ # obj-$(CONFIG_MPC7448HPC2) += mpc7448_hpc2.o obj-$(CONFIG_LINKSTATION) += linkstation.o ls_uart.o +obj-$(CONFIG_STORCENTER) += storcenter.o obj-$(CONFIG_PPC_HOLLY) += holly.o obj-$(CONFIG_PPC_PRPMC2800) += prpmc2800.o +obj-$(CONFIG_STORCENTER) += storcenter.o
Linked twice?
Cheers,
g.
Signature · 4 lines
Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd. [email protected] (403) 399-0195
So, like, the other day "Grant Likely" mumbled:
Quoted 2 lines
Curious; why in platforms/embedded6xx vs platforms/82xx?
82xx is nominally the _other_ 82xx family. :-) This is just more historical precedent, and the fact that it is similar to the linkstation there.
Quoted 8 lines
arch/powerpc/platforms/embedded6xx/Makefile line 9
Quoted 6 lines
obj-$(CONFIG_MPC7448HPC2) += mpc7448_hpc2.o
obj-$(CONFIG_LINKSTATION) += linkstation.o ls_uart.oarch/powerpc/platforms/embedded6xx/Makefile +2
-0+obj-$(CONFIG_STORCENTER) += storcenter.o obj-$(CONFIG_PPC_HOLLY) += holly.o obj-$(CONFIG_PPC_PRPMC2800) += prpmc2800.o +obj-$(CONFIG_STORCENTER) += storcenter.oLinked twice?
I wanted to make double-sure to screw it up. You know. :-)
Thanks,
jdl
Quoted 131 lines · Jon Loeliger
Use cuImage bootwrapper until U-Boot port is completed. Derived heavily from Linkstation port.
Signed-off-by Andy Wilcox <[email protected]>Signed-off-by Jon Loeliger <[email protected]>---
Nope, I have NOT verified that the
bd_tfile that is used here byte-identical to U-Boot's layout yet. [ There is _always_ something more to do... ]arch/powerpc/boot/Makefile | 3 +- arch/powerpc/boot/cuboot-824x.c | 52 ++++++++ arch/powerpc/platforms/embedded6xx/Kconfig | 15 ++- arch/powerpc/platforms/embedded6xx/Makefile | 2 + arch/powerpc/platforms/embedded6xx/storcenter.c | 158 +++++++++++++++++++++++ 5 files changed, 227 insertions(+), 3 deletions(-) create mode 100644 arch/powerpc/boot/cuboot-824x.c create mode 100644 arch/powerpc/platforms/embedded6xx/storcenter.carch/powerpc/boot/Makefile +2
-1@@ -57,7 +57,7 @@ src-wlib := string.S crt0.S stdio.c main.c \ 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \ cpm-serial.c stdlib.c mpc52xx-psc.c planetcore.c uartlite.c \ fsl-soc.c mpc8xx.c pq2.c -src-plat := of.c cuboot-52xx.c cuboot-83xx.c cuboot-85xx.c holly.c \ +src-plat := of.c cuboot-52xx.c cuboot-824x.c cuboot-83xx.c cuboot-85xx.c holly.c \ cuboot-ebony.c treeboot-ebony.c prpmc2800.c \ ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c \ cuboot-pq2.c cuboot-sequoia.c treeboot-walnut.c cuboot-bamboo.c \@@ -196,6 +196,7 @@ image-$(CONFIG_PPC_EP88XC) += zImage.ep88xc image-$(CONFIG_EP405) += zImage.ep405 image-$(CONFIG_8260) += cuImage.pq2 image-$(CONFIG_PPC_MPC52xx) += cuImage.52xx +image-$(CONFIG_STORCENTER) += cuImage.824x image-$(CONFIG_PPC_83xx) += cuImage.83xx image-$(CONFIG_PPC_85xx) += cuImage.85xx image-$(CONFIG_MPC7448HPC2) += cuImage.hpc2arch/powerpc/boot/cuboot-824x.c new file +52
-0@@ -0,0 +1,52 @@ +/* +* Old U-boot compatibility for 824x +* +* Copyright (c) 2007 Freescale Semiconductor, Inc. +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License version 2 as published +* by the Free Software Foundation. +*/ + +#include "ops.h" +#include "stdio.h" +#include "cuboot.h" + +#define TARGET_824x +#include "ppcboot.h" + +static bd_t bd; + +static void platform_fixups (void ) +{ +void *soc; + +dt_fixup_memory (bd.bi_memstart, bd.bi_memsize); +dt_fixup_mac_addresses (bd.bi_enetaddr); +dt_fixup_cpu_clocks (bd.bi_intfreq, bd.bi_busfreq /4 , bd.bi_busfreq); + + soc =find_node_by_devtype (NULL ,"soc" ); +if (soc) { +void *serial =NULL ; + +setprop (soc,"bus-frequency" , &bd.bi_busfreq, +sizeof (bd.bi_busfreq)); + +while ((serial =find_node_by_devtype (serial,"serial" ))) { +if (get_parent (serial) != soc) +continue ; + +setprop (serial,"clock-frequency" , &bd.bi_busfreq, +sizeof (bd.bi_busfreq)); + } + } +} + +void platform_init (unsigned long r3,unsigned long r4,unsigned long r5, +unsigned long r6,unsigned long r7) +{ +CUBOOT_INIT (); +fdt_init (_dtb_start); +serial_console_init (); + platform_ops.fixups = platform_fixups; +}arch/powerpc/platforms/embedded6xx/Kconfig +12
-1@@ -16,6 +16,17 @@ config LINKSTATION Linkstation-I HD-HLAN and HD-HGLAN versions, and PPC-based Terastation systems should be supported too. +config STORCENTER + bool "IOMEGA StorCenter" + depends on EMBEDDED6xx + select MPIC + select FSL_SOC + select PPC_UDBG_16550 if SERIAL_8250 + select WANT_DEVICE_TREE + help + Select STORCENTER if configuring for the iomega StorCenter + with an 8241 CPU in it. + config MPC7448HPC2 bool "Freescale MPC7448HPC2(Taiga)" depends on EMBEDDED6xx@@ -56,7 +67,7 @@ config TSI108_BRIDGE config MPC10X_BRIDGE bool - depends on LINKSTATION + depends on LINKSTATION || STORCENTER select PPC_INDIRECT_PCI default y
arch/powerpc/platforms/embedded6xx/Kconfig config MV64X60 · line 82
Quoted 6 lines
arch/powerpc/platforms/embedded6xx/Kconfig +1
-1@@ -67,7 +78,7 @@ config MV64X60 config MPC10X_OPENPIC bool - depends on LINKSTATION + depends on LINKSTATION || STORCENTER default y
There are many boards out there with mpc10x chips; we really don't want to maintain a huge list of them in the dependency list of these options.
Can we take out the dependencies and the default y, and just select them in the individual board configs?
arch/powerpc/platforms/embedded6xx/Kconfig config MV64X60
Quoted 11 lines
arch/powerpc/platforms/embedded6xx/Kconfig +11
-0+#ifdef CONFIG_PCI + int len; + struct pci_controller *hose; + const int *bus_range; + + printk("Adding PCI host bridge %s\n", dev->full_name); + + bus_range = of_get_property(dev, "bus-range", &len); + if (bus_range == NULL || len < 2 * sizeof(int)) + printk(KERN_WARNING "Can't get bus-range for %s, assume" + " bus 0\n", dev->full_name);
This warning should probably go away. Does this board even have multiple PCI host buses? Why is this done from board-specific code, anyway?
arch/powerpc/platforms/embedded6xx/Kconfig
Quoted 9 lines
arch/powerpc/platforms/embedded6xx/Kconfig +9
-0+static void storcenter_restart(char *cmd) +{ + /* Insert restart-stuff */ +} + +static void storcenter_power_off(void) +{ + /* Insert powerdown-stuff */ +}
Shouldn't these be omitted until they actually do something, so that the generic infinite loop implementations can be used?
arch/powerpc/platforms/embedded6xx/Kconfig
Quoted 5 lines
arch/powerpc/platforms/embedded6xx/Kconfig +5
-0+static void storcenter_show_cpuinfo(struct seq_file *m) +{ + seq_printf(m, "vendor\t\t: IOMEGA\n"); + seq_printf(m, "machine\t\t: StorCenter\n"); +}
ppc_md.name is printed by the generic cpuinfo handler; this is redundant.
-Scott
So, like, the other day Scott Wood mumbled:
Quoted 40 lines
Quoted 30 lines
arch/powerpc/platforms/embedded6xx/Kconfig +12
-1@@ -16,6 +16,17 @@ config LINKSTATION Linkstation-I HD-HLAN and HD-HGLAN versions, and PPC-based Terastation systems should be supported too. +config STORCENTER + bool "IOMEGA StorCenter" + depends on EMBEDDED6xx + select MPIC + select FSL_SOC + select PPC_UDBG_16550 if SERIAL_8250 + select WANT_DEVICE_TREE + help + Select STORCENTER if configuring for the iomega StorCenter + with an 8241 CPU in it. + config MPC7448HPC2 bool "Freescale MPC7448HPC2(Taiga)" depends on EMBEDDED6xx@@ -56,7 +67,7 @@ config TSI108_BRIDGE config MPC10X_BRIDGE bool - depends on LINKSTATION + depends on LINKSTATION || STORCENTER select PPC_INDIRECT_PCI default yarch/powerpc/platforms/embedded6xx/Kconfig config MV64X60 · line 82
Quoted 6 lines
arch/powerpc/platforms/embedded6xx/Kconfig +1
-1@@ -67,7 +78,7 @@ config MV64X60 config MPC10X_OPENPIC bool - depends on LINKSTATION + depends on LINKSTATION || STORCENTER default yThere are many boards out there with mpc10x chips; we really don't want to maintain a huge list of them in the dependency list of these options.
Quoted 2 lines
Can we take out the dependencies and the default y, and just select them in the individual board configs?
Yeah. That and, shouldn't those choices be mutually exclusive in a "choice" arrangement instead too?
Quoted 6 lines
Quoted 6 lines
arch/powerpc/platforms/embedded6xx/Kconfig +6
-0+#ifdef CONFIG_PCI + int len; + struct pci_controller *hose; + const int *bus_range; + + printk("Adding PCI host bridge %s\n", dev->full_name);
Quoted 8 lines
arch/powerpc/platforms/embedded6xx/Kconfig
Quoted 5 lines
arch/powerpc/platforms/embedded6xx/Kconfig +5
-0+ + bus_range = of_get_property(dev, "bus-range", &len); + if (bus_range == NULL || len < 2 * sizeof(int)) + printk(KERN_WARNING "Can't get bus-range for %s, assume" + " bus 0\n", dev->full_name);This warning should probably go away. Does this board even have multiple PCI host buses?
Hmmm... Yeah all likely true.
Quoted 1 line
Why is this done from board-specific code, anyway?
History.
Quoted 4 lines
Quoted 4 lines
arch/powerpc/platforms/embedded6xx/Kconfig +4
-0+static void storcenter_restart(char *cmd) +{ + /* Insert restart-stuff */ +}
Quoted 8 lines
arch/powerpc/platforms/embedded6xx/Kconfig
Quoted 5 lines
arch/powerpc/platforms/embedded6xx/Kconfig +5
-0+ +static void storcenter_power_off(void) +{ + /* Insert powerdown-stuff */ +}Shouldn't these be omitted until they actually do something, so that the generic infinite loop implementations can be used?
OK.
Quoted 7 lines
arch/powerpc/platforms/embedded6xx/Kconfig
Quoted 5 lines
arch/powerpc/platforms/embedded6xx/Kconfig +5
-0+static void storcenter_show_cpuinfo(struct seq_file *m) +{ + seq_printf(m, "vendor\t\t: IOMEGA\n"); + seq_printf(m, "machine\t\t: StorCenter\n"); +}ppc_md.name is printed by the generic cpuinfo handler; this is redundant.
Ah, right.
Thanks for your review time.
jdl
Quoted 4 lines · Jon Loeliger
Quoted 1 line
Can we take out the dependencies and the default y, and just select them in the individual board configs?
Yeah. That and, shouldn't those choices be mutually exclusive in a "choice" arrangement instead too?
No, "choice" sucks for multiplatform.
-Scott