From 6b2e684c860bf29b389193405fbf6bb2d3dceaef Mon Sep 17 00:00:00 2001 From: Imre Kaloz Date: Fri, 29 Jul 2011 10:16:48 +0000 Subject: [ppc40x]: upgrade to 3.0 (magicbox ata and openrb usb is broken, but the current kernel didn't compile at all, so...) git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27826 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- target/linux/ppc40x/Makefile | 2 +- .../patches/003-powerpc-add-EBC_BXCR-defines.patch | 4 +-- target/linux/ppc40x/patches/004-magicbox.patch | 24 ++++++++-------- target/linux/ppc40x/patches/005-openrb.patch | 12 ++++---- .../patches/101-pata-magicbox-cf-driver.patch | 14 ++++----- .../patches/110-kilauea_openwrt_flashmap.patch | 12 ++++---- .../120-usb-isp116x-hcd-add-of-binding.patch | 33 +++++++--------------- 7 files changed, 44 insertions(+), 57 deletions(-) (limited to 'target/linux') diff --git a/target/linux/ppc40x/Makefile b/target/linux/ppc40x/Makefile index a889c34920..59db6ef45a 100644 --- a/target/linux/ppc40x/Makefile +++ b/target/linux/ppc40x/Makefile @@ -13,7 +13,7 @@ FEATURES:=squashfs CFLAGS:=-Os -pipe -fno-caller-saves -mcpu=405 MAINTAINER:=Imre Kaloz -LINUX_VERSION:=2.6.32.33 +LINUX_VERSION:=3.0 include $(INCLUDE_DIR)/target.mk diff --git a/target/linux/ppc40x/patches/003-powerpc-add-EBC_BXCR-defines.patch b/target/linux/ppc40x/patches/003-powerpc-add-EBC_BXCR-defines.patch index ca70f7223c..ebdaac8f46 100644 --- a/target/linux/ppc40x/patches/003-powerpc-add-EBC_BXCR-defines.patch +++ b/target/linux/ppc40x/patches/003-powerpc-add-EBC_BXCR-defines.patch @@ -1,6 +1,6 @@ --- a/arch/powerpc/boot/dcr.h +++ b/arch/powerpc/boot/dcr.h -@@ -49,6 +49,14 @@ static const unsigned long sdram_bxcr[] +@@ -49,6 +49,14 @@ static const unsigned long sdram_bxcr[] #define EBC_BXCR(n) (n) #define EBC_BXCR_BAS 0xfff00000 #define EBC_BXCR_BS 0x000e0000 @@ -15,7 +15,7 @@ #define EBC_BXCR_BANK_SIZE(reg) \ (0x100000 << (((reg) & EBC_BXCR_BS) >> 17)) #define EBC_BXCR_BU 0x00018000 -@@ -57,6 +65,9 @@ static const unsigned long sdram_bxcr[] +@@ -57,6 +65,9 @@ static const unsigned long sdram_bxcr[] #define EBC_BXCR_BU_WO 0x00010000 #define EBC_BXCR_BU_RW 0x00018000 #define EBC_BXCR_BW 0x00006000 diff --git a/target/linux/ppc40x/patches/004-magicbox.patch b/target/linux/ppc40x/patches/004-magicbox.patch index 78653afff9..97de79c4e1 100644 --- a/target/linux/ppc40x/patches/004-magicbox.patch +++ b/target/linux/ppc40x/patches/004-magicbox.patch @@ -28,6 +28,7 @@ + +static void fixup_perwe(void) +{ ++ +#define DCRN_CPC0_PCI_BASE 0xf9 + + /* Turn on PerWE instead of PCIINT */ @@ -39,6 +40,7 @@ + +static void fixup_cf_card(void) +{ ++ +#define CF_CS0_BASE 0xff100000 +#define CF_CS1_BASE 0xff200000 + @@ -68,20 +70,18 @@ + /* Magicbox v1 has only one ethernet, one serial and no + * CF slot -- detect it using it's fake enet1addr + */ -+ if ((bd.bi_enet1addr[0] == 0x00) && -+ (bd.bi_enet1addr[1] == 0x00) && -+ (bd.bi_enet1addr[2] == 0x02) && ++ if ((bd.bi_enet1addr[2] == 0x02) && + (bd.bi_enet1addr[3] == 0xfa) && + (bd.bi_enet1addr[4] == 0xf0) && + (bd.bi_enet1addr[5] == 0x80)) { + void *devp; -+ + devp = finddevice("/plb/opb/ethernet@ef600900"); + del_node(devp); + devp = finddevice("/plb/opb/serial@ef600400"); + del_node(devp); + devp = finddevice("/plb/ebc/cf_card@ff100000"); + del_node(devp); ++ + } else { + fixup_perwe(); + fixup_cf_card(); @@ -395,19 +395,19 @@ $(obj)/cuboot-acadia.o: BOOTCFLAGS += -mcpu=405 +$(obj)/cuboot-magicbox.o: BOOTCFLAGS += -mcpu=405 $(obj)/treeboot-walnut.o: BOOTCFLAGS += -mcpu=405 + $(obj)/treeboot-iss4xx.o: BOOTCFLAGS += -mcpu=405 $(obj)/virtex405-head.o: BOOTAFLAGS += -mcpu=405 - -@@ -76,7 +77,8 @@ src-plat := of.c cuboot-52xx.c cuboot-82 - cuboot-katmai.c cuboot-rainier.c redboot-8xx.c ep8248e.c \ +@@ -79,7 +80,8 @@ src-plat := of.c cuboot-52xx.c cuboot-82 cuboot-warp.c cuboot-85xx-cpm2.c cuboot-yosemite.c simpleboot.c \ virtex405-head.S virtex.c redboot-83xx.c cuboot-sam440ep.c \ -- cuboot-acadia.c cuboot-amigaone.c cuboot-kilauea.c -+ cuboot-acadia.c cuboot-amigaone.c cuboot-kilauea.c \ + cuboot-acadia.c cuboot-amigaone.c cuboot-kilauea.c \ +- gamecube-head.S gamecube.c wii-head.S wii.c treeboot-iss4xx.c ++ gamecube-head.S gamecube.c wii-head.S wii.c treeboot-iss4xx.c \ + cuboot-magicbox.c src-boot := $(src-wlib) $(src-plat) empty.c src-boot := $(addprefix $(obj)/, $(src-boot)) -@@ -194,6 +196,7 @@ image-$(CONFIG_EP405) += dtbImage.ep40 +@@ -198,6 +200,7 @@ image-$(CONFIG_EP405) += dtbImage.ep40 image-$(CONFIG_HOTFOOT) += cuImage.hotfoot image-$(CONFIG_WALNUT) += treeImage.walnut image-$(CONFIG_ACADIA) += cuImage.acadia @@ -417,7 +417,7 @@ image-$(CONFIG_EBONY) += treeImage.ebony cuImage.ebony --- a/arch/powerpc/platforms/40x/Kconfig +++ b/arch/powerpc/platforms/40x/Kconfig -@@ -60,6 +60,16 @@ config KILAUEA +@@ -62,6 +62,16 @@ config KILAUEA help This option enables support for the AMCC PPC405EX evaluation board. @@ -436,7 +436,7 @@ depends on 40x --- a/arch/powerpc/platforms/40x/ppc40x_simple.c +++ b/arch/powerpc/platforms/40x/ppc40x_simple.c -@@ -55,7 +55,8 @@ static char *board[] __initdata = { +@@ -55,7 +55,8 @@ static const char *board[] __initdata = "amcc,haleakala", "amcc,kilauea", "amcc,makalu", diff --git a/target/linux/ppc40x/patches/005-openrb.patch b/target/linux/ppc40x/patches/005-openrb.patch index 638c81de5a..ca998c67d5 100644 --- a/target/linux/ppc40x/patches/005-openrb.patch +++ b/target/linux/ppc40x/patches/005-openrb.patch @@ -397,18 +397,18 @@ $(obj)/cuboot-magicbox.o: BOOTCFLAGS += -mcpu=405 +$(obj)/cuboot-openrb.o: BOOTCFLAGS += -mcpu=405 $(obj)/treeboot-walnut.o: BOOTCFLAGS += -mcpu=405 + $(obj)/treeboot-iss4xx.o: BOOTCFLAGS += -mcpu=405 $(obj)/virtex405-head.o: BOOTAFLAGS += -mcpu=405 - -@@ -78,7 +79,7 @@ src-plat := of.c cuboot-52xx.c cuboot-82 - cuboot-warp.c cuboot-85xx-cpm2.c cuboot-yosemite.c simpleboot.c \ +@@ -81,7 +82,7 @@ src-plat := of.c cuboot-52xx.c cuboot-82 virtex405-head.S virtex.c redboot-83xx.c cuboot-sam440ep.c \ cuboot-acadia.c cuboot-amigaone.c cuboot-kilauea.c \ + gamecube-head.S gamecube.c wii-head.S wii.c treeboot-iss4xx.c \ - cuboot-magicbox.c + cuboot-magicbox.c cuboot-openrb.c src-boot := $(src-wlib) $(src-plat) empty.c src-boot := $(addprefix $(obj)/, $(src-boot)) -@@ -197,6 +198,7 @@ image-$(CONFIG_HOTFOOT) += cuImage.hot +@@ -201,6 +202,7 @@ image-$(CONFIG_HOTFOOT) += cuImage.hot image-$(CONFIG_WALNUT) += treeImage.walnut image-$(CONFIG_ACADIA) += cuImage.acadia image-$(CONFIG_MAGICBOX) += cuImage.magicbox @@ -418,7 +418,7 @@ image-$(CONFIG_EBONY) += treeImage.ebony cuImage.ebony --- a/arch/powerpc/platforms/40x/Kconfig +++ b/arch/powerpc/platforms/40x/Kconfig -@@ -70,6 +70,16 @@ config MAGICBOX +@@ -72,6 +72,16 @@ config MAGICBOX help This option enables support for the Magicbox boards. @@ -437,7 +437,7 @@ depends on 40x --- a/arch/powerpc/platforms/40x/ppc40x_simple.c +++ b/arch/powerpc/platforms/40x/ppc40x_simple.c -@@ -56,7 +56,8 @@ static char *board[] __initdata = { +@@ -56,7 +56,8 @@ static const char *board[] __initdata = "amcc,kilauea", "amcc,makalu", "est,hotfoot", diff --git a/target/linux/ppc40x/patches/101-pata-magicbox-cf-driver.patch b/target/linux/ppc40x/patches/101-pata-magicbox-cf-driver.patch index 3893587777..bf49177d38 100644 --- a/target/linux/ppc40x/patches/101-pata-magicbox-cf-driver.patch +++ b/target/linux/ppc40x/patches/101-pata-magicbox-cf-driver.patch @@ -1,6 +1,6 @@ --- a/drivers/ata/Kconfig +++ b/drivers/ata/Kconfig -@@ -745,6 +745,16 @@ config PATA_IXP4XX_CF +@@ -144,6 +144,16 @@ config PDC_ADMA If unsure, say N. @@ -19,14 +19,14 @@ depends on CPU_CAVIUM_OCTEON --- a/drivers/ata/Makefile +++ b/drivers/ata/Makefile -@@ -49,6 +49,7 @@ obj-$(CONFIG_PATA_OPTI) += pata_opti.o - obj-$(CONFIG_PATA_OPTIDMA) += pata_optidma.o - obj-$(CONFIG_PATA_MPC52xx) += pata_mpc52xx.o - obj-$(CONFIG_PATA_MARVELL) += pata_marvell.o +@@ -80,6 +80,7 @@ obj-$(CONFIG_PATA_AT91) += pata_at91.o + obj-$(CONFIG_PATA_CMD640_PCI) += pata_cmd640.o + obj-$(CONFIG_PATA_ISAPNP) += pata_isapnp.o + obj-$(CONFIG_PATA_IXP4XX_CF) += pata_ixp4xx_cf.o +obj-$(CONFIG_PATA_MAGICBOX_CF) += pata_magicbox_cf.o obj-$(CONFIG_PATA_MPIIX) += pata_mpiix.o - obj-$(CONFIG_PATA_OLDPIIX) += pata_oldpiix.o - obj-$(CONFIG_PATA_PALMLD) += pata_palmld.o + obj-$(CONFIG_PATA_NS87410) += pata_ns87410.o + obj-$(CONFIG_PATA_OPTI) += pata_opti.o --- /dev/null +++ b/drivers/ata/pata_magicbox_cf.c @@ -0,0 +1,404 @@ diff --git a/target/linux/ppc40x/patches/110-kilauea_openwrt_flashmap.patch b/target/linux/ppc40x/patches/110-kilauea_openwrt_flashmap.patch index dac3b9efc1..ab44a2d572 100644 --- a/target/linux/ppc40x/patches/110-kilauea_openwrt_flashmap.patch +++ b/target/linux/ppc40x/patches/110-kilauea_openwrt_flashmap.patch @@ -1,6 +1,6 @@ --- a/arch/powerpc/boot/dts/kilauea.dts +++ b/arch/powerpc/boot/dts/kilauea.dts -@@ -93,8 +93,8 @@ +@@ -102,8 +102,8 @@ compatible = "ibm,sdram-405ex", "ibm,sdram-4xx-ddr2"; dcr-reg = <0x010 0x002>; interrupt-parent = <&UIC2>; @@ -11,7 +11,7 @@ }; CRYPTO: crypto@ef700000 { -@@ -148,30 +148,30 @@ +@@ -157,30 +157,30 @@ reg = <0x00000000 0x00000000 0x04000000>; #address-cells = <1>; #size-cells = <1>; @@ -28,14 +28,14 @@ - partition@200000 { - label = "root"; - reg = <0x00200000 0x00200000>; +- }; +- partition@400000 { +- label = "user"; +- reg = <0x00400000 0x03b60000>; + partition2@200000 { + label = "rootfs"; + reg = <0x00200000 0x03d60000>; }; -- partition@400000 { -- label = "user"; -- reg = <0x00400000 0x03b60000>; -- }; - partition@3f60000 { + partition3@3f60000 { label = "env"; diff --git a/target/linux/ppc40x/patches/120-usb-isp116x-hcd-add-of-binding.patch b/target/linux/ppc40x/patches/120-usb-isp116x-hcd-add-of-binding.patch index 6de6e9b845..6bc5a9fc46 100644 --- a/target/linux/ppc40x/patches/120-usb-isp116x-hcd-add-of-binding.patch +++ b/target/linux/ppc40x/patches/120-usb-isp116x-hcd-add-of-binding.patch @@ -1,26 +1,13 @@ --- a/drivers/usb/host/isp116x-hcd.c +++ b/drivers/usb/host/isp116x-hcd.c -@@ -1531,8 +1531,11 @@ static struct hc_driver isp116x_hc_drive - .bus_resume = isp116x_bus_resume, - }; +@@ -1535,6 +1535,7 @@ static struct hc_driver isp116x_hc_drive -+#define resource_len(r) (((r)->end - (r)->start) + 1) -+ /*----------------------------------------------------------------*/ +#ifdef CONFIG_USB_ISP116X_HCD_PLATFORM static int isp116x_remove(struct platform_device *pdev) { struct usb_hcd *hcd = platform_get_drvdata(pdev); -@@ -1556,8 +1559,6 @@ static int isp116x_remove(struct platfor - return 0; - } - --#define resource_len(r) (((r)->end - (r)->start) + 1) -- - static int __devinit isp116x_probe(struct platform_device *pdev) - { - struct usb_hcd *hcd; @@ -1708,22 +1709,253 @@ static struct platform_driver isp116x_dr }, }; @@ -88,23 +75,23 @@ + if (board == NULL) + return -ENOMEM; + -+ if (!request_mem_region(addr.start, resource_len(&addr), hcd_name)) { ++ if (!request_mem_region(addr.start, resource_size(&addr), hcd_name)) { + ret = -EBUSY; + goto err_free_board; + } + -+ addr_reg = ioremap_nocache(addr.start, resource_len(&addr)); ++ addr_reg = ioremap_nocache(addr.start, resource_size(&addr)); + if (addr_reg == NULL) { + ret = -ENOMEM; + goto err_release_addr; + } + -+ if (!request_mem_region(data.start, resource_len(&data), hcd_name)) { ++ if (!request_mem_region(data.start, resource_size(&data), hcd_name)) { + ret = -EBUSY; + goto err_unmap_addr; + } + -+ data_reg = ioremap_nocache(data.start, resource_len(&data)); ++ data_reg = ioremap_nocache(data.start, resource_size(&data)); + if (data_reg == NULL) { + ret = -ENOMEM; + goto err_release_data; @@ -166,11 +153,11 @@ + err_unmap_data: + iounmap(data_reg); + err_release_data: -+ release_mem_region(data.start, resource_len(&data)); ++ release_mem_region(data.start, resource_size(&data)); + err_unmap_addr: + iounmap(addr_reg); + err_release_addr: -+ release_mem_region(addr.start, resource_len(&addr)); ++ release_mem_region(addr.start, resource_size(&addr)); + err_free_board: + kfree(board); + return ret; @@ -195,11 +182,11 @@ + + iounmap(isp116x->data_reg); + (void) of_address_to_resource(op->node, 0, &res); -+ release_mem_region(res.start, resource_len(&res)); ++ release_mem_region(res.start, resource_size(&res)); + + iounmap(isp116x->addr_reg); + (void) of_address_to_resource(op->node, 1, &res); -+ release_mem_region(res.start, resource_len(&res)); ++ release_mem_region(res.start, resource_size(&res)); + + kfree(isp116x->board); + usb_put_hcd(hcd); @@ -279,7 +266,7 @@ module_exit(isp116x_cleanup); --- a/drivers/usb/host/Kconfig +++ b/drivers/usb/host/Kconfig -@@ -144,6 +144,24 @@ config USB_ISP116X_HCD +@@ -242,6 +242,24 @@ config USB_ISP116X_HCD To compile this driver as a module, choose M here: the module will be called isp116x-hcd. -- cgit v1.2.3