* [PATCH 0/7] Powerpc support for SBC8560 board
@ 2008-01-07 14:25 Paul Gortmaker
[not found] ` <ef7d84e06c45289f51f35845ccaa63bbf31827db.1199715362.git.paul.gortmaker@windriver.com>
2008-01-24 9:30 ` [PATCH 0/7] Powerpc support for SBC8560 board Kumar Gala
0 siblings, 2 replies; 33+ messages in thread
From: Paul Gortmaker @ 2008-01-07 14:25 UTC (permalink / raw)
To: linuxppc-dev
This is a respin of the sbc8560 patches, incorporating the feedback and
suggested changes from everyone. Changes include:
-coding style and missing of_put (Stephen Rothwell)
-minor dtc cleanups for gianfar, mdio, mpic etc. (David Gibson / Kumar Gala)
-use for_each macros in legacy_serial to improve readability, and as
groundwork for next change (me)
-convert dtc "duart" + "device-type="soc" thing to be an epld entry
listed as compatible with "localbus" -- plus add localbus as an acceptable
parent in legacy_serial (David Gibson / Scott Wood)
-rtc is now a child of the epld/localbus and does not use device_type
in the dtc, nor in the platform detection code (David Gibson)
-add CPM2 data to dts for FCC ports (on optional daughterboard) based
on the MPC8560ADS dts (me)
-add dts aliases, conversion to dts-v1 (Kumar)
Patches are as follows:
1 powerpc-use-for_each-in-legacy_serial.txt
2 powerpc-allow-localbus-compatible-serial-ports-for-console-device.txt
3 sbc8560-add-support-for-Wind-River-SBC8560-in-arch-powerpc.txt
4 sbc8560-Add-device-tree-source-for-Wind-River-SBC8560-board.txt
5 sbc8560-Convert-WRS-SBC8560-device-tree-to-v1-format.txt
6 CPM2-Make-support-for-the-CPM2-optional-on-8560-based-boards.txt
7 sbc8560-Add-default-.config-file-for-Wind-River-SBC8560.txt
Thanks again to all those who provided feedback.
Paul.
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 1/7] powerpc: use for_each in legacy_serial
[not found] ` <ef7d84e06c45289f51f35845ccaa63bbf31827db.1199715362.git.paul.gortmaker@windriver.com>
@ 2008-01-07 14:25 ` Paul Gortmaker
[not found] ` <f6302303b90b7e1516a1f61d85f1eafd51ec3b51.1199715362.git.paul.gortmaker@windriver.com>
` (5 subsequent siblings)
6 siblings, 0 replies; 33+ messages in thread
From: Paul Gortmaker @ 2008-01-07 14:25 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Paul Gortmaker
Use for_each to iterate over device tree nodes in legacy_serial.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
arch/powerpc/kernel/legacy_serial.c | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/arch/powerpc/kernel/legacy_serial.c b/arch/powerpc/kernel/legacy_serial.c
index b9cae6b..a17a5d0 100644
--- a/arch/powerpc/kernel/legacy_serial.c
+++ b/arch/powerpc/kernel/legacy_serial.c
@@ -307,7 +307,7 @@ void __init find_legacy_serial_ports(void)
}
/* First fill our array with SOC ports */
- for (np = NULL; (np = of_find_compatible_node(np, "serial", "ns16550")) != NULL;) {
+ for_each_compatible_node(np, "serial", "ns16550") {
struct device_node *soc = of_get_parent(np);
if (soc && !strcmp(soc->type, "soc")) {
index = add_legacy_soc_port(np, np);
@@ -317,8 +317,8 @@ void __init find_legacy_serial_ports(void)
of_node_put(soc);
}
- /* First fill our array with ISA ports */
- for (np = NULL; (np = of_find_node_by_type(np, "serial"));) {
+ /* Next, fill our array with ISA ports */
+ for_each_node_by_type(np, "serial") {
struct device_node *isa = of_get_parent(np);
if (isa && !strcmp(isa->name, "isa")) {
index = add_legacy_isa_port(np, isa);
@@ -328,8 +328,8 @@ void __init find_legacy_serial_ports(void)
of_node_put(isa);
}
- /* First fill our array with tsi-bridge ports */
- for (np = NULL; (np = of_find_compatible_node(np, "serial", "ns16550")) != NULL;) {
+ /* Next, fill our array with tsi-bridge ports */
+ for_each_compatible_node(np, "serial", "ns16550") {
struct device_node *tsi = of_get_parent(np);
if (tsi && !strcmp(tsi->type, "tsi-bridge")) {
index = add_legacy_soc_port(np, np);
@@ -339,8 +339,8 @@ void __init find_legacy_serial_ports(void)
of_node_put(tsi);
}
- /* First fill our array with opb bus ports */
- for (np = NULL; (np = of_find_compatible_node(np, "serial", "ns16550")) != NULL;) {
+ /* Next, fill our array with opb bus ports */
+ for_each_compatible_node(np, "serial", "ns16550") {
struct device_node *opb = of_get_parent(np);
if (opb && (!strcmp(opb->type, "opb") ||
of_device_is_compatible(opb, "ibm,opb"))) {
--
1.5.0.rc1.gf4b6c
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 2/7] powerpc: allow localbus compatible serial ports for console device
[not found] ` <f6302303b90b7e1516a1f61d85f1eafd51ec3b51.1199715362.git.paul.gortmaker@windriver.com>
@ 2008-01-07 14:25 ` Paul Gortmaker
2008-01-07 14:33 ` Arnd Bergmann
0 siblings, 1 reply; 33+ messages in thread
From: Paul Gortmaker @ 2008-01-07 14:25 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Paul Gortmaker
Add to legacy_serial the ability to use any ns16550 compatible
UART with a parent that is compatible with "localbus" as the
console device.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
arch/powerpc/kernel/legacy_serial.c | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/arch/powerpc/kernel/legacy_serial.c b/arch/powerpc/kernel/legacy_serial.c
index a17a5d0..d0b8e35 100644
--- a/arch/powerpc/kernel/legacy_serial.c
+++ b/arch/powerpc/kernel/legacy_serial.c
@@ -351,6 +351,17 @@ void __init find_legacy_serial_ports(void)
of_node_put(opb);
}
+ /* Next, fill our array with any localbus serial ports */
+ for_each_compatible_node(np, "serial", "ns16550") {
+ struct device_node *lbs = of_get_parent(np);
+ if (lbs && of_device_is_compatible(lbs, "localbus")) {
+ index = add_legacy_soc_port(np, np);
+ if (index >= 0 && np == stdout)
+ legacy_serial_console = index;
+ }
+ of_node_put(lbs);
+ }
+
#ifdef CONFIG_PCI
/* Next, try to locate PCI ports */
for (np = NULL; (np = of_find_all_nodes(np));) {
--
1.5.0.rc1.gf4b6c
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 3/7] sbc8560: add support for Wind River SBC8560 in arch/powerpc
[not found] ` <2e29068028918298af42b5ed07f7db147b81c921.1199715362.git.paul.gortmaker@windriver.com>
@ 2008-01-07 14:25 ` Paul Gortmaker
2008-01-08 0:32 ` Stephen Rothwell
0 siblings, 1 reply; 33+ messages in thread
From: Paul Gortmaker @ 2008-01-07 14:25 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Paul Gortmaker
This adds support for the Wind River SBC8560 board, implemented as
powerpc. It closely follows the implementation of the MPC8560ADS.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
arch/powerpc/platforms/85xx/Kconfig | 11 +-
arch/powerpc/platforms/85xx/Makefile | 1 +
arch/powerpc/platforms/85xx/sbc8560.c | 298 +++++++++++++++++++++++++++++++++
3 files changed, 308 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig
index 7748a3a..0eb497b 100644
--- a/arch/powerpc/platforms/85xx/Kconfig
+++ b/arch/powerpc/platforms/85xx/Kconfig
@@ -38,6 +38,13 @@ config MPC85xx_DS
help
This option enables support for the MPC85xx DS (MPC8544 DS) board
+config SBC8560
+ bool "Wind River SBC8560"
+ select DEFAULT_UIMAGE
+ select PPC_CPM_NEW_BINDING
+ help
+ This option enables support for the Wind River SBC8560 board
+
endchoice
config MPC8540
@@ -49,7 +56,7 @@ config MPC8540
config MPC8560
bool
select CPM2
- default y if MPC8560_ADS
+ default y if MPC8560_ADS || SBC8560
config MPC85xx
bool
@@ -59,4 +66,4 @@ config MPC85xx
select FSL_PCI if PCI
select SERIAL_8250_SHARE_IRQ if SERIAL_8250
default y if MPC8540_ADS || MPC85xx_CDS || MPC8560_ADS \
- || MPC85xx_MDS || MPC85xx_DS
+ || MPC85xx_MDS || MPC85xx_DS || SBC8560
diff --git a/arch/powerpc/platforms/85xx/Makefile b/arch/powerpc/platforms/85xx/Makefile
index 5eca920..c3f4d01 100644
--- a/arch/powerpc/platforms/85xx/Makefile
+++ b/arch/powerpc/platforms/85xx/Makefile
@@ -6,3 +6,4 @@ obj-$(CONFIG_MPC8560_ADS) += mpc85xx_ads.o
obj-$(CONFIG_MPC85xx_CDS) += mpc85xx_cds.o
obj-$(CONFIG_MPC85xx_DS) += mpc85xx_ds.o
obj-$(CONFIG_MPC85xx_MDS) += mpc85xx_mds.o
+obj-$(CONFIG_SBC8560) += sbc8560.o
diff --git a/arch/powerpc/platforms/85xx/sbc8560.c b/arch/powerpc/platforms/85xx/sbc8560.c
new file mode 100644
index 0000000..ca9d90f
--- /dev/null
+++ b/arch/powerpc/platforms/85xx/sbc8560.c
@@ -0,0 +1,298 @@
+/*
+ * Wind River SBC8560 setup and early boot code.
+ *
+ * Copyright 2007 Wind River Systems Inc.
+ *
+ * By Paul Gortmaker (see MAINTAINERS for contact information)
+ *
+ * Based largely on the MPC8560ADS support - Copyright 2005 Freescale Inc.
+ *
+ * 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.
+ */
+
+#include <linux/stddef.h>
+#include <linux/kernel.h>
+#include <linux/pci.h>
+#include <linux/kdev_t.h>
+#include <linux/delay.h>
+#include <linux/seq_file.h>
+#include <linux/of_platform.h>
+
+#include <asm/system.h>
+#include <asm/time.h>
+#include <asm/machdep.h>
+#include <asm/pci-bridge.h>
+#include <asm/mpic.h>
+#include <mm/mmu_decl.h>
+#include <asm/udbg.h>
+
+#include <sysdev/fsl_soc.h>
+#include <sysdev/fsl_pci.h>
+
+#ifdef CONFIG_CPM2
+#include <asm/cpm2.h>
+#include <sysdev/cpm2_pic.h>
+#endif
+
+#ifdef CONFIG_PCI
+static int sbc8560_exclude_device(struct pci_controller *hose,
+ u_char bus, u_char devfn)
+{
+ if (bus == 0 && PCI_SLOT(devfn) == 0)
+ return PCIBIOS_DEVICE_NOT_FOUND;
+ else
+ return PCIBIOS_SUCCESSFUL;
+}
+#endif /* CONFIG_PCI */
+
+#ifdef CONFIG_CPM2
+
+static void cpm2_cascade(unsigned int irq, struct irq_desc *desc)
+{
+ int cascade_irq;
+
+ while ((cascade_irq = cpm2_get_irq()) >= 0)
+ generic_handle_irq(cascade_irq);
+
+ desc->chip->eoi(irq);
+}
+
+#endif /* CONFIG_CPM2 */
+
+static void __init sbc8560_pic_init(void)
+{
+ struct mpic *mpic;
+ struct resource r;
+ struct device_node *np = NULL;
+#ifdef CONFIG_CPM2
+ int irq;
+#endif
+
+ np = of_find_node_by_type(np, "open-pic");
+ if (!np) {
+ printk(KERN_ERR "Could not find open-pic node\n");
+ return;
+ }
+
+ if (of_address_to_resource(np, 0, &r)) {
+ printk(KERN_ERR "Could not map mpic register space\n");
+ of_node_put(np);
+ return;
+ }
+
+ mpic = mpic_alloc(np, r.start,
+ MPIC_PRIMARY | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN,
+ 0, 256, " OpenPIC ");
+ BUG_ON(mpic == NULL);
+ of_node_put(np);
+
+ mpic_init(mpic);
+
+#ifdef CONFIG_CPM2
+ /* Setup CPM2 PIC */
+ np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic");
+ if (np == NULL) {
+ printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n");
+ return;
+ }
+ irq = irq_of_parse_and_map(np, 0);
+
+ cpm2_pic_init(np);
+ of_node_put(np);
+ set_irq_chained_handler(irq, cpm2_cascade);
+#endif
+}
+
+/*
+ * Setup the architecture
+ */
+#ifdef CONFIG_CPM2
+struct cpm_pin {
+ int port, pin, flags;
+};
+
+static const struct cpm_pin sbc8560_pins[] = {
+ /* SCC1 */
+ {3, 29, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY},
+ {3, 30, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY},
+ {3, 31, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
+
+ /* SCC2 */
+ {3, 26, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY},
+ {3, 27, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY},
+ {3, 28, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
+
+ /* FCC2 */
+ {1, 18, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
+ {1, 19, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
+ {1, 20, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
+ {1, 21, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
+ {1, 22, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY},
+ {1, 23, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY},
+ {1, 24, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY},
+ {1, 25, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY},
+ {1, 26, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
+ {1, 27, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
+ {1, 28, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
+ {1, 29, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY},
+ {1, 30, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
+ {1, 31, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY},
+ {2, 18, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, /* CLK14 */
+ {2, 19, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, /* CLK13 */
+
+ /* FCC3 */
+ {1, 4, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY},
+ {1, 5, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY},
+ {1, 6, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY},
+ {1, 7, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY},
+ {1, 8, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
+ {1, 9, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
+ {1, 10, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
+ {1, 11, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
+ {1, 12, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
+ {1, 13, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
+ {1, 14, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY},
+ {1, 15, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY},
+ {1, 16, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
+ {1, 17, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
+ {2, 16, CPM_PIN_INPUT | CPM_PIN_SECONDARY}, /* CLK16 */
+ {2, 17, CPM_PIN_INPUT | CPM_PIN_SECONDARY}, /* CLK15 */
+};
+
+static void __init init_ioports(void)
+{
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(sbc8560_pins); i++) {
+ struct cpm_pin *pin = &sbc8560_pins[i];
+ cpm2_set_pin(pin->port, pin->pin, pin->flags);
+ }
+
+ cpm2_clk_setup(CPM_CLK_SCC1, CPM_BRG1, CPM_CLK_RX);
+ cpm2_clk_setup(CPM_CLK_SCC1, CPM_BRG1, CPM_CLK_TX);
+ cpm2_clk_setup(CPM_CLK_SCC2, CPM_BRG2, CPM_CLK_RX);
+ cpm2_clk_setup(CPM_CLK_SCC2, CPM_BRG2, CPM_CLK_TX);
+ cpm2_clk_setup(CPM_CLK_FCC2, CPM_CLK13, CPM_CLK_RX);
+ cpm2_clk_setup(CPM_CLK_FCC2, CPM_CLK14, CPM_CLK_TX);
+ cpm2_clk_setup(CPM_CLK_FCC3, CPM_CLK15, CPM_CLK_RX);
+ cpm2_clk_setup(CPM_CLK_FCC3, CPM_CLK16, CPM_CLK_TX);
+}
+#endif
+
+static void __init sbc8560_setup_arch(void)
+{
+#ifdef CONFIG_PCI
+ struct device_node *np;
+#endif
+
+ if (ppc_md.progress)
+ ppc_md.progress("sbc8560_setup_arch()", 0);
+
+#ifdef CONFIG_CPM2
+ cpm2_reset();
+ init_ioports();
+#endif
+
+#ifdef CONFIG_PCI
+ for_each_compatible_node(np, "pci", "fsl,mpc8540-pci")
+ fsl_add_bridge(np, 1);
+
+ ppc_md.pci_exclude_device = sbc8560_exclude_device;
+#endif
+}
+
+static void sbc8560_show_cpuinfo(struct seq_file *m)
+{
+ uint pvid, svid, phid1;
+ uint memsize = total_memory;
+
+ pvid = mfspr(SPRN_PVR);
+ svid = mfspr(SPRN_SVR);
+
+ seq_printf(m, "Vendor\t\t: Wind River\n");
+ seq_printf(m, "Machine\t\t: SBC8560\n");
+ seq_printf(m, "PVR\t\t: 0x%x\n", pvid);
+ seq_printf(m, "SVR\t\t: 0x%x\n", svid);
+
+ /* Display cpu Pll setting */
+ phid1 = mfspr(SPRN_HID1);
+ seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
+
+ /* Display the amount of memory */
+ seq_printf(m, "Memory\t\t: %d MB\n", memsize / (1024 * 1024));
+}
+
+static struct of_device_id __initdata of_bus_ids[] = {
+ { .name = "soc", },
+ { .type = "soc", },
+ { .name = "cpm", },
+ { .name = "localbus", },
+ {},
+};
+
+static int __init declare_of_platform_devices(void)
+{
+ if (!machine_is(sbc8560))
+ return 0;
+
+ of_platform_bus_probe(NULL, of_bus_ids, NULL);
+ return 0;
+}
+device_initcall(declare_of_platform_devices);
+
+/*
+ * Called very early, device-tree isn't unflattened
+ */
+static int __init sbc8560_probe(void)
+{
+ unsigned long root = of_get_flat_dt_root();
+
+ return of_flat_dt_is_compatible(root, "SBC8560");
+}
+
+#ifdef CONFIG_RTC_DRV_M48T59
+static int __init sbc8560_rtc_init(void)
+{
+ struct device_node *np;
+ struct resource res;
+ struct platform_device *rtc_dev;
+
+ np = of_find_compatible_node(NULL, NULL, "m48t59");
+ if (np == NULL) {
+ printk("No RTC in DTB. Has it been eaten by wild dogs?\n");
+ return -ENODEV;
+ }
+
+ of_address_to_resource(np, 0, &res);
+ of_node_put(np);
+
+ printk("Found RTC (m48t59) at i/o 0x%x\n", res.start);
+
+ rtc_dev = platform_device_register_simple("rtc-m48t59", 0, &res, 1);
+
+ if (IS_ERR(rtc_dev)) {
+ printk("Registering sbc8560 RTC device failed\n");
+ return PTR_ERR(rtc_dev);
+ }
+
+ return 0;
+}
+
+arch_initcall(sbc8560_rtc_init);
+
+#endif /* M48T59 */
+
+define_machine(sbc8560) {
+ .name = "SBC8560",
+ .probe = sbc8560_probe,
+ .setup_arch = sbc8560_setup_arch,
+ .init_IRQ = sbc8560_pic_init,
+ .show_cpuinfo = sbc8560_show_cpuinfo,
+ .get_irq = mpic_get_irq,
+ .restart = fsl_rstcr_restart,
+ .calibrate_decr = generic_calibrate_decr,
+ .progress = udbg_progress,
+};
--
1.5.0.rc1.gf4b6c
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 4/7] sbc8560: Add device tree source for Wind River SBC8560 board
[not found] ` <d10d083bafb978936975111f09669120201072ec.1199715362.git.paul.gortmaker@windriver.com>
@ 2008-01-07 14:25 ` Paul Gortmaker
2008-01-10 2:56 ` David Gibson
1 sibling, 0 replies; 33+ messages in thread
From: Paul Gortmaker @ 2008-01-07 14:25 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Paul Gortmaker
This adds the device tree source for the Wind River SBC8560 board. The
biggest difference between this and the MPC8560ADS reference platform
dts is the use of an external 16550 compatible UART instead of the CPM2.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
arch/powerpc/boot/dts/sbc8560.dts | 285 +++++++++++++++++++++++++++++++++++++
1 files changed, 285 insertions(+), 0 deletions(-)
diff --git a/arch/powerpc/boot/dts/sbc8560.dts b/arch/powerpc/boot/dts/sbc8560.dts
new file mode 100644
index 0000000..858e8bf
--- /dev/null
+++ b/arch/powerpc/boot/dts/sbc8560.dts
@@ -0,0 +1,285 @@
+/*
+ * SBC8560 Device Tree Source
+ *
+ * Copyright 2007 Wind River Systems Inc.
+ *
+ * Paul Gortmaker (see MAINTAINERS for contact information)
+ *
+ * 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.
+ */
+
+
+/ {
+ model = "SBC8560";
+ compatible = "SBC8560";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ aliases {
+ ethernet0 = &enet0;
+ ethernet1 = &enet1;
+ ethernet2 = &enet2;
+ ethernet3 = &enet3;
+ serial0 = &serial0;
+ serial1 = &serial1;
+ pci0 = &pci0;
+ };
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ PowerPC,8560@0 {
+ device_type = "cpu";
+ reg = <0>;
+ d-cache-line-size = <20>; // 32 bytes
+ i-cache-line-size = <20>; // 32 bytes
+ d-cache-size = <8000>; // L1, 32K
+ i-cache-size = <8000>; // L1, 32K
+ timebase-frequency = <0>; // From uboot
+ bus-frequency = <0>;
+ clock-frequency = <0>;
+ };
+ };
+
+ memory {
+ device_type = "memory";
+ reg = <00000000 20000000>;
+ };
+
+ soc@ff700000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ device_type = "soc";
+ ranges = <0 ff700000 00100000>;
+ reg = <ff700000 00100000>;
+ clock-frequency = <0>;
+
+ memory-controller@2000 {
+ compatible = "fsl,8560-memory-controller";
+ reg = <2000 1000>;
+ interrupt-parent = <&mpic>;
+ interrupts = <12 2>;
+ };
+
+ l2-cache-controller@20000 {
+ compatible = "fsl,8560-l2-cache-controller";
+ reg = <20000 1000>;
+ cache-line-size = <20>; // 32 bytes
+ cache-size = <40000>; // L2, 256K
+ interrupt-parent = <&mpic>;
+ interrupts = <10 2>;
+ };
+
+ i2c@3000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ cell-index = <0>;
+ compatible = "fsl-i2c";
+ reg = <3000 100>;
+ interrupts = <2b 2>;
+ interrupt-parent = <&mpic>;
+ dfsrr;
+ };
+
+ i2c@3100 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ cell-index = <1>;
+ compatible = "fsl-i2c";
+ reg = <3100 100>;
+ interrupts = <2b 2>;
+ interrupt-parent = <&mpic>;
+ dfsrr;
+ };
+
+ mdio@24520 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "fsl,gianfar-mdio";
+ reg = <24520 20>;
+ phy0: ethernet-phy@19 {
+ interrupt-parent = <&mpic>;
+ interrupts = <6 1>;
+ reg = <19>;
+ device_type = "ethernet-phy";
+ };
+ phy1: ethernet-phy@1a {
+ interrupt-parent = <&mpic>;
+ interrupts = <7 1>;
+ reg = <1a>;
+ device_type = "ethernet-phy";
+ };
+ phy2: ethernet-phy@1b {
+ interrupt-parent = <&mpic>;
+ interrupts = <8 1>;
+ reg = <1b>;
+ device_type = "ethernet-phy";
+ };
+ phy3: ethernet-phy@1c {
+ interrupt-parent = <&mpic>;
+ interrupts = <8 1>;
+ reg = <1c>;
+ device_type = "ethernet-phy";
+ };
+ };
+
+ enet0: ethernet@24000 {
+ cell-index = <0>;
+ device_type = "network";
+ model = "TSEC";
+ compatible = "gianfar";
+ reg = <24000 1000>;
+ local-mac-address = [ 00 00 00 00 00 00 ];
+ interrupts = <1d 2 1e 2 22 2>;
+ interrupt-parent = <&mpic>;
+ phy-handle = <&phy0>;
+ };
+
+ enet1: ethernet@25000 {
+ cell-index = <1>;
+ device_type = "network";
+ model = "TSEC";
+ compatible = "gianfar";
+ reg = <25000 1000>;
+ local-mac-address = [ 00 00 00 00 00 00 ];
+ interrupts = <23 2 24 2 28 2>;
+ interrupt-parent = <&mpic>;
+ phy-handle = <&phy1>;
+ };
+
+ mpic: pic@40000 {
+ interrupt-controller;
+ #address-cells = <0>;
+ #size-cells = <0>;
+ #interrupt-cells = <2>;
+ reg = <40000 40000>;
+ device_type = "open-pic";
+ };
+
+ cpm@919c0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "fsl,mpc8560-cpm", "fsl,cpm2";
+ reg = <919c0 30>;
+ ranges;
+
+ muram@80000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0 80000 10000>;
+
+ data@0 {
+ compatible = "fsl,cpm-muram-data";
+ reg = <0 4000 9000 2000>;
+ };
+ };
+
+ brg@919f0 {
+ compatible = "fsl,mpc8560-brg",
+ "fsl,cpm2-brg",
+ "fsl,cpm-brg";
+ reg = <919f0 10 915f0 10>;
+ clock-frequency = <d#165000000>;
+ };
+
+ cpmpic: pic@90c00 {
+ interrupt-controller;
+ #address-cells = <0>;
+ #interrupt-cells = <2>;
+ interrupts = <2e 2>;
+ interrupt-parent = <&mpic>;
+ reg = <90c00 80>;
+ compatible = "fsl,mpc8560-cpm-pic", "fsl,cpm2-pic";
+ };
+
+ enet2: ethernet@91320 {
+ device_type = "network";
+ compatible = "fsl,mpc8560-fcc-enet",
+ "fsl,cpm2-fcc-enet";
+ reg = <91320 20 88500 100 913b0 1>;
+ local-mac-address = [ 00 00 00 00 00 00 ];
+ fsl,cpm-command = <16200300>;
+ interrupts = <21 8>;
+ interrupt-parent = <&cpmpic>;
+ phy-handle = <&phy2>;
+ };
+
+ enet3: ethernet@91340 {
+ device_type = "network";
+ compatible = "fsl,mpc8560-fcc-enet",
+ "fsl,cpm2-fcc-enet";
+ reg = <91340 20 88600 100 913d0 1>;
+ local-mac-address = [ 00 00 00 00 00 00 ];
+ fsl,cpm-command = <1a400300>;
+ interrupts = <22 8>;
+ interrupt-parent = <&cpmpic>;
+ phy-handle = <&phy3>;
+ };
+ };
+
+ global-utilities@e0000 {
+ compatible = "fsl,mpc8560-guts";
+ reg = <e0000 1000>;
+ fsl,has-rstcr;
+ };
+ };
+
+ pci0: pci@ff708000 {
+ cell-index = <0>;
+ #interrupt-cells = <1>;
+ #size-cells = <2>;
+ #address-cells = <3>;
+ compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci";
+ device_type = "pci";
+ reg = <ff708000 1000>;
+ clock-frequency = <3f940aa>;
+ interrupt-map-mask = <f800 0 0 7>;
+ interrupt-map = <
+
+ /* IDSEL 0x02 */
+ 1000 0 0 1 &mpic 2 1
+ 1000 0 0 2 &mpic 3 1
+ 1000 0 0 3 &mpic 4 1
+ 1000 0 0 4 &mpic 5 1>;
+
+ interrupt-parent = <&mpic>;
+ interrupts = <18 2>;
+ bus-range = <0 0>;
+ ranges = <02000000 0 80000000 80000000 0 20000000
+ 01000000 0 00000000 e2000000 0 01000000>;
+ };
+
+ epld@fc000000 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "localbus";
+ ranges = <0 fc000000 00c00000>;
+
+ serial0: serial@700000 {
+ device_type = "serial";
+ compatible = "ns16550";
+ reg = <700000 100>;
+ clock-frequency = <1C2000>;
+ interrupts = <9 2>;
+ interrupt-parent = <&mpic>;
+ };
+
+ serial1: serial@800000 {
+ device_type = "serial";
+ compatible = "ns16550";
+ reg = <800000 100>;
+ clock-frequency = <1C2000>;
+ interrupts = <a 2>;
+ interrupt-parent = <&mpic>;
+ };
+
+ rtc@900000 {
+ compatible = "m48t59";
+ reg = <900000 2000>;
+ };
+ };
+};
--
1.5.0.rc1.gf4b6c
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 5/7] sbc8560: Convert WRS SBC8560 device tree to v1 format
[not found] ` <51ce902057aacef795405f501ad482c744a2e1f2.1199715362.git.paul.gortmaker@windriver.com>
@ 2008-01-07 14:25 ` Paul Gortmaker
0 siblings, 0 replies; 33+ messages in thread
From: Paul Gortmaker @ 2008-01-07 14:25 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Paul Gortmaker
This patch converts the device tree source for the Wind River
SBC8560 board to the new v1 format with C style literals.
You should be using a DTC with these DTC commits:
91967acabdfbff8b44fd3a19f432bc6e690df8cc
9138db565adeb2fbba3181fb589f1c9a3f818dde
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
arch/powerpc/boot/dts/sbc8560.dts | 131 +++++++++++++++++++------------------
1 files changed, 66 insertions(+), 65 deletions(-)
diff --git a/arch/powerpc/boot/dts/sbc8560.dts b/arch/powerpc/boot/dts/sbc8560.dts
index 858e8bf..c30744c 100644
--- a/arch/powerpc/boot/dts/sbc8560.dts
+++ b/arch/powerpc/boot/dts/sbc8560.dts
@@ -11,6 +11,7 @@
* option) any later version.
*/
+/dts-v1/;
/ {
model = "SBC8560";
@@ -35,10 +36,10 @@
PowerPC,8560@0 {
device_type = "cpu";
reg = <0>;
- d-cache-line-size = <20>; // 32 bytes
- i-cache-line-size = <20>; // 32 bytes
- d-cache-size = <8000>; // L1, 32K
- i-cache-size = <8000>; // L1, 32K
+ d-cache-line-size = <0x20>; // 32 bytes
+ i-cache-line-size = <0x20>; // 32 bytes
+ d-cache-size = <0x8000>; // L1, 32K
+ i-cache-size = <0x8000>; // L1, 32K
timebase-frequency = <0>; // From uboot
bus-frequency = <0>;
clock-frequency = <0>;
@@ -47,31 +48,31 @@
memory {
device_type = "memory";
- reg = <00000000 20000000>;
+ reg = <0x00000000 0x20000000>;
};
soc@ff700000 {
#address-cells = <1>;
#size-cells = <1>;
device_type = "soc";
- ranges = <0 ff700000 00100000>;
- reg = <ff700000 00100000>;
+ ranges = <0x0 0xff700000 0x00100000>;
+ reg = <0xff700000 0x00100000>;
clock-frequency = <0>;
memory-controller@2000 {
compatible = "fsl,8560-memory-controller";
- reg = <2000 1000>;
+ reg = <0x2000 0x1000>;
interrupt-parent = <&mpic>;
- interrupts = <12 2>;
+ interrupts = <0x12 0x2>;
};
l2-cache-controller@20000 {
compatible = "fsl,8560-l2-cache-controller";
- reg = <20000 1000>;
- cache-line-size = <20>; // 32 bytes
- cache-size = <40000>; // L2, 256K
+ reg = <0x20000 0x1000>;
+ cache-line-size = <0x20>; // 32 bytes
+ cache-size = <0x40000>; // L2, 256K
interrupt-parent = <&mpic>;
- interrupts = <10 2>;
+ interrupts = <0x10 0x2>;
};
i2c@3000 {
@@ -79,8 +80,8 @@
#size-cells = <0>;
cell-index = <0>;
compatible = "fsl-i2c";
- reg = <3000 100>;
- interrupts = <2b 2>;
+ reg = <0x3000 0x100>;
+ interrupts = <0x2b 0x2>;
interrupt-parent = <&mpic>;
dfsrr;
};
@@ -90,8 +91,8 @@
#size-cells = <0>;
cell-index = <1>;
compatible = "fsl-i2c";
- reg = <3100 100>;
- interrupts = <2b 2>;
+ reg = <0x3100 0x100>;
+ interrupts = <0x2b 0x2>;
interrupt-parent = <&mpic>;
dfsrr;
};
@@ -100,29 +101,29 @@
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,gianfar-mdio";
- reg = <24520 20>;
+ reg = <0x24520 0x20>;
phy0: ethernet-phy@19 {
interrupt-parent = <&mpic>;
- interrupts = <6 1>;
- reg = <19>;
+ interrupts = <0x6 0x1>;
+ reg = <0x19>;
device_type = "ethernet-phy";
};
phy1: ethernet-phy@1a {
interrupt-parent = <&mpic>;
- interrupts = <7 1>;
- reg = <1a>;
+ interrupts = <0x7 0x1>;
+ reg = <0x1a>;
device_type = "ethernet-phy";
};
phy2: ethernet-phy@1b {
interrupt-parent = <&mpic>;
- interrupts = <8 1>;
- reg = <1b>;
+ interrupts = <0x8 0x1>;
+ reg = <0x1b>;
device_type = "ethernet-phy";
};
phy3: ethernet-phy@1c {
interrupt-parent = <&mpic>;
- interrupts = <8 1>;
- reg = <1c>;
+ interrupts = <0x8 0x1>;
+ reg = <0x1c>;
device_type = "ethernet-phy";
};
};
@@ -132,9 +133,9 @@
device_type = "network";
model = "TSEC";
compatible = "gianfar";
- reg = <24000 1000>;
+ reg = <0x24000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ];
- interrupts = <1d 2 1e 2 22 2>;
+ interrupts = <0x1d 0x2 0x1e 0x2 0x22 0x2>;
interrupt-parent = <&mpic>;
phy-handle = <&phy0>;
};
@@ -144,9 +145,9 @@
device_type = "network";
model = "TSEC";
compatible = "gianfar";
- reg = <25000 1000>;
+ reg = <0x25000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ];
- interrupts = <23 2 24 2 28 2>;
+ interrupts = <0x23 0x2 0x24 0x2 0x28 0x2>;
interrupt-parent = <&mpic>;
phy-handle = <&phy1>;
};
@@ -156,7 +157,7 @@
#address-cells = <0>;
#size-cells = <0>;
#interrupt-cells = <2>;
- reg = <40000 40000>;
+ reg = <0x40000 0x40000>;
device_type = "open-pic";
};
@@ -164,17 +165,17 @@
#address-cells = <1>;
#size-cells = <1>;
compatible = "fsl,mpc8560-cpm", "fsl,cpm2";
- reg = <919c0 30>;
+ reg = <0x919c0 0x30>;
ranges;
muram@80000 {
#address-cells = <1>;
#size-cells = <1>;
- ranges = <0 80000 10000>;
+ ranges = <0x0 0x80000 0x10000>;
data@0 {
compatible = "fsl,cpm-muram-data";
- reg = <0 4000 9000 2000>;
+ reg = <0x0 0x4000 0x9000 0x2000>;
};
};
@@ -182,17 +183,17 @@
compatible = "fsl,mpc8560-brg",
"fsl,cpm2-brg",
"fsl,cpm-brg";
- reg = <919f0 10 915f0 10>;
- clock-frequency = <d#165000000>;
+ reg = <0x919f0 0x10 0x915f0 0x10>;
+ clock-frequency = <165000000>;
};
cpmpic: pic@90c00 {
interrupt-controller;
#address-cells = <0>;
#interrupt-cells = <2>;
- interrupts = <2e 2>;
+ interrupts = <0x2e 0x2>;
interrupt-parent = <&mpic>;
- reg = <90c00 80>;
+ reg = <0x90c00 0x80>;
compatible = "fsl,mpc8560-cpm-pic", "fsl,cpm2-pic";
};
@@ -200,10 +201,10 @@
device_type = "network";
compatible = "fsl,mpc8560-fcc-enet",
"fsl,cpm2-fcc-enet";
- reg = <91320 20 88500 100 913b0 1>;
+ reg = <0x91320 0x20 0x88500 0x100 0x913b0 0x1>;
local-mac-address = [ 00 00 00 00 00 00 ];
- fsl,cpm-command = <16200300>;
- interrupts = <21 8>;
+ fsl,cpm-command = <0x16200300>;
+ interrupts = <0x21 0x8>;
interrupt-parent = <&cpmpic>;
phy-handle = <&phy2>;
};
@@ -212,10 +213,10 @@
device_type = "network";
compatible = "fsl,mpc8560-fcc-enet",
"fsl,cpm2-fcc-enet";
- reg = <91340 20 88600 100 913d0 1>;
+ reg = <0x91340 0x20 0x88600 0x100 0x913d0 0x1>;
local-mac-address = [ 00 00 00 00 00 00 ];
- fsl,cpm-command = <1a400300>;
- interrupts = <22 8>;
+ fsl,cpm-command = <0x1a400300>;
+ interrupts = <0x22 0x8>;
interrupt-parent = <&cpmpic>;
phy-handle = <&phy3>;
};
@@ -223,7 +224,7 @@
global-utilities@e0000 {
compatible = "fsl,mpc8560-guts";
- reg = <e0000 1000>;
+ reg = <0xe0000 0x1000>;
fsl,has-rstcr;
};
};
@@ -235,51 +236,51 @@
#address-cells = <3>;
compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci";
device_type = "pci";
- reg = <ff708000 1000>;
- clock-frequency = <3f940aa>;
- interrupt-map-mask = <f800 0 0 7>;
+ reg = <0xff708000 0x1000>;
+ clock-frequency = <66666666>;
+ interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = <
- /* IDSEL 0x02 */
- 1000 0 0 1 &mpic 2 1
- 1000 0 0 2 &mpic 3 1
- 1000 0 0 3 &mpic 4 1
- 1000 0 0 4 &mpic 5 1>;
+ /* IDSEL 0x02 */
+ 0x1000 0x0 0x0 0x1 &mpic 0x2 0x1
+ 0x1000 0x0 0x0 0x2 &mpic 0x3 0x1
+ 0x1000 0x0 0x0 0x3 &mpic 0x4 0x1
+ 0x1000 0x0 0x0 0x4 &mpic 0x5 0x1>;
interrupt-parent = <&mpic>;
- interrupts = <18 2>;
- bus-range = <0 0>;
- ranges = <02000000 0 80000000 80000000 0 20000000
- 01000000 0 00000000 e2000000 0 01000000>;
+ interrupts = <0x18 0x2>;
+ bus-range = <0x0 0x0>;
+ ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x20000000
+ 0x01000000 0x0 0x00000000 0xe2000000 0x0 0x00100000>;
};
epld@fc000000 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "localbus";
- ranges = <0 fc000000 00c00000>;
+ ranges = <0x0 0xfc000000 0x00c00000>;
serial0: serial@700000 {
device_type = "serial";
compatible = "ns16550";
- reg = <700000 100>;
- clock-frequency = <1C2000>;
- interrupts = <9 2>;
+ reg = <0x700000 0x100>;
+ clock-frequency = <1843200>;
+ interrupts = <0x9 0x2>;
interrupt-parent = <&mpic>;
};
serial1: serial@800000 {
device_type = "serial";
compatible = "ns16550";
- reg = <800000 100>;
- clock-frequency = <1C2000>;
- interrupts = <a 2>;
+ reg = <0x800000 0x100>;
+ clock-frequency = <1843200>;
+ interrupts = <0xa 0x2>;
interrupt-parent = <&mpic>;
};
rtc@900000 {
compatible = "m48t59";
- reg = <900000 2000>;
+ reg = <0x900000 0x2000>;
};
};
};
--
1.5.0.rc1.gf4b6c
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 6/7] CPM2: Make support for the CPM2 optional on 8560 based boards
[not found] ` <25caba2d31cd9404db085c69e4d449dabbe56f1f.1199715362.git.paul.gortmaker@windriver.com>
@ 2008-01-07 14:25 ` Paul Gortmaker
0 siblings, 0 replies; 33+ messages in thread
From: Paul Gortmaker @ 2008-01-07 14:25 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Paul Gortmaker
Currently there is no way to disable the CPM2 support. Some boards,
like the SBC8560 have their own external UART and don't have any direct
dependencies on the CPM for a serial console or anything else.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
arch/powerpc/platforms/85xx/Kconfig | 4 ++--
arch/powerpc/platforms/Kconfig | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig
index 0eb497b..33d3bea 100644
--- a/arch/powerpc/platforms/85xx/Kconfig
+++ b/arch/powerpc/platforms/85xx/Kconfig
@@ -13,6 +13,7 @@ config MPC8560_ADS
bool "Freescale MPC8560 ADS"
select DEFAULT_UIMAGE
select PPC_CPM_NEW_BINDING
+ select CPM2
help
This option enables support for the MPC 8560 ADS board
@@ -41,7 +42,7 @@ config MPC85xx_DS
config SBC8560
bool "Wind River SBC8560"
select DEFAULT_UIMAGE
- select PPC_CPM_NEW_BINDING
+ select PPC_CPM_NEW_BINDING if CPM2
help
This option enables support for the Wind River SBC8560 board
@@ -55,7 +56,6 @@ config MPC8540
config MPC8560
bool
- select CPM2
default y if MPC8560_ADS || SBC8560
config MPC85xx
diff --git a/arch/powerpc/platforms/Kconfig b/arch/powerpc/platforms/Kconfig
index ea22cad..d355dd6 100644
--- a/arch/powerpc/platforms/Kconfig
+++ b/arch/powerpc/platforms/Kconfig
@@ -272,8 +272,8 @@ config QUICC_ENGINE
for a machine with a QE coprocessor.
config CPM2
- bool
- default n
+ bool "Enable support for the CPM2 (Communications Processor Module)"
+ depends on MPC8560 || 8260
select CPM
select PPC_LIB_RHEAP
help
--
1.5.0.rc1.gf4b6c
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 7/7] sbc8560: Add default .config file for Wind River SBC8560
[not found] ` <20d9f56839785af8a445e4cef3db98430b84b4ce.1199715362.git.paul.gortmaker@windriver.com>
@ 2008-01-07 14:25 ` Paul Gortmaker
0 siblings, 0 replies; 33+ messages in thread
From: Paul Gortmaker @ 2008-01-07 14:25 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Paul Gortmaker
This is a suitable .config file for building the WRS SBC8560 kernel
to be used for NFS root via one of the TSEC interfaces and with
serial console via the 16550 compatible UART on the board.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
arch/powerpc/configs/sbc8560_defconfig | 765 ++++++++++++++++++++++++++++++++
1 files changed, 765 insertions(+), 0 deletions(-)
diff --git a/arch/powerpc/configs/sbc8560_defconfig b/arch/powerpc/configs/sbc8560_defconfig
new file mode 100644
index 0000000..9910ff9
--- /dev/null
+++ b/arch/powerpc/configs/sbc8560_defconfig
@@ -0,0 +1,765 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.24-rc6
+# Thu Jan 3 16:47:32 2008
+#
+# CONFIG_PPC64 is not set
+
+#
+# Processor support
+#
+# CONFIG_6xx is not set
+CONFIG_PPC_85xx=y
+# CONFIG_PPC_8xx is not set
+# CONFIG_40x is not set
+# CONFIG_44x is not set
+# CONFIG_E200 is not set
+CONFIG_85xx=y
+CONFIG_E500=y
+CONFIG_BOOKE=y
+CONFIG_FSL_BOOKE=y
+# CONFIG_PHYS_64BIT is not set
+CONFIG_SPE=y
+# CONFIG_PPC_MM_SLICES is not set
+CONFIG_PPC32=y
+CONFIG_WORD_SIZE=32
+CONFIG_PPC_MERGE=y
+CONFIG_MMU=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_IRQ_PER_CPU=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_ILOG2_U32=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
+CONFIG_PPC=y
+CONFIG_EARLY_PRINTK=y
+CONFIG_GENERIC_NVRAM=y
+CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_PPC_OF=y
+CONFIG_OF=y
+CONFIG_PPC_UDBG_16550=y
+# CONFIG_GENERIC_TBSYNC is not set
+CONFIG_AUDIT_ARCH=y
+CONFIG_GENERIC_BUG=y
+CONFIG_DEFAULT_UIMAGE=y
+# CONFIG_PPC_DCR_NATIVE is not set
+# CONFIG_PPC_DCR_MMIO is not set
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_USER_NS is not set
+# CONFIG_PID_NS is not set
+# CONFIG_AUDIT is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_CGROUPS is not set
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_FAIR_USER_SCHED=y
+# CONFIG_FAIR_CGROUP_SCHED is not set
+CONFIG_SYSFS_DEPRECATED=y
+# CONFIG_RELAY is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_EMBEDDED=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+# CONFIG_MODULES is not set
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+
+#
+# Platform support
+#
+# CONFIG_PPC_MPC52xx is not set
+# CONFIG_PPC_MPC5200 is not set
+# CONFIG_PPC_CELL is not set
+# CONFIG_PPC_CELL_NATIVE is not set
+# CONFIG_PQ2ADS is not set
+# CONFIG_MPC8540_ADS is not set
+# CONFIG_MPC8560_ADS is not set
+# CONFIG_MPC85xx_CDS is not set
+# CONFIG_MPC85xx_MDS is not set
+# CONFIG_MPC85xx_DS is not set
+CONFIG_SBC8560=y
+CONFIG_MPC8560=y
+CONFIG_MPC85xx=y
+CONFIG_MPIC=y
+# CONFIG_MPIC_WEIRD is not set
+# CONFIG_PPC_I8259 is not set
+# CONFIG_PPC_RTAS is not set
+# CONFIG_MMIO_NVRAM is not set
+# CONFIG_PPC_MPC106 is not set
+# CONFIG_PPC_970_NAP is not set
+# CONFIG_PPC_INDIRECT_IO is not set
+# CONFIG_GENERIC_IOMAP is not set
+# CONFIG_CPU_FREQ is not set
+# CONFIG_CPM2 is not set
+# CONFIG_FSL_ULI1575 is not set
+
+#
+# Kernel options
+#
+# CONFIG_HIGHMEM is not set
+# CONFIG_TICK_ONESHOT is not set
+# CONFIG_NO_HZ is not set
+# CONFIG_HIGH_RES_TIMERS is not set
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=250
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=y
+# CONFIG_MATH_EMULATION is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_RESOURCES_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_PROC_DEVICETREE=y
+# CONFIG_CMDLINE_BOOL is not set
+# CONFIG_PM is not set
+CONFIG_SUSPEND_UP_POSSIBLE=y
+CONFIG_HIBERNATION_UP_POSSIBLE=y
+# CONFIG_SECCOMP is not set
+CONFIG_WANT_DEVICE_TREE=y
+CONFIG_DEVICE_TREE=""
+CONFIG_ISA_DMA_API=y
+
+#
+# Bus options
+#
+CONFIG_ZONE_DMA=y
+CONFIG_FSL_SOC=y
+# CONFIG_PCI is not set
+# CONFIG_PCI_DOMAINS is not set
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Advanced setup
+#
+# CONFIG_ADVANCED_OPTIONS is not set
+
+#
+# Default settings for advanced configuration options are used
+#
+CONFIG_HIGHMEM_START=0xfe000000
+CONFIG_LOWMEM_SIZE=0x30000000
+CONFIG_KERNEL_START=0xc0000000
+CONFIG_TASK_SIZE=0xc0000000
+CONFIG_BOOT_LOAD=0x00800000
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=y
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+# CONFIG_INET_LRO is not set
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+
+#
+# Wireless
+#
+# CONFIG_CFG80211 is not set
+# CONFIG_WIRELESS_EXT is not set
+# CONFIG_MAC80211 is not set
+# CONFIG_IEEE80211 is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_FW_LOADER is not set
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+# CONFIG_MTD is not set
+CONFIG_OF_DEVICE=y
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=32768
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+# CONFIG_MACINTOSH_DRIVERS is not set
+CONFIG_NETDEVICES=y
+# CONFIG_NETDEVICES_MULTIQUEUE is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+CONFIG_PHYLIB=y
+
+#
+# MII PHY device drivers
+#
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_SMSC_PHY is not set
+CONFIG_BROADCOM_PHY=y
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_FIXED_PHY is not set
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_B44 is not set
+CONFIG_NETDEV_1000=y
+CONFIG_GIANFAR=y
+CONFIG_GFAR_NAPI=y
+CONFIG_NETDEV_10000=y
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
+# CONFIG_WAN is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+# CONFIG_VT is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=2
+CONFIG_SERIAL_8250_RUNTIME_UARTS=2
+# CONFIG_SERIAL_8250_EXTENDED is not set
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_UARTLITE is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_OF_PLATFORM is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+# CONFIG_GEN_RTC is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+# CONFIG_I2C is not set
+
+#
+# SPI support
+#
+# CONFIG_SPI is not set
+# CONFIG_SPI_MASTER is not set
+# CONFIG_W1 is not set
+# CONFIG_POWER_SUPPLY is not set
+CONFIG_HWMON=y
+# CONFIG_HWMON_VID is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+# CONFIG_WATCHDOG is not set
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
+CONFIG_DAB=y
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=y
+# CONFIG_FB is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HID_DEBUG is not set
+# CONFIG_HIDRAW is not set
+CONFIG_USB_SUPPORT=y
+# CONFIG_USB_ARCH_HAS_HCD is not set
+# CONFIG_USB_ARCH_HAS_OHCI is not set
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+# CONFIG_MMC is not set
+# CONFIG_NEW_LEDS is not set
+# CONFIG_EDAC is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+CONFIG_RTC_DRV_M48T59=y
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+
+#
+# Userspace I/O
+#
+# CONFIG_UIO is not set
+
+#
+# File systems
+#
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_EXT4DEV_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+# CONFIG_NFS_V3 is not set
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_NFSD is not set
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# CONFIG_SUNRPC_BIND34 is not set
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+# CONFIG_MSDOS_PARTITION is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SYSV68_PARTITION is not set
+# CONFIG_NLS is not set
+# CONFIG_DLM is not set
+# CONFIG_UCC_SLOW is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+# CONFIG_CRC_CCITT is not set
+# CONFIG_CRC16 is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+# CONFIG_INSTRUMENTATION is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+CONFIG_FORCED_INLINING=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_SAMPLES is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_DEBUGGER is not set
+# CONFIG_BDI_SWITCH is not set
+CONFIG_PPC_EARLY_DEBUG=y
+# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
+# CONFIG_PPC_EARLY_DEBUG_G5 is not set
+# CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL is not set
+# CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE is not set
+# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
+# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
+# CONFIG_PPC_EARLY_DEBUG_PAS_REALMODE is not set
+# CONFIG_PPC_EARLY_DEBUG_BEAT is not set
+# CONFIG_PPC_EARLY_DEBUG_44x is not set
+# CONFIG_PPC_EARLY_DEBUG_40x is not set
+# CONFIG_PPC_EARLY_DEBUG_CPM is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+# CONFIG_CRYPTO is not set
+# CONFIG_PPC_CLOCK is not set
--
1.5.0.rc1.gf4b6c
^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [PATCH 2/7] powerpc: allow localbus compatible serial ports for console device
2008-01-07 14:25 ` [PATCH 2/7] powerpc: allow localbus compatible serial ports for console device Paul Gortmaker
@ 2008-01-07 14:33 ` Arnd Bergmann
2008-01-07 15:33 ` Paul Gortmaker
0 siblings, 1 reply; 33+ messages in thread
From: Arnd Bergmann @ 2008-01-07 14:33 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Paul Gortmaker
T24gTW9uZGF5IDA3IEphbnVhcnkgMjAwOCwgUGF1bCBHb3J0bWFrZXIgd3JvdGU6Cj4gK6CgoKCg
oKAvKiBOZXh0LCBmaWxsIG91ciBhcnJheSB3aXRoIGFueSBsb2NhbGJ1cyBzZXJpYWwgcG9ydHMg
Ki8KPiAroKCgoKCgoGZvcl9lYWNoX2NvbXBhdGlibGVfbm9kZShucCwgInNlcmlhbCIsICJuczE2
NTUwIikgewo+ICugoKCgoKCgoKCgoKCgoKBzdHJ1Y3QgZGV2aWNlX25vZGUgKmxicyA9IG9mX2dl
dF9wYXJlbnQobnApOwo+ICugoKCgoKCgoKCgoKCgoKBpZiAobGJzICYmIG9mX2RldmljZV9pc19j
b21wYXRpYmxlKGxicywgImxvY2FsYnVzIikpIHsKPiAroKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBp
bmRleCA9IGFkZF9sZWdhY3lfc29jX3BvcnQobnAsIG5wKTsKPiAroKCgoKCgoKCgoKCgoKCgoKCg
oKCgoKBpZiAoaW5kZXggPj0gMCAmJiBucCA9PSBzdGRvdXQpCj4gK6CgoKCgoKCgoKCgoKCgoKCg
oKCgoKCgoKCgoKCgoKBsZWdhY3lfc2VyaWFsX2NvbnNvbGUgPSBpbmRleDsKPiAroKCgoKCgoKCg
oKCgoKCgfQo+ICugoKCgoKCgoKCgoKCgoKBvZl9ub2RlX3B1dChsYnMpOwo+ICugoKCgoKCgfQo+
ICsKClRoaXMgaXMgZ2V0dGluZyBhIGxpdHRsZSBzaWxseS4gQ2FuJ3QgeW91IGZpbmFsbHkgdW5p
ZnkgdGhlIGNvZGUKc28gaXQgY2hlY2tzIGZvciBhbnkgODI1MC8xNjQ1MC8xNjU1MCBvbiBhbnkg
c29jL2lzYS90c2ktYnJpZGdlL29wYi9sb2NhbGJ1cz8KCglBcm5kIDw+PAo=
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 2/7] powerpc: allow localbus compatible serial ports for console device
2008-01-07 14:33 ` Arnd Bergmann
@ 2008-01-07 15:33 ` Paul Gortmaker
2008-01-07 16:04 ` Arnd Bergmann
0 siblings, 1 reply; 33+ messages in thread
From: Paul Gortmaker @ 2008-01-07 15:33 UTC (permalink / raw)
To: Arnd Bergmann; +Cc: linuxppc-dev
Arnd Bergmann wrote:
> On Monday 07 January 2008, Paul Gortmaker wrote:
>
>> + /* Next, fill our array with any localbus serial ports */
>> + for_each_compatible_node(np, "serial", "ns16550") {
>> + struct device_node *lbs = of_get_parent(np);
>> + if (lbs && of_device_is_compatible(lbs, "localbus")) {
>> + index = add_legacy_soc_port(np, np);
>> + if (index >= 0 && np == stdout)
>> + legacy_serial_console = index;
>> + }
>> + of_node_put(lbs);
>> + }
>> +
>>
>
> This is getting a little silly. Can't you finally unify the code
> so it checks for any 8250/16450/16550 on any soc/isa/tsi-bridge/opb/localbus?
>
I'd thought about doing that, but there are slight differences
in each test. To remain 100% faithful to the original implementation
you'd have to have a table or similar that had these various fields
and loop over that -- something like:
compat parent pnt-compat pnt-type add-fcn
---------------------------------------------------------------
ns16550 NULL NULL soc add_legacy_soc_port
NULL isa NULL NULL add_legacy_isa_port
ns16550 NULL NULL tsi-bridge add_legacy_soc_port
ns16550 NULL ibm,opb opb add_legacy_soc_port
ns16550 NULL localbus NULL add_legacy_soc_port
But, if we were willing to move away from checks based on
the parent->type and stick with parent->compat, then the
unification would be a lot cleaner and easier to implement.
(we could also leave the ISA one out as an oddball, and then
not have to carry an add-fcn either).
Paul.
> Arnd <><
>
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 2/7] powerpc: allow localbus compatible serial ports for console device
2008-01-07 15:33 ` Paul Gortmaker
@ 2008-01-07 16:04 ` Arnd Bergmann
2008-01-17 22:03 ` Paul Gortmaker
0 siblings, 1 reply; 33+ messages in thread
From: Arnd Bergmann @ 2008-01-07 16:04 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Paul Gortmaker
On Monday 07 January 2008, Paul Gortmaker wrote:
>=20
> I'd thought about doing that, but there are slight differences
> in each test. =A0To remain 100% faithful to the original implementation
> you'd have to have a table or similar that had these various fields
> and loop over that -- something like:
>=20
> compat =A0 =A0 =A0parent =A0 pnt-compat =A0pnt-type =A0 add-fcn
> ---------------------------------------------------------------
> ns16550 =A0 =A0 NULL =A0 =A0 NULL =A0 =A0 =A0 =A0soc =A0 =A0 =A0 =A0add_l=
egacy_soc_port
> NULL =A0 =A0 =A0 =A0isa =A0 =A0 =A0NULL =A0 =A0 =A0 =A0NULL =A0 =A0 =A0 a=
dd_legacy_isa_port
> ns16550 =A0 =A0 NULL =A0 =A0 NULL =A0 =A0 =A0 =A0tsi-bridge add_legacy_so=
c_port
> ns16550 =A0 =A0 NULL =A0 =A0 ibm,opb =A0 =A0 opb =A0 =A0 =A0 =A0add_legac=
y_soc_port
> ns16550 =A0 =A0 NULL =A0 =A0 localbus =A0 =A0NULL =A0 =A0 =A0 add_legacy_=
soc_port
>=20
> But, if we were willing to move away from checks based on
> the parent->type and stick with parent->compat, then the
> unification would be a lot cleaner and easier to implement.
Unfortunately, some of our cell blades don't have the right
'compatible' property, so you still need to check the type for
the opb case.
> (we could also leave the ISA one out as an oddball, and then
> not have to carry an add-fcn either).
yes, that seems reasonable.
Arnd <><
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 3/7] sbc8560: add support for Wind River SBC8560 in arch/powerpc
2008-01-07 14:25 ` [PATCH 3/7] sbc8560: add support for Wind River SBC8560 in arch/powerpc Paul Gortmaker
@ 2008-01-08 0:32 ` Stephen Rothwell
2008-01-09 4:39 ` Paul Gortmaker
0 siblings, 1 reply; 33+ messages in thread
From: Stephen Rothwell @ 2008-01-08 0:32 UTC (permalink / raw)
To: Paul Gortmaker; +Cc: linuxppc-dev
[-- Attachment #1: Type: text/plain, Size: 1280 bytes --]
Hi Paul,
On Mon, 7 Jan 2008 09:25:28 -0500 Paul Gortmaker <paul.gortmaker@windriver.com> wrote:
>
> +++ b/arch/powerpc/platforms/85xx/sbc8560.c
>
> +static void __init sbc8560_pic_init(void)
> +{
>
> +#ifdef CONFIG_CPM2
> + /* Setup CPM2 PIC */
> + np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic");
> + if (np == NULL) {
> + printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n");
> + return;
> + }
> + irq = irq_of_parse_and_map(np, 0);
What happens if that fails?
> +
> + cpm2_pic_init(np);
> + of_node_put(np);
> + set_irq_chained_handler(irq, cpm2_cascade);
Does passing NO_IRQ matter here (in the case that irq_of_parse_and_map fails)?
> +static const struct cpm_pin sbc8560_pins[] = {
Of course, these could be __initdata (but not const as well). Sorry
about not mentioning this last time and it is a trivial change that
should not stop this stuff going in.
> +static int __init sbc8560_probe(void)
> +{
> + unsigned long root = of_get_flat_dt_root();
> +
> + return of_flat_dt_is_compatible(root, "SBC8560");
To use the flattened device tree accessors, you should include asm/prom.h
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 3/7] sbc8560: add support for Wind River SBC8560 in arch/powerpc
2008-01-08 0:32 ` Stephen Rothwell
@ 2008-01-09 4:39 ` Paul Gortmaker
2008-01-09 6:23 ` Stephen Rothwell
0 siblings, 1 reply; 33+ messages in thread
From: Paul Gortmaker @ 2008-01-09 4:39 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: linuxppc-dev
Stephen Rothwell wrote:
> Hi Paul,
>
> On Mon, 7 Jan 2008 09:25:28 -0500 Paul Gortmaker <paul.gortmaker@windriver.com> wrote:
>
>
[...]
>> +static const struct cpm_pin sbc8560_pins[] = {
>>
>
> Of course, these could be __initdata (but not const as well). Sorry
> about not mentioning this last time and it is a trivial change that
> should not stop this stuff going in.
>
No problem. I think you will find all these issues are applicable to
the mpc8560mds support that I based things off too. I'd rather do
a single patch for both boards to deal with these, rather than respin
the sbc8560 patches again and leave the mpc8560mds behind.
Assuming everyone else is OK with this approach.
Thanks,
Paul.
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 3/7] sbc8560: add support for Wind River SBC8560 in arch/powerpc
2008-01-09 4:39 ` Paul Gortmaker
@ 2008-01-09 6:23 ` Stephen Rothwell
0 siblings, 0 replies; 33+ messages in thread
From: Stephen Rothwell @ 2008-01-09 6:23 UTC (permalink / raw)
To: Paul Gortmaker; +Cc: linuxppc-dev
[-- Attachment #1: Type: text/plain, Size: 546 bytes --]
On Tue, 08 Jan 2008 23:39:37 -0500 Paul Gortmaker <paul.gortmaker@windriver.com> wrote:
>
> No problem. I think you will find all these issues are applicable to
> the mpc8560mds support that I based things off too. I'd rather do
> a single patch for both boards to deal with these, rather than respin
> the sbc8560 patches again and leave the mpc8560mds behind.
> Assuming everyone else is OK with this approach.
Fine by me.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 4/7] sbc8560: Add device tree source for Wind River SBC8560 board
[not found] ` <d10d083bafb978936975111f09669120201072ec.1199715362.git.paul.gortmaker@windriver.com>
2008-01-07 14:25 ` [PATCH 4/7] sbc8560: Add device tree source for Wind River SBC8560 board Paul Gortmaker
@ 2008-01-10 2:56 ` David Gibson
2008-01-15 14:12 ` Kumar Gala
2008-01-17 20:50 ` Paul Gortmaker
1 sibling, 2 replies; 33+ messages in thread
From: David Gibson @ 2008-01-10 2:56 UTC (permalink / raw)
To: Paul Gortmaker; +Cc: linuxppc-dev
On Mon, Jan 07, 2008 at 09:25:29AM -0500, Paul Gortmaker wrote:
> This adds the device tree source for the Wind River SBC8560 board. The
> biggest difference between this and the MPC8560ADS reference platform
> dts is the use of an external 16550 compatible UART instead of the CPM2.
>
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> ---
> arch/powerpc/boot/dts/sbc8560.dts | 285 +++++++++++++++++++++++++++++++++++++
[snip]
> + epld@fc000000 {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + compatible = "localbus";
This compatible doesn't look specific enough. It should at least have
a vendor prefix.
> + ranges = <0 fc000000 00c00000>;
Typically, we've been doing these external bust controller type
gadgets with address-cells = <2>, the first cell explicitly encoding
the chipselect. This gets us closer to the ideal of the device tree
encoding only hardware information, not how the bridge controller is
configured (although "ranges" will still have to contain configuration
dependent information).
> +
> + serial0: serial@700000 {
> + device_type = "serial";
> + compatible = "ns16550";
> + reg = <700000 100>;
> + clock-frequency = <1C2000>;
> + interrupts = <9 2>;
> + interrupt-parent = <&mpic>;
> + };
> +
> + serial1: serial@800000 {
> + device_type = "serial";
> + compatible = "ns16550";
> + reg = <800000 100>;
> + clock-frequency = <1C2000>;
> + interrupts = <a 2>;
> + interrupt-parent = <&mpic>;
> + };
> +
> + rtc@900000 {
> + compatible = "m48t59";
> + reg = <900000 2000>;
> + };
> + };
> +};
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 4/7] sbc8560: Add device tree source for Wind River SBC8560 board
2008-01-10 2:56 ` David Gibson
@ 2008-01-15 14:12 ` Kumar Gala
2008-01-17 20:50 ` Paul Gortmaker
1 sibling, 0 replies; 33+ messages in thread
From: Kumar Gala @ 2008-01-15 14:12 UTC (permalink / raw)
To: David Gibson; +Cc: Paul Gortmaker, linuxppc-dev
On Jan 9, 2008, at 8:56 PM, David Gibson wrote:
> On Mon, Jan 07, 2008 at 09:25:29AM -0500, Paul Gortmaker wrote:
>> This adds the device tree source for the Wind River SBC8560 board.
>> The
>> biggest difference between this and the MPC8560ADS reference platform
>> dts is the use of an external 16550 compatible UART instead of the
>> CPM2.
>>
>> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
>> ---
>> arch/powerpc/boot/dts/sbc8560.dts | 285 +++++++++++++++++++++++++++
>> ++++++++++
>
> [snip]
>> + epld@fc000000 {
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> + compatible = "localbus";
>
> This compatible doesn't look specific enough. It should at least have
> a vendor prefix.
>
>> + ranges = <0 fc000000 00c00000>;
>
> Typically, we've been doing these external bust controller type
> gadgets with address-cells = <2>, the first cell explicitly encoding
> the chipselect. This gets us closer to the ideal of the device tree
> encoding only hardware information, not how the bridge controller is
> configured (although "ranges" will still have to contain configuration
> dependent information).
>
>
>> +
>> + serial0: serial@700000 {
>> + device_type = "serial";
>> + compatible = "ns16550";
>> + reg = <700000 100>;
>> + clock-frequency = <1C2000>;
>> + interrupts = <9 2>;
>> + interrupt-parent = <&mpic>;
>> + };
>> +
>> + serial1: serial@800000 {
>> + device_type = "serial";
>> + compatible = "ns16550";
>> + reg = <800000 100>;
>> + clock-frequency = <1C2000>;
>> + interrupts = <a 2>;
>> + interrupt-parent = <&mpic>;
>> + };
>> +
>> + rtc@900000 {
>> + compatible = "m48t59";
>> + reg = <900000 2000>;
>> + };
>> + };
>> +};
Paul,
any updates here based on David's comments on how we are representing
localbus nodes?
- k
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 4/7] sbc8560: Add device tree source for Wind River SBC8560 board
2008-01-10 2:56 ` David Gibson
2008-01-15 14:12 ` Kumar Gala
@ 2008-01-17 20:50 ` Paul Gortmaker
1 sibling, 0 replies; 33+ messages in thread
From: Paul Gortmaker @ 2008-01-17 20:50 UTC (permalink / raw)
To: David Gibson; +Cc: linuxppc-dev
In message: Re: [PATCH 4/7] sbc8560: Add device tree source for Wind River SBC8560 board
on 10/01/2008 David Gibson wrote:
> > + epld@fc000000 {
> > + #address-cells = <1>;
> > + #size-cells = <1>;
> > + compatible = "localbus";
>
> This compatible doesn't look specific enough. It should at least have
> a vendor prefix.
Sorry for the delayed reply. I've gone with "wrs,epld-localbus" based on
the format of all the existing localbus entries.
>
> > + ranges = <0 fc000000 00c00000>;
>
> Typically, we've been doing these external bust controller type
> gadgets with address-cells = <2>, the first cell explicitly encoding
> the chipselect. This gets us closer to the ideal of the device tree
> encoding only hardware information, not how the bridge controller is
> configured (although "ranges" will still have to contain configuration
> dependent information).
OK, I think I've captured the intent of what you mean here. It makes
the dts appear a lot more complex to a non-dts person (IMHO), but it
does capture the full details of the board this way.
I've put in a 2 address cell localbus entry, put in all the devices
listed in TFM for each CS#, of which the EPLD is on CS5, and since
the EPLD sub-decodes off of CS5, it too is a bus with 2 address cells
and the equivalent of a CS# for each sub-device. It takes a bit to get
your head around the various ranges = <...> with varying #s of parameters
(or at least it did for me) but I think I have it mapped out properly.
The UARTs still work, and since they are out in the weeds now, some three
nodes deep, it has to be at least partially correct...
[All the good stuff with the localbus is near the bottom of the dts.]
Paul.
/*
* SBC8560 Device Tree Source
*
* Copyright 2007 Wind River Systems Inc.
*
* Paul Gortmaker (see MAINTAINERS for contact information)
*
* 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.
*/
/dts-v1/;
/ {
model = "SBC8560";
compatible = "SBC8560";
#address-cells = <1>;
#size-cells = <1>;
aliases {
ethernet0 = &enet0;
ethernet1 = &enet1;
ethernet2 = &enet2;
ethernet3 = &enet3;
serial0 = &serial0;
serial1 = &serial1;
pci0 = &pci0;
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
PowerPC,8560@0 {
device_type = "cpu";
reg = <0>;
d-cache-line-size = <0x20>; // 32 bytes
i-cache-line-size = <0x20>; // 32 bytes
d-cache-size = <0x8000>; // L1, 32K
i-cache-size = <0x8000>; // L1, 32K
timebase-frequency = <0>; // From uboot
bus-frequency = <0>;
clock-frequency = <0>;
};
};
memory {
device_type = "memory";
reg = <0x00000000 0x20000000>;
};
soc@ff700000 {
#address-cells = <1>;
#size-cells = <1>;
device_type = "soc";
ranges = <0x0 0xff700000 0x00100000>;
reg = <0xff700000 0x00100000>;
clock-frequency = <0>;
memory-controller@2000 {
compatible = "fsl,8560-memory-controller";
reg = <0x2000 0x1000>;
interrupt-parent = <&mpic>;
interrupts = <0x12 0x2>;
};
l2-cache-controller@20000 {
compatible = "fsl,8560-l2-cache-controller";
reg = <0x20000 0x1000>;
cache-line-size = <0x20>; // 32 bytes
cache-size = <0x40000>; // L2, 256K
interrupt-parent = <&mpic>;
interrupts = <0x10 0x2>;
};
i2c@3000 {
#address-cells = <1>;
#size-cells = <0>;
cell-index = <0>;
compatible = "fsl-i2c";
reg = <0x3000 0x100>;
interrupts = <0x2b 0x2>;
interrupt-parent = <&mpic>;
dfsrr;
};
i2c@3100 {
#address-cells = <1>;
#size-cells = <0>;
cell-index = <1>;
compatible = "fsl-i2c";
reg = <0x3100 0x100>;
interrupts = <0x2b 0x2>;
interrupt-parent = <&mpic>;
dfsrr;
};
mdio@24520 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,gianfar-mdio";
reg = <0x24520 0x20>;
phy0: ethernet-phy@19 {
interrupt-parent = <&mpic>;
interrupts = <0x6 0x1>;
reg = <0x19>;
device_type = "ethernet-phy";
};
phy1: ethernet-phy@1a {
interrupt-parent = <&mpic>;
interrupts = <0x7 0x1>;
reg = <0x1a>;
device_type = "ethernet-phy";
};
phy2: ethernet-phy@1b {
interrupt-parent = <&mpic>;
interrupts = <0x8 0x1>;
reg = <0x1b>;
device_type = "ethernet-phy";
};
phy3: ethernet-phy@1c {
interrupt-parent = <&mpic>;
interrupts = <0x8 0x1>;
reg = <0x1c>;
device_type = "ethernet-phy";
};
};
enet0: ethernet@24000 {
cell-index = <0>;
device_type = "network";
model = "TSEC";
compatible = "gianfar";
reg = <0x24000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <0x1d 0x2 0x1e 0x2 0x22 0x2>;
interrupt-parent = <&mpic>;
phy-handle = <&phy0>;
};
enet1: ethernet@25000 {
cell-index = <1>;
device_type = "network";
model = "TSEC";
compatible = "gianfar";
reg = <0x25000 0x1000>;
local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <0x23 0x2 0x24 0x2 0x28 0x2>;
interrupt-parent = <&mpic>;
phy-handle = <&phy1>;
};
mpic: pic@40000 {
interrupt-controller;
#address-cells = <0>;
#size-cells = <0>;
#interrupt-cells = <2>;
reg = <0x40000 0x40000>;
device_type = "open-pic";
};
cpm@919c0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "fsl,mpc8560-cpm", "fsl,cpm2";
reg = <0x919c0 0x30>;
ranges;
muram@80000 {
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x80000 0x10000>;
data@0 {
compatible = "fsl,cpm-muram-data";
reg = <0x0 0x4000 0x9000 0x2000>;
};
};
brg@919f0 {
compatible = "fsl,mpc8560-brg",
"fsl,cpm2-brg",
"fsl,cpm-brg";
reg = <0x919f0 0x10 0x915f0 0x10>;
clock-frequency = <165000000>;
};
cpmpic: pic@90c00 {
interrupt-controller;
#address-cells = <0>;
#interrupt-cells = <2>;
interrupts = <0x2e 0x2>;
interrupt-parent = <&mpic>;
reg = <0x90c00 0x80>;
compatible = "fsl,mpc8560-cpm-pic", "fsl,cpm2-pic";
};
enet2: ethernet@91320 {
device_type = "network";
compatible = "fsl,mpc8560-fcc-enet",
"fsl,cpm2-fcc-enet";
reg = <0x91320 0x20 0x88500 0x100 0x913b0 0x1>;
local-mac-address = [ 00 00 00 00 00 00 ];
fsl,cpm-command = <0x16200300>;
interrupts = <0x21 0x8>;
interrupt-parent = <&cpmpic>;
phy-handle = <&phy2>;
};
enet3: ethernet@91340 {
device_type = "network";
compatible = "fsl,mpc8560-fcc-enet",
"fsl,cpm2-fcc-enet";
reg = <0x91340 0x20 0x88600 0x100 0x913d0 0x1>;
local-mac-address = [ 00 00 00 00 00 00 ];
fsl,cpm-command = <0x1a400300>;
interrupts = <0x22 0x8>;
interrupt-parent = <&cpmpic>;
phy-handle = <&phy3>;
};
};
global-utilities@e0000 {
compatible = "fsl,mpc8560-guts";
reg = <0xe0000 0x1000>;
fsl,has-rstcr;
};
};
pci0: pci@ff708000 {
cell-index = <0>;
#interrupt-cells = <1>;
#size-cells = <2>;
#address-cells = <3>;
compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci";
device_type = "pci";
reg = <0xff708000 0x1000>;
clock-frequency = <66666666>;
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = <
/* IDSEL 0x02 */
0x1000 0x0 0x0 0x1 &mpic 0x2 0x1
0x1000 0x0 0x0 0x2 &mpic 0x3 0x1
0x1000 0x0 0x0 0x3 &mpic 0x4 0x1
0x1000 0x0 0x0 0x4 &mpic 0x5 0x1>;
interrupt-parent = <&mpic>;
interrupts = <0x18 0x2>;
bus-range = <0x0 0x0>;
ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x20000000
0x01000000 0x0 0x00000000 0xe2000000 0x0 0x00100000>;
};
localbus@ff705000 {
compatible = "fsl,mpc8560-localbus";
#address-cells = <2>;
#size-cells = <1>;
reg = <0xff705000 0x100>; // BRx, ORx, etc.
ranges = <
0x0 0x0 0xff800000 0x0800000 // 8MB boot flash
0x1 0x0 0xe4000000 0x4000000 // 64MB flash
0x3 0x0 0x20000000 0x4000000 // 64MB SDRAM
0x4 0x0 0x24000000 0x4000000 // 64MB SDRAM
0x5 0x0 0xfc000000 0x0c00000 // EPLD
0x6 0x0 0xe0000000 0x4000000 // 64MB flash
0x7 0x0 0x80000000 0x0200000 // ATM1,2
>;
epld@5,0 {
compatible = "wrs,epld-localbus";
#address-cells = <2>;
#size-cells = <1>;
reg = <0x5 0x0 0xc00000>;
ranges = <
0x0 0x0 0x5 0x000000 0x1fff // LED disp.
0x1 0x0 0x5 0x100000 0x1fff // switches
0x2 0x0 0x5 0x200000 0x1fff // ID reg.
0x3 0x0 0x5 0x300000 0x1fff // status reg.
0x4 0x0 0x5 0x400000 0x1fff // reset reg.
0x5 0x0 0x5 0x500000 0x1fff // Wind port
0x7 0x0 0x5 0x700000 0x1fff // UART #1
0x8 0x0 0x5 0x800000 0x1fff // UART #2
0x9 0x0 0x5 0x900000 0x1fff // RTC
0xb 0x0 0x5 0xb00000 0x1fff // EEPROM
>;
bidr@2,0 {
compatible = "wrs,sbc8560-bidr";
reg = <0x2 0x0 0x10>;
};
bcsr@3,0 {
compatible = "wrs,sbc8560-bcsr";
reg = <0x3 0x0 0x10>;
};
brstcr@4,0 {
compatible = "wrs,sbc8560-brstcr";
reg = <0x4 0x0 0x10>;
};
serial0: serial@7,0 {
device_type = "serial";
compatible = "ns16550";
reg = <0x7 0x0 0x100>;
clock-frequency = <1843200>;
interrupts = <0x9 0x2>;
interrupt-parent = <&mpic>;
};
serial1: serial@8,0 {
device_type = "serial";
compatible = "ns16550";
reg = <0x8 0x0 0x100>;
clock-frequency = <1843200>;
interrupts = <0xa 0x2>;
interrupt-parent = <&mpic>;
};
rtc@9,0 {
compatible = "m48t59";
reg = <0x9 0x0 0x1fff>;
};
};
};
};
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 2/7] powerpc: allow localbus compatible serial ports for console device
2008-01-07 16:04 ` Arnd Bergmann
@ 2008-01-17 22:03 ` Paul Gortmaker
2008-01-17 22:07 ` Scott Wood
2008-01-17 22:35 ` Arnd Bergmann
0 siblings, 2 replies; 33+ messages in thread
From: Paul Gortmaker @ 2008-01-17 22:03 UTC (permalink / raw)
To: Arnd Bergmann; +Cc: linuxppc-dev
In message: Re: [PATCH 2/7] powerpc: allow localbus compatible serial ports for console device
on 07/01/2008 Arnd Bergmann wrote:
> On Monday 07 January 2008, Paul Gortmaker wrote:
> >
> > I'd thought about doing that, but there are slight differences
> > in each test. To remain 100% faithful to the original implementation
> > you'd have to have a table or similar that had these various fields
> > and loop over that -- something like:
> >
> > compat parent pnt-compat pnt-type add-fcn
> > ---------------------------------------------------------------
> > ns16550 NULL NULL soc add_legacy_soc_port
> > NULL isa NULL NULL add_legacy_isa_port
> > ns16550 NULL NULL tsi-bridge add_legacy_soc_port
> > ns16550 NULL ibm,opb opb add_legacy_soc_port
> > ns16550 NULL localbus NULL add_legacy_soc_port
> >
> > But, if we were willing to move away from checks based on
> > the parent->type and stick with parent->compat, then the
> > unification would be a lot cleaner and easier to implement.
>
> Unfortunately, some of our cell blades don't have the right
> 'compatible' property, so you still need to check the type for
> the opb case.
>
> > (we could also leave the ISA one out as an oddball, and then
> > not have to carry an add-fcn either).
>
> yes, that seems reasonable.
Have a look at this and see if it seems OK to you. It collapses the soc,
tsi-bridge, opb and localbus code blocks into one. The patch is layered
on my previous patch that did the for_each cleanup on the np's but if folks
are OK with the general implementation, I'll spin an equivalent patch
for direct application to the origin/for-2.6.25 branch with signed off etc.
Thanks,
Paul.
---
diff --git a/arch/powerpc/kernel/legacy_serial.c b/arch/powerpc/kernel/legacy_serial.c
index d0b8e35..16a4ef1 100644
--- a/arch/powerpc/kernel/legacy_serial.c
+++ b/arch/powerpc/kernel/legacy_serial.c
@@ -31,6 +31,21 @@ static struct legacy_serial_info {
int irq_check_parent;
phys_addr_t taddr;
} legacy_serial_infos[MAX_LEGACY_SERIAL_PORTS];
+
+struct serial_parent {
+ char *type;
+ char *compat;
+};
+
+static struct __init serial_parent parents[] = {
+ {"soc", NULL},
+ {"tsi-bridge", NULL},
+ {"opb", "ibm,opb"},
+ {NULL, "wrs,epld-localbus"},
+};
+
+#define NUM_PARENTS sizeof(parents)/sizeof(struct serial_parent)
+
static unsigned int legacy_serial_count;
static int legacy_serial_console = -1;
@@ -292,6 +307,7 @@ void __init find_legacy_serial_ports(void)
{
struct device_node *np, *stdout = NULL;
const char *path;
+ struct serial_parent *sp, *end = parents + NUM_PARENTS;
int index;
DBG(" -> find_legacy_serial_port()\n");
@@ -306,15 +322,24 @@ void __init find_legacy_serial_ports(void)
DBG(" no linux,stdout-path !\n");
}
- /* First fill our array with SOC ports */
- for_each_compatible_node(np, "serial", "ns16550") {
- struct device_node *soc = of_get_parent(np);
- if (soc && !strcmp(soc->type, "soc")) {
- index = add_legacy_soc_port(np, np);
- if (index >= 0 && np == stdout)
- legacy_serial_console = index;
+ for (sp = parents; sp != end; sp++) {
+ for_each_compatible_node(np, "serial", "ns16550") {
+ struct device_node *parent = of_get_parent(np);
+ int p_type_ok = 0, p_is_compat = 0;
+ if (!parent)
+ continue;
+ if (sp->type && !strcmp(parent->type, sp->type))
+ p_type_ok = 1;
+ if (sp->compat && of_device_is_compatible(parent, sp->compat))
+ p_is_compat = 1;
+ if (p_type_ok || p_is_compat) {
+ index = add_legacy_soc_port(np, np);
+ if (index >= 0 && np == stdout)
+ legacy_serial_console = index;
+ }
+ of_node_put(parent);
}
- of_node_put(soc);
+
}
/* Next, fill our array with ISA ports */
@@ -328,40 +353,6 @@ void __init find_legacy_serial_ports(void)
of_node_put(isa);
}
- /* Next, fill our array with tsi-bridge ports */
- for_each_compatible_node(np, "serial", "ns16550") {
- struct device_node *tsi = of_get_parent(np);
- if (tsi && !strcmp(tsi->type, "tsi-bridge")) {
- index = add_legacy_soc_port(np, np);
- if (index >= 0 && np == stdout)
- legacy_serial_console = index;
- }
- of_node_put(tsi);
- }
-
- /* Next, fill our array with opb bus ports */
- for_each_compatible_node(np, "serial", "ns16550") {
- struct device_node *opb = of_get_parent(np);
- if (opb && (!strcmp(opb->type, "opb") ||
- of_device_is_compatible(opb, "ibm,opb"))) {
- index = add_legacy_soc_port(np, np);
- if (index >= 0 && np == stdout)
- legacy_serial_console = index;
- }
- of_node_put(opb);
- }
-
- /* Next, fill our array with any localbus serial ports */
- for_each_compatible_node(np, "serial", "ns16550") {
- struct device_node *lbs = of_get_parent(np);
- if (lbs && of_device_is_compatible(lbs, "localbus")) {
- index = add_legacy_soc_port(np, np);
- if (index >= 0 && np == stdout)
- legacy_serial_console = index;
- }
- of_node_put(lbs);
- }
-
#ifdef CONFIG_PCI
/* Next, try to locate PCI ports */
for (np = NULL; (np = of_find_all_nodes(np));) {
^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [PATCH 2/7] powerpc: allow localbus compatible serial ports for console device
2008-01-17 22:03 ` Paul Gortmaker
@ 2008-01-17 22:07 ` Scott Wood
2008-01-17 22:35 ` Arnd Bergmann
1 sibling, 0 replies; 33+ messages in thread
From: Scott Wood @ 2008-01-17 22:07 UTC (permalink / raw)
To: Paul Gortmaker; +Cc: linuxppc-dev, Arnd Bergmann
Paul Gortmaker wrote:
> +static struct __init serial_parent parents[] = {
> + {"soc", NULL},
> + {"tsi-bridge", NULL},
> + {"opb", "ibm,opb"},
> + {NULL, "wrs,epld-localbus"},
> +};
can we add {NULL, "simple-bus"} to this list?
-Scott
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 2/7] powerpc: allow localbus compatible serial ports for console device
2008-01-17 22:03 ` Paul Gortmaker
2008-01-17 22:07 ` Scott Wood
@ 2008-01-17 22:35 ` Arnd Bergmann
2008-01-24 17:13 ` [PATCH] powerpc: reduce code duplication in legacy_serial, add UART parent types Paul Gortmaker
1 sibling, 1 reply; 33+ messages in thread
From: Arnd Bergmann @ 2008-01-17 22:35 UTC (permalink / raw)
To: Paul Gortmaker; +Cc: linuxppc-dev
On Thursday 17 January 2008, Paul Gortmaker wrote:
> +struct serial_parent {
> +=A0=A0=A0=A0=A0=A0=A0char *type;
> +=A0=A0=A0=A0=A0=A0=A0char *compat;
> +};
> +
> +static struct __init serial_parent parents[] =3D {
> +=A0=A0=A0=A0=A0=A0=A0{"soc", NULL},
> +=A0=A0=A0=A0=A0=A0=A0{"tsi-bridge", NULL},
> +=A0=A0=A0=A0=A0=A0=A0{"opb", "ibm,opb"},
> +=A0=A0=A0=A0=A0=A0=A0{NULL, "wrs,epld-localbus"},
> +};
> +
> +#define NUM_PARENTS sizeof(parents)/sizeof(struct serial_parent)
<snip>
> + for (sp =3D parents; sp !=3D end; sp++) {
> + for_each_compatible_node(np, "serial", "ns16550") {
> + struct device_node *parent =3D of_get_parent(np);
> + int p_type_ok =3D 0, p_is_compat =3D 0;
> + if (!parent)
> + continue;
> + if (sp->type && !strcmp(parent->type, sp->type))
> + p_type_ok =3D 1;
> + if (sp->compat && of_device_is_compatible(parent,
> sp->compat)) + p_is_compat =3D 1;
> + if (p_type_ok || p_is_compat) {
> + index =3D add_legacy_soc_port(np, np);
> + if (index >=3D 0 && np =3D=3D stdout)
> + legacy_serial_console =3D index;
> + }
> + of_node_put(parent);
I think you can express that more densely using struct of_device_id
and of_match_node(). Otherwise, it looks good to me, thanks a lot
for following up on my suggestion!
Arnd <><
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 0/7] Powerpc support for SBC8560 board
2008-01-07 14:25 [PATCH 0/7] Powerpc support for SBC8560 board Paul Gortmaker
[not found] ` <ef7d84e06c45289f51f35845ccaa63bbf31827db.1199715362.git.paul.gortmaker@windriver.com>
@ 2008-01-24 9:30 ` Kumar Gala
2008-01-24 14:17 ` Paul Gortmaker
1 sibling, 1 reply; 33+ messages in thread
From: Kumar Gala @ 2008-01-24 9:30 UTC (permalink / raw)
To: Paul Gortmaker; +Cc: linuxppc-dev
On Jan 7, 2008, at 8:25 AM, Paul Gortmaker wrote:
>
> This is a respin of the sbc8560 patches, incorporating the feedback
> and
> suggested changes from everyone. Changes include:
>
> -coding style and missing of_put (Stephen Rothwell)
>
> -minor dtc cleanups for gianfar, mdio, mpic etc. (David Gibson /
> Kumar Gala)
>
> -use for_each macros in legacy_serial to improve readability, and as
> groundwork for next change (me)
>
> -convert dtc "duart" + "device-type="soc" thing to be an epld entry
> listed as compatible with "localbus" -- plus add localbus as an
> acceptable
> parent in legacy_serial (David Gibson / Scott Wood)
>
> -rtc is now a child of the epld/localbus and does not use device_type
> in the dtc, nor in the platform detection code (David Gibson)
>
> -add CPM2 data to dts for FCC ports (on optional daughterboard) based
> on the MPC8560ADS dts (me)
>
> -add dts aliases, conversion to dts-v1 (Kumar)
>
> Patches are as follows:
>
> 1 powerpc-use-for_each-in-legacy_serial.txt
> 2 powerpc-allow-localbus-compatible-serial-ports-for-console-
> device.txt
> 3 sbc8560-add-support-for-Wind-River-SBC8560-in-arch-powerpc.txt
> 4 sbc8560-Add-device-tree-source-for-Wind-River-SBC8560-board.txt
> 5 sbc8560-Convert-WRS-SBC8560-device-tree-to-v1-format.txt
> 6 CPM2-Make-support-for-the-CPM2-optional-on-8560-based-boards.txt
> 7 sbc8560-Add-default-.config-file-for-Wind-River-SBC8560.txt
>
> Thanks again to all those who provided feedback.
Have we closed on these patches?
the sbc8560 is the last board that we need to close on for me to kill
85xx in arch/ppc.
- k
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 0/7] Powerpc support for SBC8560 board
2008-01-24 9:30 ` [PATCH 0/7] Powerpc support for SBC8560 board Kumar Gala
@ 2008-01-24 14:17 ` Paul Gortmaker
2008-01-24 14:25 ` Kumar Gala
0 siblings, 1 reply; 33+ messages in thread
From: Paul Gortmaker @ 2008-01-24 14:17 UTC (permalink / raw)
To: Kumar Gala; +Cc: linuxppc-dev
Kumar Gala wrote:
>
> On Jan 7, 2008, at 8:25 AM, Paul Gortmaker wrote:
>
>>
>> This is a respin of the sbc8560 patches, incorporating the feedback and
>> suggested changes from everyone. Changes include:
>>
>> -coding style and missing of_put (Stephen Rothwell)
>>
>> -minor dtc cleanups for gianfar, mdio, mpic etc. (David Gibson /
>> Kumar Gala)
>>
>> -use for_each macros in legacy_serial to improve readability, and as
>> groundwork for next change (me)
>>
>> -convert dtc "duart" + "device-type="soc" thing to be an epld entry
>> listed as compatible with "localbus" -- plus add localbus as an
>> acceptable
>> parent in legacy_serial (David Gibson / Scott Wood)
>>
>> -rtc is now a child of the epld/localbus and does not use device_type
>> in the dtc, nor in the platform detection code (David Gibson)
>>
>> -add CPM2 data to dts for FCC ports (on optional daughterboard) based
>> on the MPC8560ADS dts (me)
>>
>> -add dts aliases, conversion to dts-v1 (Kumar)
>>
>> Patches are as follows:
>>
>> 1 powerpc-use-for_each-in-legacy_serial.txt
>> 2 powerpc-allow-localbus-compatible-serial-ports-for-console-device.txt
>> 3 sbc8560-add-support-for-Wind-River-SBC8560-in-arch-powerpc.txt
>> 4 sbc8560-Add-device-tree-source-for-Wind-River-SBC8560-board.txt
>> 5 sbc8560-Convert-WRS-SBC8560-device-tree-to-v1-format.txt
>> 6 CPM2-Make-support-for-the-CPM2-optional-on-8560-based-boards.txt
>> 7 sbc8560-Add-default-.config-file-for-Wind-River-SBC8560.txt
>>
>> Thanks again to all those who provided feedback.
>
> Have we closed on these patches?
>
> the sbc8560 is the last board that we need to close on for me to kill
> 85xx in arch/ppc.
I think so. For the 8560, the last issue was David wanting
the dts to have the address cells =2 on localbus-like nodes
and I've not heard any negative feedback on how I did it (yet).
I'll resend the 8xxx patches as a lump today for the sake
of merge convenience, with the legacy_serial change and the
extra simplebus that Scott asked for factored out separate.
Thanks,
Paul.
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 0/7] Powerpc support for SBC8560 board
2008-01-24 14:17 ` Paul Gortmaker
@ 2008-01-24 14:25 ` Kumar Gala
2008-01-24 14:27 ` Paul Gortmaker
0 siblings, 1 reply; 33+ messages in thread
From: Kumar Gala @ 2008-01-24 14:25 UTC (permalink / raw)
To: Paul Gortmaker; +Cc: linuxppc-dev
On Jan 24, 2008, at 8:17 AM, Paul Gortmaker wrote:
> Kumar Gala wrote:
>>
>> On Jan 7, 2008, at 8:25 AM, Paul Gortmaker wrote:
>>
>>>
>>> This is a respin of the sbc8560 patches, incorporating the
>>> feedback and
>>> suggested changes from everyone. Changes include:
>>>
>>> -coding style and missing of_put (Stephen Rothwell)
>>>
>>> -minor dtc cleanups for gianfar, mdio, mpic etc. (David Gibson /
>>> Kumar Gala)
>>>
>>> -use for_each macros in legacy_serial to improve readability, and as
>>> groundwork for next change (me)
>>>
>>> -convert dtc "duart" + "device-type="soc" thing to be an epld entry
>>> listed as compatible with "localbus" -- plus add localbus as an
>>> acceptable
>>> parent in legacy_serial (David Gibson / Scott Wood)
>>>
>>> -rtc is now a child of the epld/localbus and does not use
>>> device_type
>>> in the dtc, nor in the platform detection code (David Gibson)
>>>
>>> -add CPM2 data to dts for FCC ports (on optional daughterboard)
>>> based
>>> on the MPC8560ADS dts (me)
>>>
>>> -add dts aliases, conversion to dts-v1 (Kumar)
>>>
>>> Patches are as follows:
>>>
>>> 1 powerpc-use-for_each-in-legacy_serial.txt
>>> 2 powerpc-allow-localbus-compatible-serial-ports-for-console-
>>> device.txt
>>> 3 sbc8560-add-support-for-Wind-River-SBC8560-in-arch-powerpc.txt
>>> 4 sbc8560-Add-device-tree-source-for-Wind-River-SBC8560-board.txt
>>> 5 sbc8560-Convert-WRS-SBC8560-device-tree-to-v1-format.txt
>>> 6 CPM2-Make-support-for-the-CPM2-optional-on-8560-based-boards.txt
>>> 7 sbc8560-Add-default-.config-file-for-Wind-River-SBC8560.txt
>>>
>>> Thanks again to all those who provided feedback.
>>
>> Have we closed on these patches?
>>
>> the sbc8560 is the last board that we need to close on for me to
>> kill 85xx in arch/ppc.
>
> I think so. For the 8560, the last issue was David wanting
> the dts to have the address cells =2 on localbus-like nodes
> and I've not heard any negative feedback on how I did it (yet).
>
> I'll resend the 8xxx patches as a lump today for the sake
> of merge convenience, with the legacy_serial change and the
> extra simplebus that Scott asked for factored out separate.
ok that would be great. Will that include an updated sbc834x set?
- k
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 0/7] Powerpc support for SBC8560 board
2008-01-24 14:25 ` Kumar Gala
@ 2008-01-24 14:27 ` Paul Gortmaker
0 siblings, 0 replies; 33+ messages in thread
From: Paul Gortmaker @ 2008-01-24 14:27 UTC (permalink / raw)
To: Kumar Gala; +Cc: linuxppc-dev
Kumar Gala wrote:
>
> On Jan 24, 2008, at 8:17 AM, Paul Gortmaker wrote:
>
>> Kumar Gala wrote:
>>>
>>> Have we closed on these patches?
>>>
>>> the sbc8560 is the last board that we need to close on for me to
>>> kill 85xx in arch/ppc.
>>
>> I think so. For the 8560, the last issue was David wanting
>> the dts to have the address cells =2 on localbus-like nodes
>> and I've not heard any negative feedback on how I did it (yet).
>>
>> I'll resend the 8xxx patches as a lump today for the sake
>> of merge convenience, with the legacy_serial change and the
>> extra simplebus that Scott asked for factored out separate.
>
> ok that would be great. Will that include an updated sbc834x set?
Yes, the sbc834x, sbc8548 and sbc8560.
Thanks,
Paul.
>
> - k
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH] powerpc: reduce code duplication in legacy_serial, add UART parent types
2008-01-17 22:35 ` Arnd Bergmann
@ 2008-01-24 17:13 ` Paul Gortmaker
2008-01-24 22:40 ` Paul Gortmaker
2008-01-25 6:17 ` [PATCH] powerpc: reduce code duplication in legacy_serial, add UART parent types Arnd Bergmann
0 siblings, 2 replies; 33+ messages in thread
From: Paul Gortmaker @ 2008-01-24 17:13 UTC (permalink / raw)
To: linuxppc-dev; +Cc: scottwood, Paul Gortmaker, arnd
The legacy_serial was treating each UART parent in a separate code block.
Rather than continue this trend for the new parent IDs, this condenses
all (soc, tsi, opb, plus two more new types) into one of_device_id array.
The new types are wrs,epld-localbus for the Wind River sbc8560, and a
more generic "simple-bus" as requested by Scott Wood.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
arch/powerpc/kernel/legacy_serial.c | 45 +++++++++++++---------------------
1 files changed, 17 insertions(+), 28 deletions(-)
diff --git a/arch/powerpc/kernel/legacy_serial.c b/arch/powerpc/kernel/legacy_serial.c
index 4bfff88..523a9d4 100644
--- a/arch/powerpc/kernel/legacy_serial.c
+++ b/arch/powerpc/kernel/legacy_serial.c
@@ -4,6 +4,7 @@
#include <linux/serial_core.h>
#include <linux/console.h>
#include <linux/pci.h>
+#include <linux/of_device.h>
#include <asm/io.h>
#include <asm/mmu.h>
#include <asm/prom.h>
@@ -31,6 +32,15 @@ static struct legacy_serial_info {
int irq_check_parent;
phys_addr_t taddr;
} legacy_serial_infos[MAX_LEGACY_SERIAL_PORTS];
+
+static struct __init of_device_id parents[] = {
+ {.type = "soc",},
+ {.type = "tsi-bridge",},
+ {.type = "opb", .compatible = "ibm,opb",},
+ {.compatible = "simple-bus",},
+ {.compatible = "wrs,epld-localbus",},
+};
+
static unsigned int legacy_serial_count;
static int legacy_serial_console = -1;
@@ -306,18 +316,20 @@ void __init find_legacy_serial_ports(void)
DBG(" no linux,stdout-path !\n");
}
- /* First fill our array with SOC ports */
+ /* Iterate over all the 16550 ports, looking for known parents */
for_each_compatible_node(np, "serial", "ns16550") {
- struct device_node *soc = of_get_parent(np);
- if (soc && !strcmp(soc->type, "soc")) {
+ struct device_node *parent = of_get_parent(np);
+ if (!parent)
+ continue;
+ if (of_match_node(parents, parent) != NULL) {
index = add_legacy_soc_port(np, np);
if (index >= 0 && np == stdout)
legacy_serial_console = index;
}
- of_node_put(soc);
+ of_node_put(parent);
}
- /* First fill our array with ISA ports */
+ /* Next, fill our array with ISA ports */
for_each_node_by_type(np, "serial") {
struct device_node *isa = of_get_parent(np);
if (isa && !strcmp(isa->name, "isa")) {
@@ -328,29 +340,6 @@ void __init find_legacy_serial_ports(void)
of_node_put(isa);
}
- /* First fill our array with tsi-bridge ports */
- for_each_compatible_node(np, "serial", "ns16550") {
- struct device_node *tsi = of_get_parent(np);
- if (tsi && !strcmp(tsi->type, "tsi-bridge")) {
- index = add_legacy_soc_port(np, np);
- if (index >= 0 && np == stdout)
- legacy_serial_console = index;
- }
- of_node_put(tsi);
- }
-
- /* First fill our array with opb bus ports */
- for_each_compatible_node(np, "serial", "ns16550") {
- struct device_node *opb = of_get_parent(np);
- if (opb && (!strcmp(opb->type, "opb") ||
- of_device_is_compatible(opb, "ibm,opb"))) {
- index = add_legacy_soc_port(np, np);
- if (index >= 0 && np == stdout)
- legacy_serial_console = index;
- }
- of_node_put(opb);
- }
-
#ifdef CONFIG_PCI
/* Next, try to locate PCI ports */
for (np = NULL; (np = of_find_all_nodes(np));) {
--
1.5.0.rc1.gf4b6c
^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [PATCH] powerpc: reduce code duplication in legacy_serial, add UART parent types
2008-01-24 17:13 ` [PATCH] powerpc: reduce code duplication in legacy_serial, add UART parent types Paul Gortmaker
@ 2008-01-24 22:40 ` Paul Gortmaker
2008-01-25 8:17 ` Kumar Gala
2008-01-25 6:17 ` [PATCH] powerpc: reduce code duplication in legacy_serial, add UART parent types Arnd Bergmann
1 sibling, 1 reply; 33+ messages in thread
From: Paul Gortmaker @ 2008-01-24 22:40 UTC (permalink / raw)
To: linuxppc-dev; +Cc: scottwood, arnd
In message: [PATCH] powerpc: reduce code duplication in legacy_serial, add UART parent types
on 24/01/2008 Paul Gortmaker wrote:
> @@ -31,6 +32,15 @@ static struct legacy_serial_info {
> int irq_check_parent;
> phys_addr_t taddr;
> } legacy_serial_infos[MAX_LEGACY_SERIAL_PORTS];
> +
> +static struct __init of_device_id parents[] = {
Oops, that should have been __initdata to be 100% correct...
P.
---
From: Paul Gortmaker <paul.gortmaker@windriver.com>
Date: Thu, 24 Jan 2008 11:59:12 -0500
Subject: [PATCH] powerpc: reduce code duplication in legacy_serial, add UART parent types
The legacy_serial was treating each UART parent in a separate code block.
Rather than continue this trend for the new parent IDs, this condenses
all (soc, tsi, opb, plus two more new types) into one of_device_id array.
The new types are wrs,epld-localbus for the Wind River sbc8560, and a
more generic "simple-bus" as requested by Scott Wood.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
arch/powerpc/kernel/legacy_serial.c | 45 +++++++++++++---------------------
1 files changed, 17 insertions(+), 28 deletions(-)
diff --git a/arch/powerpc/kernel/legacy_serial.c b/arch/powerpc/kernel/legacy_serial.c
index 4bfff88..76b862b 100644
--- a/arch/powerpc/kernel/legacy_serial.c
+++ b/arch/powerpc/kernel/legacy_serial.c
@@ -4,6 +4,7 @@
#include <linux/serial_core.h>
#include <linux/console.h>
#include <linux/pci.h>
+#include <linux/of_device.h>
#include <asm/io.h>
#include <asm/mmu.h>
#include <asm/prom.h>
@@ -31,6 +32,15 @@ static struct legacy_serial_info {
int irq_check_parent;
phys_addr_t taddr;
} legacy_serial_infos[MAX_LEGACY_SERIAL_PORTS];
+
+static struct __initdata of_device_id parents[] = {
+ {.type = "soc",},
+ {.type = "tsi-bridge",},
+ {.type = "opb", .compatible = "ibm,opb",},
+ {.compatible = "simple-bus",},
+ {.compatible = "wrs,epld-localbus",},
+};
+
static unsigned int legacy_serial_count;
static int legacy_serial_console = -1;
@@ -306,18 +316,20 @@ void __init find_legacy_serial_ports(void)
DBG(" no linux,stdout-path !\n");
}
- /* First fill our array with SOC ports */
+ /* Iterate over all the 16550 ports, looking for known parents */
for_each_compatible_node(np, "serial", "ns16550") {
- struct device_node *soc = of_get_parent(np);
- if (soc && !strcmp(soc->type, "soc")) {
+ struct device_node *parent = of_get_parent(np);
+ if (!parent)
+ continue;
+ if (of_match_node(parents, parent) != NULL) {
index = add_legacy_soc_port(np, np);
if (index >= 0 && np == stdout)
legacy_serial_console = index;
}
- of_node_put(soc);
+ of_node_put(parent);
}
- /* First fill our array with ISA ports */
+ /* Next, fill our array with ISA ports */
for_each_node_by_type(np, "serial") {
struct device_node *isa = of_get_parent(np);
if (isa && !strcmp(isa->name, "isa")) {
@@ -328,29 +340,6 @@ void __init find_legacy_serial_ports(void)
of_node_put(isa);
}
- /* First fill our array with tsi-bridge ports */
- for_each_compatible_node(np, "serial", "ns16550") {
- struct device_node *tsi = of_get_parent(np);
- if (tsi && !strcmp(tsi->type, "tsi-bridge")) {
- index = add_legacy_soc_port(np, np);
- if (index >= 0 && np == stdout)
- legacy_serial_console = index;
- }
- of_node_put(tsi);
- }
-
- /* First fill our array with opb bus ports */
- for_each_compatible_node(np, "serial", "ns16550") {
- struct device_node *opb = of_get_parent(np);
- if (opb && (!strcmp(opb->type, "opb") ||
- of_device_is_compatible(opb, "ibm,opb"))) {
- index = add_legacy_soc_port(np, np);
- if (index >= 0 && np == stdout)
- legacy_serial_console = index;
- }
- of_node_put(opb);
- }
-
#ifdef CONFIG_PCI
/* Next, try to locate PCI ports */
for (np = NULL; (np = of_find_all_nodes(np));) {
--
1.5.0.rc1.gf4b6c
^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [PATCH] powerpc: reduce code duplication in legacy_serial, add UART parent types
2008-01-24 17:13 ` [PATCH] powerpc: reduce code duplication in legacy_serial, add UART parent types Paul Gortmaker
2008-01-24 22:40 ` Paul Gortmaker
@ 2008-01-25 6:17 ` Arnd Bergmann
1 sibling, 0 replies; 33+ messages in thread
From: Arnd Bergmann @ 2008-01-25 6:17 UTC (permalink / raw)
To: linuxppc-dev; +Cc: scottwood, Paul Gortmaker
On Thursday 24 January 2008, Paul Gortmaker wrote:
> The legacy_serial was treating each UART parent in a separate code block.
> Rather than continue this trend for the new parent IDs, this condenses
> all (soc, tsi, opb, plus two more new types) into one of_device_id array.
> The new types are wrs,epld-localbus for the Wind River sbc8560, and a
> more generic "simple-bus" as requested by Scott Wood.
>=20
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Looks good to me, thanks!
=A0
> -=A0=A0=A0=A0=A0=A0=A0/* First fill our array with SOC ports */
> +=A0=A0=A0=A0=A0=A0=A0/* Iterate over all the 16550 ports, looking for kn=
own parents */
> =A0=A0=A0=A0=A0=A0=A0=A0for_each_compatible_node(np, "serial", "ns16550")=
{
> -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0struct device_node *soc =3D=
of_get_parent(np);
> -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0if (soc && !strcmp(soc->typ=
e, "soc")) {
> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0struct device_node *parent =
=3D of_get_parent(np);
> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0if (!parent)
> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0con=
tinue;
> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0if (of_match_node(parents, =
parent) !=3D NULL) {
Personally, I prefer to write this as
if (of_match_node(parents, parent)) {
but that question of coding style is controversial enough that I
stopped insisting on that, so do whichever you like best.
Arnd <><
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH] powerpc: reduce code duplication in legacy_serial, add UART parent types
2008-01-24 22:40 ` Paul Gortmaker
@ 2008-01-25 8:17 ` Kumar Gala
2008-07-07 6:33 ` Benjamin Herrenschmidt
0 siblings, 1 reply; 33+ messages in thread
From: Kumar Gala @ 2008-01-25 8:17 UTC (permalink / raw)
To: Paul Gortmaker; +Cc: scottwood, linuxppc-dev, arnd
> From: Paul Gortmaker <paul.gortmaker@windriver.com>
> Date: Thu, 24 Jan 2008 11:59:12 -0500
> Subject: [PATCH] powerpc: reduce code duplication in legacy_serial, add UART parent types
>
> The legacy_serial was treating each UART parent in a separate code block.
> Rather than continue this trend for the new parent IDs, this condenses
> all (soc, tsi, opb, plus two more new types) into one of_device_id array.
> The new types are wrs,epld-localbus for the Wind River sbc8560, and a
> more generic "simple-bus" as requested by Scott Wood.
>
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> ---
> arch/powerpc/kernel/legacy_serial.c | 45 +++++++++++++---------------------
> 1 files changed, 17 insertions(+), 28 deletions(-)
>
applied
- k
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH] powerpc: reduce code duplication in legacy_serial, add UART parent types
2008-01-25 8:17 ` Kumar Gala
@ 2008-07-07 6:33 ` Benjamin Herrenschmidt
2008-07-07 15:02 ` Paul Gortmaker
2008-07-07 15:05 ` [PATCH] legacy-serial: more meaningful names, terminate array Paul Gortmaker
0 siblings, 2 replies; 33+ messages in thread
From: Benjamin Herrenschmidt @ 2008-07-07 6:33 UTC (permalink / raw)
To: Kumar Gala; +Cc: scottwood, Paul Gortmaker, arnd, linuxppc-dev
On Fri, 2008-01-25 at 02:17 -0600, Kumar Gala wrote:
> > The legacy_serial was treating each UART parent in a separate code block.
> > Rather than continue this trend for the new parent IDs, this condenses
> > all (soc, tsi, opb, plus two more new types) into one of_device_id array.
> > The new types are wrs,epld-localbus for the Wind River sbc8560, and a
> > more generic "simple-bus" as requested by Scott Wood.
> >
> > Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> > ---
> > arch/powerpc/kernel/legacy_serial.c | 45 +++++++++++++---------------------
> > 1 files changed, 17 insertions(+), 28 deletions(-)
> >
> applied
(Catching that old patch on patchworks by accident)
Hrm... please next time don't take patches to generic stuff like
legacy_serial through your tree. This one has definitely not been
properly reviewed.
In this case, there are at least two problems with the patch:
- The parents array should be called something better, as-is, go figure
where you crashed when all you find is a symbol called "parents"
- The array isn't terminated (or did I miss something ?) which means
that non-matching parents will probably crash.
Ben.
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH] powerpc: reduce code duplication in legacy_serial, add UART parent types
2008-07-07 6:33 ` Benjamin Herrenschmidt
@ 2008-07-07 15:02 ` Paul Gortmaker
2008-07-07 15:05 ` [PATCH] legacy-serial: more meaningful names, terminate array Paul Gortmaker
1 sibling, 0 replies; 33+ messages in thread
From: Paul Gortmaker @ 2008-07-07 15:02 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: scottwood, linuxppc-dev, arnd
In message: Re: [PATCH] powerpc: reduce code duplication in legacy_serial, add UART parent types
on 07/07/2008 Benjamin Herrenschmidt wrote:
> On Fri, 2008-01-25 at 02:17 -0600, Kumar Gala wrote:
> > > The legacy_serial was treating each UART parent in a separate code block.
> > > Rather than continue this trend for the new parent IDs, this condenses
> > > all (soc, tsi, opb, plus two more new types) into one of_device_id array.
> > > The new types are wrs,epld-localbus for the Wind River sbc8560, and a
> > > more generic "simple-bus" as requested by Scott Wood.
> > >
> > > Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> > > ---
> > > arch/powerpc/kernel/legacy_serial.c | 45 +++++++++++++---------------------
> > > 1 files changed, 17 insertions(+), 28 deletions(-)
> > >
> > applied
>
> (Catching that old patch on patchworks by accident)
>
> Hrm... please next time don't take patches to generic stuff like
> legacy_serial through your tree. This one has definitely not been
> properly reviewed.
>
> In this case, there are at least two problems with the patch:
>
> - The parents array should be called something better, as-is, go figure
> where you crashed when all you find is a symbol called "parents"
While looking around at what other names were used, I saw the ibmebus
used an equally non-descript name too, so I'll fix that as well. Patch
to follow shortly.
Thanks,
Paul.
>
> - The array isn't terminated (or did I miss something ?) which means
> that non-matching parents will probably crash.
>
> Ben.
>
>
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH] legacy-serial: more meaningful names, terminate array
2008-07-07 6:33 ` Benjamin Herrenschmidt
2008-07-07 15:02 ` Paul Gortmaker
@ 2008-07-07 15:05 ` Paul Gortmaker
2008-07-07 22:17 ` Benjamin Herrenschmidt
1 sibling, 1 reply; 33+ messages in thread
From: Paul Gortmaker @ 2008-07-07 15:05 UTC (permalink / raw)
To: linuxppc-dev; +Cc: scottwood, arnd, Paul Gortmaker
Terminate the array of possible legacy serial parents, and
choose more meaningful names for better autopsy value. Fix
and cleanups as suggested by Benjamin Herrenschmidt.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
arch/powerpc/kernel/ibmebus.c | 4 ++--
arch/powerpc/kernel/legacy_serial.c | 5 +++--
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c
index 9971159..58da8f8 100644
--- a/arch/powerpc/kernel/ibmebus.c
+++ b/arch/powerpc/kernel/ibmebus.c
@@ -53,7 +53,7 @@ static struct device ibmebus_bus_device = { /* fake "parent" device */
struct bus_type ibmebus_bus_type;
/* These devices will automatically be added to the bus during init */
-static struct of_device_id __initdata builtin_matches[] = {
+static struct of_device_id __initdata ibmebus_matches[] = {
{ .compatible = "IBM,lhca" },
{ .compatible = "IBM,lhea" },
{},
@@ -350,7 +350,7 @@ static int __init ibmebus_bus_init(void)
return err;
}
- err = ibmebus_create_devices(builtin_matches);
+ err = ibmebus_create_devices(ibmebus_matches);
if (err) {
device_unregister(&ibmebus_bus_device);
bus_unregister(&ibmebus_bus_type);
diff --git a/arch/powerpc/kernel/legacy_serial.c b/arch/powerpc/kernel/legacy_serial.c
index 61dd174..4b01c2b 100644
--- a/arch/powerpc/kernel/legacy_serial.c
+++ b/arch/powerpc/kernel/legacy_serial.c
@@ -33,13 +33,14 @@ static struct legacy_serial_info {
phys_addr_t taddr;
} legacy_serial_infos[MAX_LEGACY_SERIAL_PORTS];
-static struct __initdata of_device_id parents[] = {
+static struct __initdata of_device_id uart_match[] = {
{.type = "soc",},
{.type = "tsi-bridge",},
{.type = "opb", },
{.compatible = "ibm,opb",},
{.compatible = "simple-bus",},
{.compatible = "wrs,epld-localbus",},
+ {},
};
static unsigned int legacy_serial_count;
@@ -322,7 +323,7 @@ void __init find_legacy_serial_ports(void)
struct device_node *parent = of_get_parent(np);
if (!parent)
continue;
- if (of_match_node(parents, parent) != NULL) {
+ if (of_match_node(uart_match, parent) != NULL) {
index = add_legacy_soc_port(np, np);
if (index >= 0 && np == stdout)
legacy_serial_console = index;
--
1.5.6.6.gd3e97
^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [PATCH] legacy-serial: more meaningful names, terminate array
2008-07-07 15:05 ` [PATCH] legacy-serial: more meaningful names, terminate array Paul Gortmaker
@ 2008-07-07 22:17 ` Benjamin Herrenschmidt
2008-07-07 22:42 ` [PATCH] ibmebus: more meaningful variable name Paul Gortmaker
0 siblings, 1 reply; 33+ messages in thread
From: Benjamin Herrenschmidt @ 2008-07-07 22:17 UTC (permalink / raw)
To: Paul Gortmaker; +Cc: scottwood, linuxppc-dev, arnd
On Mon, 2008-07-07 at 11:05 -0400, Paul Gortmaker wrote:
> Terminate the array of possible legacy serial parents, and
> choose more meaningful names for better autopsy value. Fix
> and cleanups as suggested by Benjamin Herrenschmidt.
>
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> ---
Hi Paul !
Linus already merged my fix for legacy_serial.c, can you split
out the ibmebus part and resend it ? I'll stick it in -next.
Cheers,
Ben.
> arch/powerpc/kernel/ibmebus.c | 4 ++--
> arch/powerpc/kernel/legacy_serial.c | 5 +++--
> 2 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c
> index 9971159..58da8f8 100644
> --- a/arch/powerpc/kernel/ibmebus.c
> +++ b/arch/powerpc/kernel/ibmebus.c
> @@ -53,7 +53,7 @@ static struct device ibmebus_bus_device = { /* fake "parent" device */
> struct bus_type ibmebus_bus_type;
>
> /* These devices will automatically be added to the bus during init */
> -static struct of_device_id __initdata builtin_matches[] = {
> +static struct of_device_id __initdata ibmebus_matches[] = {
> { .compatible = "IBM,lhca" },
> { .compatible = "IBM,lhea" },
> {},
> @@ -350,7 +350,7 @@ static int __init ibmebus_bus_init(void)
> return err;
> }
>
> - err = ibmebus_create_devices(builtin_matches);
> + err = ibmebus_create_devices(ibmebus_matches);
> if (err) {
> device_unregister(&ibmebus_bus_device);
> bus_unregister(&ibmebus_bus_type);
> diff --git a/arch/powerpc/kernel/legacy_serial.c b/arch/powerpc/kernel/legacy_serial.c
> index 61dd174..4b01c2b 100644
> --- a/arch/powerpc/kernel/legacy_serial.c
> +++ b/arch/powerpc/kernel/legacy_serial.c
> @@ -33,13 +33,14 @@ static struct legacy_serial_info {
> phys_addr_t taddr;
> } legacy_serial_infos[MAX_LEGACY_SERIAL_PORTS];
>
> -static struct __initdata of_device_id parents[] = {
> +static struct __initdata of_device_id uart_match[] = {
> {.type = "soc",},
> {.type = "tsi-bridge",},
> {.type = "opb", },
> {.compatible = "ibm,opb",},
> {.compatible = "simple-bus",},
> {.compatible = "wrs,epld-localbus",},
> + {},
> };
>
> static unsigned int legacy_serial_count;
> @@ -322,7 +323,7 @@ void __init find_legacy_serial_ports(void)
> struct device_node *parent = of_get_parent(np);
> if (!parent)
> continue;
> - if (of_match_node(parents, parent) != NULL) {
> + if (of_match_node(uart_match, parent) != NULL) {
> index = add_legacy_soc_port(np, np);
> if (index >= 0 && np == stdout)
> legacy_serial_console = index;
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH] ibmebus: more meaningful variable name
2008-07-07 22:17 ` Benjamin Herrenschmidt
@ 2008-07-07 22:42 ` Paul Gortmaker
0 siblings, 0 replies; 33+ messages in thread
From: Paul Gortmaker @ 2008-07-07 22:42 UTC (permalink / raw)
To: linuxppc-dev; +Cc: scottwood, arnd, Paul Gortmaker
Choose a more meaningful name for better System.map readability and
autopsy value etc. Part of a cleanup suggested by Benjamin Herrenschmidt.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
arch/powerpc/kernel/ibmebus.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c
index 9971159..58da8f8 100644
--- a/arch/powerpc/kernel/ibmebus.c
+++ b/arch/powerpc/kernel/ibmebus.c
@@ -53,7 +53,7 @@ static struct device ibmebus_bus_device = { /* fake "parent" device */
struct bus_type ibmebus_bus_type;
/* These devices will automatically be added to the bus during init */
-static struct of_device_id __initdata builtin_matches[] = {
+static struct of_device_id __initdata ibmebus_matches[] = {
{ .compatible = "IBM,lhca" },
{ .compatible = "IBM,lhea" },
{},
@@ -350,7 +350,7 @@ static int __init ibmebus_bus_init(void)
return err;
}
- err = ibmebus_create_devices(builtin_matches);
+ err = ibmebus_create_devices(ibmebus_matches);
if (err) {
device_unregister(&ibmebus_bus_device);
bus_unregister(&ibmebus_bus_type);
--
1.5.6.6.gd3e97
^ permalink raw reply related [flat|nested] 33+ messages in thread
end of thread, other threads:[~2008-07-07 22:35 UTC | newest]
Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-07 14:25 [PATCH 0/7] Powerpc support for SBC8560 board Paul Gortmaker
[not found] ` <ef7d84e06c45289f51f35845ccaa63bbf31827db.1199715362.git.paul.gortmaker@windriver.com>
2008-01-07 14:25 ` [PATCH 1/7] powerpc: use for_each in legacy_serial Paul Gortmaker
[not found] ` <f6302303b90b7e1516a1f61d85f1eafd51ec3b51.1199715362.git.paul.gortmaker@windriver.com>
2008-01-07 14:25 ` [PATCH 2/7] powerpc: allow localbus compatible serial ports for console device Paul Gortmaker
2008-01-07 14:33 ` Arnd Bergmann
2008-01-07 15:33 ` Paul Gortmaker
2008-01-07 16:04 ` Arnd Bergmann
2008-01-17 22:03 ` Paul Gortmaker
2008-01-17 22:07 ` Scott Wood
2008-01-17 22:35 ` Arnd Bergmann
2008-01-24 17:13 ` [PATCH] powerpc: reduce code duplication in legacy_serial, add UART parent types Paul Gortmaker
2008-01-24 22:40 ` Paul Gortmaker
2008-01-25 8:17 ` Kumar Gala
2008-07-07 6:33 ` Benjamin Herrenschmidt
2008-07-07 15:02 ` Paul Gortmaker
2008-07-07 15:05 ` [PATCH] legacy-serial: more meaningful names, terminate array Paul Gortmaker
2008-07-07 22:17 ` Benjamin Herrenschmidt
2008-07-07 22:42 ` [PATCH] ibmebus: more meaningful variable name Paul Gortmaker
2008-01-25 6:17 ` [PATCH] powerpc: reduce code duplication in legacy_serial, add UART parent types Arnd Bergmann
[not found] ` <2e29068028918298af42b5ed07f7db147b81c921.1199715362.git.paul.gortmaker@windriver.com>
2008-01-07 14:25 ` [PATCH 3/7] sbc8560: add support for Wind River SBC8560 in arch/powerpc Paul Gortmaker
2008-01-08 0:32 ` Stephen Rothwell
2008-01-09 4:39 ` Paul Gortmaker
2008-01-09 6:23 ` Stephen Rothwell
[not found] ` <d10d083bafb978936975111f09669120201072ec.1199715362.git.paul.gortmaker@windriver.com>
2008-01-07 14:25 ` [PATCH 4/7] sbc8560: Add device tree source for Wind River SBC8560 board Paul Gortmaker
2008-01-10 2:56 ` David Gibson
2008-01-15 14:12 ` Kumar Gala
2008-01-17 20:50 ` Paul Gortmaker
[not found] ` <51ce902057aacef795405f501ad482c744a2e1f2.1199715362.git.paul.gortmaker@windriver.com>
2008-01-07 14:25 ` [PATCH 5/7] sbc8560: Convert WRS SBC8560 device tree to v1 format Paul Gortmaker
[not found] ` <25caba2d31cd9404db085c69e4d449dabbe56f1f.1199715362.git.paul.gortmaker@windriver.com>
2008-01-07 14:25 ` [PATCH 6/7] CPM2: Make support for the CPM2 optional on 8560 based boards Paul Gortmaker
[not found] ` <20d9f56839785af8a445e4cef3db98430b84b4ce.1199715362.git.paul.gortmaker@windriver.com>
2008-01-07 14:25 ` [PATCH 7/7] sbc8560: Add default .config file for Wind River SBC8560 Paul Gortmaker
2008-01-24 9:30 ` [PATCH 0/7] Powerpc support for SBC8560 board Kumar Gala
2008-01-24 14:17 ` Paul Gortmaker
2008-01-24 14:25 ` Kumar Gala
2008-01-24 14:27 ` Paul Gortmaker
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).