add basic support for the AMCC PPC405EX Kilauea evaluation board
authorImre Kaloz <kaloz@openwrt.org>
Tue, 29 Jan 2008 00:58:46 +0000 (00:58 +0000)
committerImre Kaloz <kaloz@openwrt.org>
Tue, 29 Jan 2008 00:58:46 +0000 (00:58 +0000)
SVN-Revision: 10303

target/linux/ppc40x/Makefile [new file with mode: 0644]
target/linux/ppc40x/config-default [new file with mode: 0644]
target/linux/ppc40x/image/Makefile [new file with mode: 0644]
target/linux/ppc40x/patches/001-kilauea_openwrt_flashmap.patch [new file with mode: 0644]

diff --git a/target/linux/ppc40x/Makefile b/target/linux/ppc40x/Makefile
new file mode 100644 (file)
index 0000000..cd64ea3
--- /dev/null
@@ -0,0 +1,23 @@
+#
+# Copyright (C) 2008 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+include $(TOPDIR)/rules.mk
+
+ARCH:=powerpc
+BOARD:=ppc40x
+BOARDNAME:=AMCC Kilauea
+FEATURES:=squashfs
+
+LINUX_VERSION:=2.6.24
+LINUX_KARCH:=powerpc
+
+include $(INCLUDE_DIR)/target.mk
+
+define Target/Description
+       Build firmware images for the AMCC Kilauea evaluation board
+endef
+
+$(eval $(call BuildTarget))
diff --git a/target/linux/ppc40x/config-default b/target/linux/ppc40x/config-default
new file mode 100644 (file)
index 0000000..53746b7
--- /dev/null
@@ -0,0 +1,200 @@
+CONFIG_40x=y
+# CONFIG_44x is not set
+CONFIG_4xx=y
+# CONFIG_6xx is not set
+# CONFIG_8139TOO is not set
+# CONFIG_ADVANCED_OPTIONS is not set
+# CONFIG_AGP is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_HAS_ILOG2_U32=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_ARCH_SUPPORTS_MSI=y
+CONFIG_AUDIT_ARCH=y
+CONFIG_BASE_SMALL=0
+CONFIG_BITREVERSE=y
+# CONFIG_BOOKE_WDT is not set
+CONFIG_BOOT_LOAD=0x00400000
+CONFIG_BOUNCE=y
+# CONFIG_BT is not set
+CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/mtdblock2 rootfstype=squashfs,jffs2 noinitrd init=/etc/preinit"
+CONFIG_CMDLINE_BOOL=y
+CONFIG_CONSISTENT_SIZE=0x00200000
+CONFIG_CONSISTENT_START=0xff100000
+# CONFIG_CPM2 is not set
+# CONFIG_CPU_FREQ is not set
+# CONFIG_CRYPTO_HW is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEFAULT_UIMAGE is not set
+CONFIG_DEVICE_TREE=""
+CONFIG_DEVPORT=y
+# CONFIG_E200 is not set
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EDAC is not set
+# CONFIG_EP405 is not set
+# CONFIG_FSL_ULI1575 is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+# CONFIG_GENERIC_IOMAP is not set
+CONFIG_GENERIC_NVRAM=y
+# CONFIG_GENERIC_TBSYNC is not set
+CONFIG_GENERIC_TIME_VSYSCALL=y
+# CONFIG_GEN_RTC is not set
+CONFIG_HAS_DMA=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HIBERNATION_UP_POSSIBLE=y
+# CONFIG_HIGHMEM is not set
+CONFIG_HIGHMEM_START=0xfe000000
+CONFIG_HW_RANDOM=y
+CONFIG_HZ=250
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_I2C is not set
+CONFIG_IBM_NEW_EMAC=y
+# CONFIG_IBM_NEW_EMAC_DEBUG is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+CONFIG_IBM_NEW_EMAC_POLL_WEIGHT=32
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+CONFIG_IBM_NEW_EMAC_RXB=256
+CONFIG_IBM_NEW_EMAC_RX_COPY_THRESHOLD=256
+CONFIG_IBM_NEW_EMAC_RX_SKB_HEADROOM=0
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+CONFIG_IBM_NEW_EMAC_TXB=256
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IDE is not set
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_IRQ_PER_CPU=y
+CONFIG_ISA_DMA_API=y
+CONFIG_KERNEL_START=0xc0000000
+CONFIG_KILAUEA=y
+# CONFIG_LEDS_ALIX is not set
+CONFIG_LOWMEM_SIZE=0x30000000
+# CONFIG_MACINTOSH_DRIVERS is not set
+# CONFIG_MAKALU is not set
+# CONFIG_MATH_EMULATION is not set
+# CONFIG_MMIO_NVRAM is not set
+# CONFIG_MPIC is not set
+# CONFIG_MPIC_WEIRD is not set
+CONFIG_MTD=y
+# CONFIG_MTD_ABSENT is not set
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_MTD_BLOCK2MTD is not set
+CONFIG_MTD_CFI=y
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_AMDSTD=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_GEOMETRY is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_CFI_INTELEXT is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+CONFIG_MTD_CFI_NOSWAP=y
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+CONFIG_MTD_CHAR=y
+# CONFIG_MTD_CMDLINE_PARTS is not set
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_ONENAND is not set
+# CONFIG_MTD_OTP is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_PCI is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_PHYSMAP_OF=y
+# CONFIG_MTD_PLATRAM is not set
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_NATSEMI is not set
+# CONFIG_NE2K_PCI is not set
+# CONFIG_NET_VENDOR_3COM is not set
+CONFIG_NOT_COHERENT_CACHE=y
+# CONFIG_NVRAM is not set
+CONFIG_OF=y
+CONFIG_OF_DEVICE=y
+CONFIG_PCIEAER=y
+CONFIG_PCIEPORTBUS=y
+# CONFIG_PCIPCWATCHDOG is not set
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_SYSCALL=y
+CONFIG_PPC=y
+CONFIG_PPC32=y
+# CONFIG_PPC64 is not set
+# CONFIG_PPC_85xx is not set
+# CONFIG_PPC_8xx is not set
+# CONFIG_PPC_970_NAP is not set
+# CONFIG_PPC_CELL is not set
+# CONFIG_PPC_CELL_NATIVE is not set
+# CONFIG_PPC_CLOCK is not set
+CONFIG_PPC_DCR=y
+# CONFIG_PPC_DCR_MMIO is not set
+CONFIG_PPC_DCR_NATIVE=y
+# CONFIG_PPC_EARLY_DEBUG is not set
+# CONFIG_PPC_I8259 is not set
+# CONFIG_PPC_INDIRECT_IO is not set
+CONFIG_PPC_INDIRECT_PCI=y
+CONFIG_PPC_MERGE=y
+# CONFIG_PPC_MM_SLICES is not set
+# CONFIG_PPC_MPC106 is not set
+# CONFIG_PPC_MPC5200 is not set
+# CONFIG_PPC_MPC52xx is not set
+CONFIG_PPC_OF=y
+# CONFIG_PPC_RTAS is not set
+# CONFIG_PPC_UDBG_16550 is not set
+# CONFIG_PQ2ADS is not set
+CONFIG_PROC_DEVICETREE=y
+CONFIG_RESOURCES_64BIT=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
+# CONFIG_SCSI_SRP_ATTRS is not set
+CONFIG_SCSI_WAIT_SCAN=m
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+CONFIG_SERIAL_8250_EXTENDED=y
+# CONFIG_SERIAL_8250_MANY_PORTS is not set
+# CONFIG_SERIAL_8250_RSA is not set
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SLABINFO=y
+# CONFIG_SOFT_WATCHDOG is not set
+# CONFIG_SOUND is not set
+# CONFIG_SPARSEMEM_STATIC is not set
+# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
+CONFIG_SSB_POSSIBLE=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_TASK_SIZE=0xc0000000
+CONFIG_TICK_ONESHOT=y
+# CONFIG_UCC_SLOW is not set
+# CONFIG_USB is not set
+# CONFIG_USER_NS is not set
+# CONFIG_VGASTATE is not set
+# CONFIG_VIA_RHINE is not set
+# CONFIG_WALNUT is not set
+CONFIG_WANT_DEVICE_TREE=y
+CONFIG_WORD_SIZE=32
+# CONFIG_XILINX_SYSACE is not set
+# CONFIG_XILINX_VIRTEX_GENERIC_BOARD is not set
diff --git a/target/linux/ppc40x/image/Makefile b/target/linux/ppc40x/image/Makefile
new file mode 100644 (file)
index 0000000..ce3f136
--- /dev/null
@@ -0,0 +1,42 @@
+#
+# Copyright (C) 2008 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/image.mk
+
+JFFS2_BLOCKSIZE=128k
+
+define Image/Prepare
+       cp $(LINUX_DIR)/arch/powerpc/boot/uImage $(KDIR)/uImage
+       dtc -O dtb -R 4 -S 0x20000 $(LINUX_DIR)/arch/powerpc/boot/dts/kilauea.dts > $(KDIR)/openwrt-kilauea.dtb
+endef
+
+define Image/BuildKernel
+       cp $(KDIR)/uImage $(BIN_DIR)/openwrt-$(BOARD)-uImage
+endef
+
+define Image/Build
+       $(call Image/Build/$(1),$(1))
+endef
+
+define Image/Build/jffs2-128k
+       ( \
+               dd if=$(LINUX_DIR)/arch/powerpc/boot/uImage bs=1920k conv=sync; \
+               dd if=$(KDIR)/openwrt-kilauea.dtb bs=128k conv=sync; \
+               dd if=$(KDIR)/root.$(1) bs=128k conv=sync; \
+       ) > $(BIN_DIR)/openwrt-$(BOARD)-jffs2.img
+endef
+
+define Image/Build/squashfs
+       $(call prepare_generic_squashfs,$(KDIR)/root.squashfs)
+       ( \
+               dd if=$(LINUX_DIR)/arch/powerpc/boot/uImage bs=1920k conv=sync; \
+               dd if=$(KDIR)/openwrt-kilauea.dtb bs=128k conv=sync; \
+               dd if=$(KDIR)/root.$(1) bs=128k conv=sync; \
+       ) > $(BIN_DIR)/openwrt-$(BOARD)-$(1).img
+endef
+
+$(eval $(call BuildImage))
diff --git a/target/linux/ppc40x/patches/001-kilauea_openwrt_flashmap.patch b/target/linux/ppc40x/patches/001-kilauea_openwrt_flashmap.patch
new file mode 100644 (file)
index 0000000..7c93bb9
--- /dev/null
@@ -0,0 +1,26 @@
+diff -Nur linux-2.6.24/arch/powerpc/boot/dts/kilauea.dts linux-2.6.24-owrt/arch/powerpc/boot/dts/kilauea.dts
+--- linux-2.6.24/arch/powerpc/boot/dts/kilauea.dts     2008-01-29 01:34:30.000000000 +0100
++++ linux-2.6.24-owrt/arch/powerpc/boot/dts/kilauea.dts        2008-01-29 01:35:01.000000000 +0100
+@@ -138,15 +130,15 @@
+                                       #size-cells = <1>;
+                                       partition@0 {
+                                               label = "kernel";
+-                                              reg = <0 200000>;
++                                              reg = <0 1e0000>;
+                                       };
+-                                      partition@200000 {
+-                                              label = "root";
+-                                              reg = <200000 200000>;
++                                      partition@1e0000 {
++                                              label = "device-tree";
++                                              reg = <1e0000 20000>;
+                                       };
+-                                      partition@400000 {
+-                                              label = "user";
+-                                              reg = <400000 3b60000>;
++                                      partition@200000 {
++                                              label = "rootfs";
++                                              reg = <200000 3d60000>;
+                                       };
+                                       partition@3f60000 {
+                                               label = "env";