On Fri, Oct 03, 2008 at 10:07:19AM +1000, Benjamin Herrenschmidt wrote:
>Index: linux-work/arch/powerpc/boot/dts/iss4xx.dts
>===================================================================
>--- /dev/null  1970-01-01 00:00:00.000000000 +0000
>+++ linux-work/arch/powerpc/boot/dts/iss4xx.dts        2008-10-02 
>15:46:11.000000000 +1000
>@@ -0,0 +1,107 @@
>+/*
>+ * Device Tree Source for IBM Ebony

Lazy.  ;)

>+ *
>+ * Copyright (c) 2006, 2007 IBM Corp.
>+ * Josh Boyer <[EMAIL PROTECTED]>, David Gibson <[EMAIL PROTECTED]>
>+ *
>+ * FIXME: Draft only!
>+ *
>+ * This file is licensed under the terms of the GNU General Public
>+ * License version 2.  This program is licensed "as is" without
>+ * any warranty of any kind, whether express or implied.
>+ */
>+
>+/dts-v1/;
>+
>+/ {
>+      #address-cells = <2>;
>+      #size-cells = <1>;
>+      model = "ibm,iss-4xx";
>+      compatible = "ibm,iss-4xx";
>+      dcr-parent = <&{/cpus/[EMAIL PROTECTED]>;
>+
>+      aliases {
>+              serial0 = &UART0;
>+      };
>+
>+      cpus {
>+              #address-cells = <1>;
>+              #size-cells = <0>;
>+
>+              [EMAIL PROTECTED] {
>+                      device_type = "cpu";
>+                      model = "PowerPC,4xx"; // real CPU changed in sim
>+                      reg = <0x00000000>;
>+                      clock-frequency = <100000000>; // 100Mhz :-)
>+                      timebase-frequency = <100000000>;
>+                      i-cache-line-size = <32>; // may need fixup in sim
>+                      d-cache-line-size = <32>; // may need fixup in sim
>+                      i-cache-size = <32768>; /* may need fixup in sim */
>+                      d-cache-size = <32768>; /* may need fixup in sim */

Does "fixup in sim" mean that the simulator itself mucks with the
device tree?  Or is there some wrapper that does this prior to kernel
boot?

>+                      dcr-controller;
>+                      dcr-access-method = "native";
>+              };
>+      };
>+
>+      memory {
>+              device_type = "memory";
>+              reg = <0x00000000 0x00000000 0x00000000>; // Filled in by zImage
>+      };
>+
>+      UIC0: interrupt-controller0 {
>+              compatible = "ibm,uic-4xx", "ibm,uic";
>+              interrupt-controller;
>+              cell-index = <0>;
>+              dcr-reg = <0x0c0 0x009>;
>+              #address-cells = <0>;
>+              #size-cells = <0>;
>+              #interrupt-cells = <2>;
>+
>+      };
>+
>+      UIC1: interrupt-controller1 {
>+              compatible = "ibm,uic-4xx", "ibm,uic";
>+              interrupt-controller;
>+              cell-index = <1>;
>+              dcr-reg = <0x0d0 0x009>;
>+              #address-cells = <0>;
>+              #size-cells = <0>;
>+              #interrupt-cells = <2>;
>+              interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
>+              interrupt-parent = <&UIC0>;
>+      };
>+
>+      plb {
>+              compatible = "ibm,plb-4xx", "ibm,plb4"; /* Could be PLB6, 
>doesn't matter */

Why doesn't it matter?

>+              #address-cells = <2>;
>+              #size-cells = <1>;
>+              ranges;
>+              clock-frequency = <0>; // Filled in by zImage
>+
>+              POB0: opb {
>+                      compatible = "ibm,opb-4xx", "ibm,opb";
>+                      #address-cells = <1>;
>+                      #size-cells = <1>;
>+                      /* Wish there was a nicer way of specifying a full 
>32-bit
>+                         range */
>+                      ranges = <0x00000000 0x00000001 0x00000000 0x80000000
>+                                0x80000000 0x00000001 0x80000000 0x80000000>;
>+                      clock-frequency = <0>; // Filled in by zImage
>+
>+                      UART0: [EMAIL PROTECTED] {
>+                              device_type = "serial";
>+                              compatible = "ns16550";
>+                              reg = <0x40000200 0x00000008>;
>+                              virtual-reg = <0xe0000200>;
>+                              clock-frequency = <11059200>;
>+                              current-speed = <115200>;
>+                              interrupt-parent = <&UIC0>;
>+                              interrupts = <0x0 0x4>;
>+                      };
>+              };
>+      };
>+
>+      chosen {
>+              linux,stdout-path = "/plb/opb/[EMAIL PROTECTED]";
>+      };
>+};
>Index: linux-work/arch/powerpc/platforms/44x/Kconfig
>===================================================================
>--- linux-work.orig/arch/powerpc/platforms/44x/Kconfig 2008-10-02 
>15:45:47.000000000 +1000
>+++ linux-work/arch/powerpc/platforms/44x/Kconfig      2008-10-02 
>15:47:48.000000000 +1000
>@@ -113,6 +113,17 @@ config YOSEMITE
>       help
>         This option enables support for the AMCC PPC440EP evaluation board.
> 
>+config ISS4xx
>+      bool "ISS 4xx Simulator"
>+      depends on (44x || 40x)
>+      default n
>+      select PPC44x_SIMPLE
>+      select 405GP if 40x
>+      select 440GP if 44x
>+      select PPC_FPU
>+      help
>+        This option enables support for the IBM ISS simulation environment

So I'm going to assume you tested the 40x case and that it works.  But I
find it a bit odd to be in the 44x Kconfig.

>Index: linux-work/arch/powerpc/configs/44x/iss4xx_defconfig
>===================================================================
>--- /dev/null  1970-01-01 00:00:00.000000000 +0000
>+++ linux-work/arch/powerpc/configs/44x/iss4xx_defconfig       2008-10-02 
>15:46:11.000000000 +1000

So.. I'm not really opposed, but do you need a full defconfig
for this?  I'm wondering if you could just add the iss4xx platform
to the multi-board ppc44x_defconfig and call it good.

josh
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to