upgrade to 3.0 (magicbox ata and openrb usb is broken, but the current kernel didn't compile at all, so...)

SVN-Revision: 27826
This commit is contained in:
Imre Kaloz 2011-07-29 10:16:48 +00:00
parent 32868c1a00
commit e4b6839fd3
7 changed files with 44 additions and 57 deletions

View file

@ -13,7 +13,7 @@ FEATURES:=squashfs
CFLAGS:=-Os -pipe -fno-caller-saves -mcpu=405
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
LINUX_VERSION:=2.6.32.33
LINUX_VERSION:=3.0
include $(INCLUDE_DIR)/target.mk

View file

@ -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",

View file

@ -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",

View file

@ -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 @@

View file

@ -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";

View file

@ -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.