upgrade ppc44x to 2.6.28.2, add basic support for the AMCC Canyonlands
authorImre Kaloz <kaloz@openwrt.org>
Fri, 30 Jan 2009 11:38:46 +0000 (11:38 +0000)
committerImre Kaloz <kaloz@openwrt.org>
Fri, 30 Jan 2009 11:38:46 +0000 (11:38 +0000)
SVN-Revision: 14280

target/linux/generic-2.6/config-2.6.28
target/linux/ppc44x/Makefile
target/linux/ppc44x/base-files/etc/inittab
target/linux/ppc44x/config-default
target/linux/ppc44x/image/Makefile
target/linux/ppc44x/patches/001-taishan_openwrt_flashmap.patch
target/linux/ppc44x/patches/003-canyonlands_openwrt_flashmap.patch [new file with mode: 0644]
target/linux/ppc44x/patches/004-canyonlands_dts_sync.patch [new file with mode: 0644]
target/linux/ppc44x/patches/005-canyonlands_remove_nonexisting_uarts.patch [new file with mode: 0644]
target/linux/ppc44x/patches/100-openwrt_dts_cmdline.patch [new file with mode: 0644]

index e67297a..98bbb34 100644 (file)
@@ -416,13 +416,14 @@ CONFIG_GENERIC_IRQ_PROBE=y
 CONFIG_GENERIC_TIME=y
 # CONFIG_GFS2_FS is not set
 CONFIG_GPIO_DEVICE=m
+# CONFIG_GPIO_BT8XX is not set
 # CONFIG_GPIO_MAX7301 is not set
 # CONFIG_GPIO_MCP23S08 is not set
 # CONFIG_GPIO_PCA953X is not set
 # CONFIG_GPIO_PCF857X is not set
 # CONFIG_GPIO_SYSFS is not set
+# CONFIG_GPIO_XILINX is not set
 # CONFIG_GPIOLIB is not set
-# CONFIG_GPIO_BT8XX is not set
 # CONFIG_GROUP_SCHED is not set
 # CONFIG_HAMACHI is not set
 CONFIG_HAMRADIO=y
@@ -1241,6 +1242,7 @@ CONFIG_PLX_HERMES=m
 # CONFIG_PMIC_DA903X is not set
 # CONFIG_POSIX_MQUEUE is not set
 # CONFIG_POWER_SUPPLY is not set
+CONFIG_PPC4xx_GPIO=y
 CONFIG_PPP=m
 CONFIG_PPPOATM=m
 CONFIG_PPPOE=m
index 1571142..4f023a3 100644 (file)
@@ -1,5 +1,5 @@
-# 
-# Copyright (C) 2007 OpenWrt.org
+#
+# Copyright (C) 2007-2009 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -11,13 +11,11 @@ BOARD:=ppc44x
 BOARDNAME:=AMCC/IBM PPC44x
 FEATURES:=squashfs
 
-LINUX_VERSION:=2.6.27.13
+LINUX_VERSION:=2.6.28.2
 LINUX_KARCH:=powerpc
 
 include $(INCLUDE_DIR)/target.mk
 
-KERNELNAME:="zImage"
-
 define Target/Description
        Build firmware images for the AMCC Taishan evaluation board
 endef
index 859dc53..7989a7f 100644 (file)
@@ -1,5 +1,4 @@
 ::sysinit:/etc/init.d/rcS S boot
 ::shutdown:/etc/init.d/rcS K stop
-tts/0::askfirst:/bin/ash --login
+ttyS0::askfirst:/bin/ash --login
 ttyS1::askfirst:/bin/ash --login
-tty1::askfirst:/bin/ash --login
index 1b2ddbe..c3516a9 100644 (file)
@@ -11,6 +11,7 @@ CONFIG_ARCH_HAS_ILOG2_U32=y
 # CONFIG_ARCH_HAS_ILOG2_U64 is not set
 CONFIG_ARCH_MAY_HAVE_PC_FDC=y
 CONFIG_ARCH_POPULATES_NODE_MAP=y
+# CONFIG_ARCHES is not set
 # CONFIG_BAMBOO is not set
 CONFIG_BASE_SMALL=0
 CONFIG_BITREVERSE=y
@@ -18,25 +19,26 @@ CONFIG_BOOKE=y
 # CONFIG_BOOKE_WDT is not set
 CONFIG_BOOT_LOAD=0x01000000
 # CONFIG_BT is not set
-CONFIG_CMDLINE="console=ttyS1,115200 root=/dev/mtdblock1 rootfstype=squashfs,jffs2 noinitrd init=/etc/preinit"
+CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/mtdblock1 rootfstype=squashfs,jffs2 noinitrd init=/etc/preinit"
 CONFIG_CMDLINE_BOOL=y
 CONFIG_CONSISTENT_SIZE=0x00200000
 CONFIG_CONSISTENT_START=0xff100000
-# CONFIG_CANYONLANDS is not set
+CONFIG_CANYONLANDS=y
 # CONFIG_CPU_FREQ is not set
 # CONFIG_DEBUG_BUGVERBOSE is not set
-CONFIG_DEVICE_TREE="taishan.dts"
 # CONFIG_DMADEVICES is not set
 # CONFIG_E200 is not set
 # CONFIG_E500 is not set
 # CONFIG_EBONY is not set
 # CONFIG_EDAC is not set
+CONFIG_EXTRA_TARGETS="uImage"
 CONFIG_FORCE_MAX_ZONEORDER=11
 CONFIG_FS_POSIX_ACL=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_FIND_NEXT_BIT=y
 CONFIG_GENERIC_NVRAM=y
 # CONFIG_GEN_RTC is not set
+# CONFIG_GLACIER is not set
 CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT=y
 # CONFIG_HIGHMEM is not set
index 5c1d023..b8d5e95 100644 (file)
@@ -1,5 +1,5 @@
-# 
-# Copyright (C) 2007 OpenWrt.org
+#
+# Copyright (C) 2007-2009 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -11,6 +11,7 @@ JFFS2_BLOCKSIZE=256k
 
 define Image/Prepare
        cp $(LINUX_DIR)/arch/powerpc/boot/cuImage.taishan $(KDIR)/uImage
+               dtc -O dtb -R 4 -S 0x20000 $(LINUX_DIR)/arch/powerpc/boot/dts/canyonlands.dts > $(KDIR)/openwrt-canyonlands.dtb
 endef
 
 define Image/BuildKernel
@@ -33,7 +34,12 @@ define Image/Build/squashfs
        ( \
                dd if=$(KDIR)/uImage bs=2048k conv=sync; \
                dd if=$(KDIR)/root.$(1) bs=256k conv=sync; \
-       ) > $(BIN_DIR)/openwrt-$(BOARD)-$(1).img
+       ) > $(BIN_DIR)/openwrt-$(BOARD)-taishan-$(1).img
+       ( \
+               dd if=$(LINUX_DIR)/arch/powerpc/boot/uImage bs=1920k conv=sync; \
+               dd if=$(KDIR)/openwrt-canyonlands.dtb bs=128k conv=sync; \
+               dd if=$(KDIR)/root.$(1) bs=256k conv=sync; \
+       ) > $(BIN_DIR)/openwrt-$(BOARD)-canyonlands-$(1).img
 endef
 
 $(eval $(call BuildImage))
index be42700..b0201fb 100644 (file)
@@ -8,9 +8,10 @@
 +                                              reg = <0x0 0x200000>;
                                        };
 -                                      partition@180000 {
-+                                      partition@200000 {
-                                               label = "root";
+-                                              label = "root";
 -                                              reg = <0x180000 0x200000>;
++                                      partition@200000 {
++                                              label = "rootfs";
 +                                              reg = <0x200000 0x3c00000>;
                                        };
 -                                      partition@380000 {
diff --git a/target/linux/ppc44x/patches/003-canyonlands_openwrt_flashmap.patch b/target/linux/ppc44x/patches/003-canyonlands_openwrt_flashmap.patch
new file mode 100644 (file)
index 0000000..83c0dd2
--- /dev/null
@@ -0,0 +1,31 @@
+--- a/arch/powerpc/boot/dts/canyonlands.dts
++++ b/arch/powerpc/boot/dts/canyonlands.dts
+@@ -155,24 +155,12 @@
+                                       #address-cells = <1>;
+                                       #size-cells = <1>;
+                                       partition@0 {
+-                                              label = "kernel";
+-                                              reg = <0x00000000 0x001e0000>;
+-                                      };
+-                                      partition@1e0000 {
+-                                              label = "dtb";
+-                                              reg = <0x001e0000 0x00020000>;
++                                              label = "kernel+dtb";
++                                              reg = <0x00000000 0x00200000>;
+                                       };
+                                       partition@200000 {
+-                                              label = "ramdisk";
+-                                              reg = <0x00200000 0x01400000>;
+-                                      };
+-                                      partition@1600000 {
+-                                              label = "jffs2";
+-                                              reg = <0x01600000 0x00400000>;
+-                                      };
+-                                      partition@1a00000 {
+-                                              label = "user";
+-                                              reg = <0x01a00000 0x02560000>;
++                                              label = "rootfs";
++                                              reg = <0x00200000 0x03d60000>;
+                                       };
+                                       partition@3f60000 {
+                                               label = "env";
diff --git a/target/linux/ppc44x/patches/004-canyonlands_dts_sync.patch b/target/linux/ppc44x/patches/004-canyonlands_dts_sync.patch
new file mode 100644 (file)
index 0000000..83e6c74
--- /dev/null
@@ -0,0 +1,108 @@
+--- a/arch/powerpc/boot/dts/canyonlands.dts
++++ b/arch/powerpc/boot/dts/canyonlands.dts
+@@ -40,6 +40,7 @@
+                       d-cache-size = <32768>;
+                       dcr-controller;
+                       dcr-access-method = "native";
++                      next-level-cache = <&L2C0>;
+               };
+       };
+@@ -104,6 +105,16 @@
+               dcr-reg = <0x00c 0x002>;
+       };
++      L2C0: l2c {
++              compatible = "ibm,l2-cache-460ex", "ibm,l2-cache";
++              dcr-reg = <0x020 0x008          /* Internal SRAM DCR's */
++                         0x030 0x008>;        /* L2 cache DCR's */
++              cache-line-size = <32>;         /* 32 bytes */
++              cache-size = <262144>;          /* L2, 256K */
++              interrupt-parent = <&UIC1>;
++              interrupts = <11 1>;
++      };
++
+       plb {
+               compatible = "ibm,plb-460ex", "ibm,plb4";
+               #address-cells = <2>;
+@@ -131,6 +142,43 @@
+                                       /*RXDE*/  0x5 0x4>;
+               };
++              USB0: ehci@bffd0400 {
++                      compatible = "ibm,usb-ehci-460ex", "usb-ehci";
++                      interrupt-parent = <&UIC2>;
++                      interrupts = <0x1d 4>;
++                      reg = <4 0xbffd0400 0x90 4 0xbffd0490 0x70>;
++              };
++
++              USB1: usb@bffd0000 {
++                      compatible = "ohci-le";
++                      reg = <4 0xbffd0000 0x60>;
++                      interrupt-parent = <&UIC2>;
++                      interrupts = <0x1e 4>;
++              };
++
++              USBOTG0: usbotg@bff80000 {
++                      compatible = "amcc,usb-otg-460ex";
++                      reg = <4 0xbff80000 0x10000>;
++                      interrupt-parent = <&USBOTG0>;
++                      interrupts = <0 1 2>;
++                      #interrupt-cells = <1>;
++                      #address-cells = <0>;
++                      #size-cells = <0>;
++                      interrupt-map = </* USB-OTG */ 0 &UIC2 0x1c 4
++                                       /* HIGH-POWER */ 1 &UIC1 0x1a 8
++                                       /* DMA */ 2 &UIC0 0xc 4>;
++                      interrupt-map-mask = <0xffffffff>;
++              };
++
++              SATA0: sata@bffd1000 {
++                      compatible = "amcc,sata-460ex";
++                      reg = <4 0xbffd1000 0x800       /* SATA */
++                             4 0xbffd0800 0x400>;     /* AHBDMA */
++                      interrupt-parent = <&UIC3>;
++                      interrupts = <0 4               /* SATA */
++                                    5 4>;             /* AHBDMA */
++              };
++
+               POB0: opb {
+                       compatible = "ibm,opb-460ex", "ibm,opb";
+                       #address-cells = <1>;
+@@ -222,6 +282,12 @@
+                               reg = <0xef600700 0x00000014>;
+                               interrupt-parent = <&UIC0>;
+                               interrupts = <0x2 0x4>;
++                              #address-cells = <1>;
++                              #size-cells = <0>;
++                              rtc@68 {
++                                      compatible = "stm,m41t80";
++                                      reg = <68>;
++                              };
+                       };
+                       IIC1: i2c@ef600800 {
+@@ -331,6 +397,7 @@
+                        * later cannot be changed
+                        */
+                       ranges = <0x02000000 0x00000000 0x80000000 0x0000000d 0x80000000 0x00000000 0x80000000
++                                0x02000000 0x00000000 0x00000000 0x0000000c 0x0ee00000 0x00000000 0x00100000
+                                 0x01000000 0x00000000 0x00000000 0x0000000c 0x08000000 0x00000000 0x00010000>;
+                       /* Inbound 2GB range starting at 0 */
+@@ -361,6 +428,7 @@
+                        * later cannot be changed
+                        */
+                       ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x00000000 0x00000000 0x80000000
++                                0x02000000 0x00000000 0x00000000 0x0000000f 0x00000000 0x00000000 0x00100000
+                                 0x01000000 0x00000000 0x00000000 0x0000000f 0x80000000 0x00000000 0x00010000>;
+                       /* Inbound 2GB range starting at 0 */
+@@ -402,6 +470,7 @@
+                        * later cannot be changed
+                        */
+                       ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x80000000 0x00000000 0x80000000
++                                0x02000000 0x00000000 0x00000000 0x0000000f 0x00100000 0x00000000 0x00100000
+                                 0x01000000 0x00000000 0x00000000 0x0000000f 0x80010000 0x00000000 0x00010000>;
+                       /* Inbound 2GB range starting at 0 */
diff --git a/target/linux/ppc44x/patches/005-canyonlands_remove_nonexisting_uarts.patch b/target/linux/ppc44x/patches/005-canyonlands_remove_nonexisting_uarts.patch
new file mode 100644 (file)
index 0000000..e05278c
--- /dev/null
@@ -0,0 +1,31 @@
+--- a/arch/powerpc/boot/dts/canyonlands.dts
++++ b/arch/powerpc/boot/dts/canyonlands.dts
+@@ -195,28 +195,6 @@
+                               interrupts = <0x1 0x4>;
+                       };
+-                      UART2: serial@ef600500 {
+-                              device_type = "serial";
+-                              compatible = "ns16550";
+-                              reg = <0xef600500 0x00000008>;
+-                              virtual-reg = <0xef600500>;
+-                              clock-frequency = <0>; /* Filled in by U-Boot */
+-                              current-speed = <0>; /* Filled in by U-Boot */
+-                              interrupt-parent = <&UIC1>;
+-                              interrupts = <0x1d 0x4>;
+-                      };
+-
+-                      UART3: serial@ef600600 {
+-                              device_type = "serial";
+-                              compatible = "ns16550";
+-                              reg = <0xef600600 0x00000008>;
+-                              virtual-reg = <0xef600600>;
+-                              clock-frequency = <0>; /* Filled in by U-Boot */
+-                              current-speed = <0>; /* Filled in by U-Boot */
+-                              interrupt-parent = <&UIC1>;
+-                              interrupts = <0x1e 0x4>;
+-                      };
+-
+                       IIC0: i2c@ef600700 {
+                               compatible = "ibm,iic-460ex", "ibm,iic";
+                               reg = <0xef600700 0x00000014>;
diff --git a/target/linux/ppc44x/patches/100-openwrt_dts_cmdline.patch b/target/linux/ppc44x/patches/100-openwrt_dts_cmdline.patch
new file mode 100644 (file)
index 0000000..3ab51d8
--- /dev/null
@@ -0,0 +1,9 @@
+--- a/arch/powerpc/boot/dts/taishan.dts        2009-01-18 19:45:37.000000000 +0100
++++ b/arch/powerpc/boot/dts/taishan.dts        2009-01-29 18:55:40.000000000 +0100
+@@ -423,5 +423,6 @@
+       chosen {
+               linux,stdout-path = "/plb/opb/serial@40000300";
++              bootargs = "console=ttyS1,115200 root=/dev/mtdblock1 rootfstype=squashfs noinitrd init=/etc/preinit";
+       };
+ };