aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/orion/patches-3.3
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/orion/patches-3.3')
-rw-r--r--target/linux/orion/patches-3.3/.svn/entries266
-rw-r--r--target/linux/orion/patches-3.3/.svn/text-base/100-wrt350nv2_openwrt_partition_map.patch.svn-base32
-rw-r--r--target/linux/orion/patches-3.3/.svn/text-base/101-wnr854t_partition_map.patch.svn-base13
-rw-r--r--target/linux/orion/patches-3.3/.svn/text-base/200-dt2_board_support.patch.svn-base26
-rw-r--r--target/linux/orion/patches-3.3/.svn/text-base/210-wn802t_support.patch.svn-base78
-rw-r--r--target/linux/orion/patches-3.3/.svn/text-base/300-dns323_partition_map.patch.svn-base30
-rw-r--r--target/linux/orion/patches-3.3/.svn/text-base/400-fix-section-mismatch-warnings.patch.svn-base31
-rw-r--r--target/linux/orion/patches-3.3/.svn/text-base/a01-dt2-fixes-for-3.3.patch.svn-base34
-rw-r--r--target/linux/orion/patches-3.3/100-wrt350nv2_openwrt_partition_map.patch32
-rw-r--r--target/linux/orion/patches-3.3/101-wnr854t_partition_map.patch13
-rw-r--r--target/linux/orion/patches-3.3/200-dt2_board_support.patch26
-rw-r--r--target/linux/orion/patches-3.3/210-wn802t_support.patch78
-rw-r--r--target/linux/orion/patches-3.3/300-dns323_partition_map.patch30
-rw-r--r--target/linux/orion/patches-3.3/400-fix-section-mismatch-warnings.patch31
-rw-r--r--target/linux/orion/patches-3.3/a01-dt2-fixes-for-3.3.patch34
15 files changed, 754 insertions, 0 deletions
diff --git a/target/linux/orion/patches-3.3/.svn/entries b/target/linux/orion/patches-3.3/.svn/entries
new file mode 100644
index 0000000..627385e
--- /dev/null
+++ b/target/linux/orion/patches-3.3/.svn/entries
@@ -0,0 +1,266 @@
+10
+
+dir
+36060
+svn://svn.openwrt.org/openwrt/trunk/target/linux/orion/patches-3.3
+svn://svn.openwrt.org/openwrt
+
+
+
+2012-10-27T10:48:22.504845Z
+33963
+kaloz
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3c298f89-4303-0410-b956-a3cf2f4a3e73
+
+300-dns323_partition_map.patch
+file
+
+
+
+
+2013-03-17T12:12:16.000000Z
+4a5c270d387e24182e77caaf6fe31e91
+2012-04-29T15:20:40.259027Z
+31528
+juhosg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+857
+
+400-fix-section-mismatch-warnings.patch
+file
+
+
+
+
+2013-03-17T12:12:16.000000Z
+085b0edede64770f1054cb3dc84cad55
+2012-04-29T15:20:40.259027Z
+31528
+juhosg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+896
+
+a01-dt2-fixes-for-3.3.patch
+file
+
+
+
+
+2013-03-17T12:12:16.000000Z
+755ccd381f12f75ecd0f6dd8f44cc7c3
+2012-04-29T15:20:40.259027Z
+31528
+juhosg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1246
+
+200-dt2_board_support.patch
+file
+
+
+
+
+2013-03-17T12:12:16.000000Z
+9e864cd821c39328b6fdc206af4becf5
+2012-04-29T15:20:40.259027Z
+31528
+juhosg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+934
+
+100-wrt350nv2_openwrt_partition_map.patch
+file
+
+
+
+
+2013-03-17T12:12:16.000000Z
+ad0ff2180fb6158591d27b584e84d920
+2012-04-29T15:20:40.259027Z
+31528
+juhosg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+937
+
+210-wn802t_support.patch
+file
+
+
+
+
+2013-03-17T12:12:16.000000Z
+72cd1f7843841fb5968ba60b8cf0c3c1
+2012-10-27T10:48:22.504845Z
+33963
+kaloz
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2246
+
+101-wnr854t_partition_map.patch
+file
+
+
+
+
+2013-03-17T12:12:16.000000Z
+c893caff2df6ca2721fa6b614fa71a2b
+2012-04-29T15:20:40.259027Z
+31528
+juhosg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+326
+
diff --git a/target/linux/orion/patches-3.3/.svn/text-base/100-wrt350nv2_openwrt_partition_map.patch.svn-base b/target/linux/orion/patches-3.3/.svn/text-base/100-wrt350nv2_openwrt_partition_map.patch.svn-base
new file mode 100644
index 0000000..5e2dc25
--- /dev/null
+++ b/target/linux/orion/patches-3.3/.svn/text-base/100-wrt350nv2_openwrt_partition_map.patch.svn-base
@@ -0,0 +1,32 @@
+--- a/arch/arm/mach-orion5x/wrt350n-v2-setup.c
++++ b/arch/arm/mach-orion5x/wrt350n-v2-setup.c
+@@ -134,11 +134,11 @@ static struct mtd_partition wrt350n_v2_n
+ {
+ .name = "kernel",
+ .offset = 0x00000000,
+- .size = 0x00760000,
++ .size = 0x00100000, // change to kernel mtd size here (1/3)
+ }, {
+ .name = "rootfs",
+- .offset = 0x001a0000,
+- .size = 0x005c0000,
++ .offset = 0x00100000, // change to kernel mtd size here (2/3)
++ .size = 0x00650000, // adopt to kernel mtd size here (3/3) = 0x00750000 - <kernel mtd size>
+ }, {
+ .name = "lang",
+ .offset = 0x00760000,
+@@ -151,6 +151,14 @@ static struct mtd_partition wrt350n_v2_n
+ .name = "u-boot",
+ .offset = 0x007c0000,
+ .size = 0x00040000,
++ }, {
++ .name = "eRcOmM_do_not_touch",
++ .offset = 0x00750000,
++ .size = 0x00010000, // erasesize
++ }, {
++ .name = "image", // for sysupgrade
++ .offset = 0x00000000,
++ .size = 0x00750000,
+ },
+ };
+
diff --git a/target/linux/orion/patches-3.3/.svn/text-base/101-wnr854t_partition_map.patch.svn-base b/target/linux/orion/patches-3.3/.svn/text-base/101-wnr854t_partition_map.patch.svn-base
new file mode 100644
index 0000000..9757d45
--- /dev/null
+++ b/target/linux/orion/patches-3.3/.svn/text-base/101-wnr854t_partition_map.patch.svn-base
@@ -0,0 +1,13 @@
+--- a/arch/arm/mach-orion5x/wnr854t-setup.c
++++ b/arch/arm/mach-orion5x/wnr854t-setup.c
+@@ -66,6 +66,10 @@ static struct mtd_partition wnr854t_nor_
+ .name = "uboot",
+ .offset = 0x00760000,
+ .size = 0x00040000,
++ }, {
++ .name = "image", // for sysupgrade
++ .offset = 0x00000000,
++ .size = 0x00760000,
+ },
+ };
+
diff --git a/target/linux/orion/patches-3.3/.svn/text-base/200-dt2_board_support.patch.svn-base b/target/linux/orion/patches-3.3/.svn/text-base/200-dt2_board_support.patch.svn-base
new file mode 100644
index 0000000..91909ab
--- /dev/null
+++ b/target/linux/orion/patches-3.3/.svn/text-base/200-dt2_board_support.patch.svn-base
@@ -0,0 +1,26 @@
+--- a/arch/arm/mach-orion5x/Kconfig
++++ b/arch/arm/mach-orion5x/Kconfig
+@@ -16,6 +16,13 @@ config MACH_RD88F5182
+ Say 'Y' here if you want your kernel to support the
+ Marvell Orion-NAS (88F5182) RD2
+
++config MACH_DT2
++ bool "Freecom DataTank Gateway"
++ select I2C_BOARDINFO
++ help
++ Say 'Y' here if you want your kernel to support the
++ Freecom DataTank Gateway
++
+ config MACH_KUROBOX_PRO
+ bool "KuroBox Pro"
+ select I2C_BOARDINFO
+--- a/arch/arm/mach-orion5x/Makefile
++++ b/arch/arm/mach-orion5x/Makefile
+@@ -18,6 +18,7 @@ obj-$(CONFIG_MACH_BIGDISK) += d2net-setu
+ obj-$(CONFIG_MACH_NET2BIG) += net2big-setup.o
+ obj-$(CONFIG_MACH_MSS2) += mss2-setup.o
+ obj-$(CONFIG_MACH_WNR854T) += wnr854t-setup.o
++obj-$(CONFIG_MACH_DT2) += dt2-setup.o
+ obj-$(CONFIG_MACH_RD88F5181L_GE) += rd88f5181l-ge-setup.o
+ obj-$(CONFIG_MACH_RD88F5181L_FXO) += rd88f5181l-fxo-setup.o
+ obj-$(CONFIG_MACH_RD88F6183AP_GE) += rd88f6183ap-ge-setup.o
diff --git a/target/linux/orion/patches-3.3/.svn/text-base/210-wn802t_support.patch.svn-base b/target/linux/orion/patches-3.3/.svn/text-base/210-wn802t_support.patch.svn-base
new file mode 100644
index 0000000..7fd908b
--- /dev/null
+++ b/target/linux/orion/patches-3.3/.svn/text-base/210-wn802t_support.patch.svn-base
@@ -0,0 +1,78 @@
+--- a/arch/arm/mach-orion5x/Kconfig
++++ b/arch/arm/mach-orion5x/Kconfig
+@@ -139,10 +139,13 @@ config MACH_MSS2
+ Maxtor Shared Storage II platform.
+
+ config MACH_WNR854T
+- bool "Netgear WNR854T"
++ bool "Netgear WNR854T / WN802T"
+ help
+ Say 'Y' here if you want your kernel to support the
+- Netgear WNR854T platform.
++ Netgear WNR854T or WN802T platform.
++
++config MACH_WN802T
++ def_bool MACH_WNR854T
+
+ config MACH_RD88F5181L_GE
+ bool "Marvell Orion-VoIP GE Reference Design"
+--- a/arch/arm/mach-orion5x/wnr854t-setup.c
++++ b/arch/arm/mach-orion5x/wnr854t-setup.c
+@@ -115,6 +115,15 @@ static struct dsa_platform_data wnr854t_
+ .chip = &wnr854t_switch_chip_data,
+ };
+
++static struct dsa_chip_data wn802t_switch_chip_data = {
++ .port_names[2] = "wan",
++ .port_names[3] = "cpu",
++};
++
++static struct dsa_platform_data wn802t_switch_plat_data = {
++ .nr_chips = 1,
++ .chip = &wn802t_switch_chip_data,
++};
+ static void __init wnr854t_init(void)
+ {
+ /*
+@@ -128,7 +137,12 @@ static void __init wnr854t_init(void)
+ * Configure peripherals.
+ */
+ orion5x_eth_init(&wnr854t_eth_data);
+- orion5x_eth_switch_init(&wnr854t_switch_plat_data, NO_IRQ);
++
++ if (machine_is_wn802t())
++ orion5x_eth_switch_init(&wn802t_switch_plat_data, NO_IRQ);
++ else
++ orion5x_eth_switch_init(&wnr854t_switch_plat_data, NO_IRQ);
++
+ orion5x_uart0_init();
+
+ orion5x_setup_dev_boot_win(WNR854T_NOR_BOOT_BASE,
+@@ -167,7 +181,7 @@ static struct hw_pci wnr854t_pci __initd
+
+ static int __init wnr854t_pci_init(void)
+ {
+- if (machine_is_wnr854t())
++ if (machine_is_wnr854t() || machine_is_wn802t())
+ pci_common_init(&wnr854t_pci);
+
+ return 0;
+@@ -178,6 +192,18 @@ MACHINE_START(WNR854T, "Netgear WNR854T"
+ /* Maintainer: Imre Kaloz <kaloz@openwrt.org> */
+ .atag_offset = 0x100,
+ .init_machine = wnr854t_init,
++ .map_io = orion5x_map_io,
++ .init_early = orion5x_init_early,
++ .init_irq = orion5x_init_irq,
++ .timer = &orion5x_timer,
++ .fixup = tag_fixup_mem32,
++ .restart = orion5x_restart,
++MACHINE_END
++
++MACHINE_START(WN802T, "Netgear WN802T")
++ /* Maintainer: Imre Kaloz <kaloz@openwrt.org> */
++ .atag_offset = 0x100,
++ .init_machine = wnr854t_init,
+ .map_io = orion5x_map_io,
+ .init_early = orion5x_init_early,
+ .init_irq = orion5x_init_irq,
diff --git a/target/linux/orion/patches-3.3/.svn/text-base/300-dns323_partition_map.patch.svn-base b/target/linux/orion/patches-3.3/.svn/text-base/300-dns323_partition_map.patch.svn-base
new file mode 100644
index 0000000..6eab81f
--- /dev/null
+++ b/target/linux/orion/patches-3.3/.svn/text-base/300-dns323_partition_map.patch.svn-base
@@ -0,0 +1,30 @@
+--- a/arch/arm/mach-orion5x/dns323-setup.c
++++ b/arch/arm/mach-orion5x/dns323-setup.c
+@@ -113,6 +113,13 @@ subsys_initcall(dns323_pci_init);
+ * 0x00020000-0x001a0000 : "Linux Kernel"
+ * 0x001a0000-0x007d0000 : "File System"
+ * 0x007d0000-0x00800000 : "u-boot"
++ *
++ * Layout as used by OpenWrt
++ * 0x00000000-0x00010000 : "MTD1"
++ * 0x00010000-0x00020000 : "MTD2"
++ * 0x00020000-0x001a0000 : "kernel"
++ * 0x001a0000-0x007d0000 : "rootfs"
++ * 0x007d0000-0x00800000 : "u-boot"
+ */
+
+ #define DNS323_NOR_BOOT_BASE 0xf4000000
+@@ -128,11 +135,11 @@ static struct mtd_partition dns323_parti
+ .size = 0x00010000,
+ .offset = 0x00010000,
+ }, {
+- .name = "Linux Kernel",
++ .name = "kernel",
+ .size = 0x00180000,
+ .offset = 0x00020000,
+ }, {
+- .name = "File System",
++ .name = "rootfs",
+ .size = 0x00630000,
+ .offset = 0x001A0000,
+ }, {
diff --git a/target/linux/orion/patches-3.3/.svn/text-base/400-fix-section-mismatch-warnings.patch.svn-base b/target/linux/orion/patches-3.3/.svn/text-base/400-fix-section-mismatch-warnings.patch.svn-base
new file mode 100644
index 0000000..84ca91f
--- /dev/null
+++ b/target/linux/orion/patches-3.3/.svn/text-base/400-fix-section-mismatch-warnings.patch.svn-base
@@ -0,0 +1,31 @@
+--- a/arch/arm/mach-orion5x/common.c
++++ b/arch/arm/mach-orion5x/common.c
+@@ -192,7 +192,7 @@ void __init orion5x_init_early(void)
+
+ int orion5x_tclk;
+
+-int __init orion5x_find_tclk(void)
++static __init int orion5x_find_tclk(void)
+ {
+ u32 dev, rev;
+
+@@ -204,7 +204,7 @@ int __init orion5x_find_tclk(void)
+ return 166666667;
+ }
+
+-static void orion5x_timer_init(void)
++static __init void orion5x_timer_init(void)
+ {
+ orion5x_tclk = orion5x_find_tclk();
+
+--- a/arch/arm/mach-orion5x/addr-map.c
++++ b/arch/arm/mach-orion5x/addr-map.c
+@@ -76,7 +76,7 @@ static int __init cpu_win_can_remap(cons
+ /*
+ * Description of the windows needed by the platform code
+ */
+-static struct __initdata orion_addr_map_cfg addr_map_cfg = {
++static struct orion_addr_map_cfg addr_map_cfg __initdata = {
+ .num_wins = 8,
+ .cpu_win_can_remap = cpu_win_can_remap,
+ .bridge_virt_base = ORION5X_BRIDGE_VIRT_BASE,
diff --git a/target/linux/orion/patches-3.3/.svn/text-base/a01-dt2-fixes-for-3.3.patch.svn-base b/target/linux/orion/patches-3.3/.svn/text-base/a01-dt2-fixes-for-3.3.patch.svn-base
new file mode 100644
index 0000000..c101f14
--- /dev/null
+++ b/target/linux/orion/patches-3.3/.svn/text-base/a01-dt2-fixes-for-3.3.patch.svn-base
@@ -0,0 +1,34 @@
+--- a/arch/arm/mach-orion5x/dt2-setup.c
++++ b/arch/arm/mach-orion5x/dt2-setup.c
+@@ -146,7 +146,7 @@ void __init dt2_pci_preinit(void)
+ }
+ }
+
+-static int __init dt2_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
++static int __init dt2_pci_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
+ {
+ int irq;
+
+@@ -383,8 +383,7 @@ __tagtable(ATAG_MV_UBOOT, parse_tag_dt2_
+ *
+ * Vanilla kernel should use "tag_fixup_mem32" function.
+ */
+-void __init openwrt_fixup(struct machine_desc *mdesc, struct tag *t,
+- char **from, struct meminfo *meminfo)
++void __init openwrt_fixup(struct tag *t, char **from, struct meminfo *meminfo)
+ {
+ char *p = NULL;
+ static char openwrt_init_tag[] __initdata = " init=/etc/preinit";
+@@ -437,10 +436,11 @@ void __init openwrt_fixup(struct machine
+ /* Warning: Freecom uses their own custom bootloader with mach-type (=1500) */
+ MACHINE_START(DT2, "Freecom DataTank Gateway")
+ /* Maintainer: Zintis Petersons <Zintis.Petersons@abcsolutions.lv> */
+- .boot_params = 0x00000100,
++ .atag_offset = 0x100,
+ .init_machine = dt2_init,
+ .map_io = orion5x_map_io,
+ .init_irq = orion5x_init_irq,
+ .timer = &orion5x_timer,
+ .fixup = openwrt_fixup, //tag_fixup_mem32,
++ .restart = orion5x_restart,
+ MACHINE_END
diff --git a/target/linux/orion/patches-3.3/100-wrt350nv2_openwrt_partition_map.patch b/target/linux/orion/patches-3.3/100-wrt350nv2_openwrt_partition_map.patch
new file mode 100644
index 0000000..5e2dc25
--- /dev/null
+++ b/target/linux/orion/patches-3.3/100-wrt350nv2_openwrt_partition_map.patch
@@ -0,0 +1,32 @@
+--- a/arch/arm/mach-orion5x/wrt350n-v2-setup.c
++++ b/arch/arm/mach-orion5x/wrt350n-v2-setup.c
+@@ -134,11 +134,11 @@ static struct mtd_partition wrt350n_v2_n
+ {
+ .name = "kernel",
+ .offset = 0x00000000,
+- .size = 0x00760000,
++ .size = 0x00100000, // change to kernel mtd size here (1/3)
+ }, {
+ .name = "rootfs",
+- .offset = 0x001a0000,
+- .size = 0x005c0000,
++ .offset = 0x00100000, // change to kernel mtd size here (2/3)
++ .size = 0x00650000, // adopt to kernel mtd size here (3/3) = 0x00750000 - <kernel mtd size>
+ }, {
+ .name = "lang",
+ .offset = 0x00760000,
+@@ -151,6 +151,14 @@ static struct mtd_partition wrt350n_v2_n
+ .name = "u-boot",
+ .offset = 0x007c0000,
+ .size = 0x00040000,
++ }, {
++ .name = "eRcOmM_do_not_touch",
++ .offset = 0x00750000,
++ .size = 0x00010000, // erasesize
++ }, {
++ .name = "image", // for sysupgrade
++ .offset = 0x00000000,
++ .size = 0x00750000,
+ },
+ };
+
diff --git a/target/linux/orion/patches-3.3/101-wnr854t_partition_map.patch b/target/linux/orion/patches-3.3/101-wnr854t_partition_map.patch
new file mode 100644
index 0000000..9757d45
--- /dev/null
+++ b/target/linux/orion/patches-3.3/101-wnr854t_partition_map.patch
@@ -0,0 +1,13 @@
+--- a/arch/arm/mach-orion5x/wnr854t-setup.c
++++ b/arch/arm/mach-orion5x/wnr854t-setup.c
+@@ -66,6 +66,10 @@ static struct mtd_partition wnr854t_nor_
+ .name = "uboot",
+ .offset = 0x00760000,
+ .size = 0x00040000,
++ }, {
++ .name = "image", // for sysupgrade
++ .offset = 0x00000000,
++ .size = 0x00760000,
+ },
+ };
+
diff --git a/target/linux/orion/patches-3.3/200-dt2_board_support.patch b/target/linux/orion/patches-3.3/200-dt2_board_support.patch
new file mode 100644
index 0000000..91909ab
--- /dev/null
+++ b/target/linux/orion/patches-3.3/200-dt2_board_support.patch
@@ -0,0 +1,26 @@
+--- a/arch/arm/mach-orion5x/Kconfig
++++ b/arch/arm/mach-orion5x/Kconfig
+@@ -16,6 +16,13 @@ config MACH_RD88F5182
+ Say 'Y' here if you want your kernel to support the
+ Marvell Orion-NAS (88F5182) RD2
+
++config MACH_DT2
++ bool "Freecom DataTank Gateway"
++ select I2C_BOARDINFO
++ help
++ Say 'Y' here if you want your kernel to support the
++ Freecom DataTank Gateway
++
+ config MACH_KUROBOX_PRO
+ bool "KuroBox Pro"
+ select I2C_BOARDINFO
+--- a/arch/arm/mach-orion5x/Makefile
++++ b/arch/arm/mach-orion5x/Makefile
+@@ -18,6 +18,7 @@ obj-$(CONFIG_MACH_BIGDISK) += d2net-setu
+ obj-$(CONFIG_MACH_NET2BIG) += net2big-setup.o
+ obj-$(CONFIG_MACH_MSS2) += mss2-setup.o
+ obj-$(CONFIG_MACH_WNR854T) += wnr854t-setup.o
++obj-$(CONFIG_MACH_DT2) += dt2-setup.o
+ obj-$(CONFIG_MACH_RD88F5181L_GE) += rd88f5181l-ge-setup.o
+ obj-$(CONFIG_MACH_RD88F5181L_FXO) += rd88f5181l-fxo-setup.o
+ obj-$(CONFIG_MACH_RD88F6183AP_GE) += rd88f6183ap-ge-setup.o
diff --git a/target/linux/orion/patches-3.3/210-wn802t_support.patch b/target/linux/orion/patches-3.3/210-wn802t_support.patch
new file mode 100644
index 0000000..7fd908b
--- /dev/null
+++ b/target/linux/orion/patches-3.3/210-wn802t_support.patch
@@ -0,0 +1,78 @@
+--- a/arch/arm/mach-orion5x/Kconfig
++++ b/arch/arm/mach-orion5x/Kconfig
+@@ -139,10 +139,13 @@ config MACH_MSS2
+ Maxtor Shared Storage II platform.
+
+ config MACH_WNR854T
+- bool "Netgear WNR854T"
++ bool "Netgear WNR854T / WN802T"
+ help
+ Say 'Y' here if you want your kernel to support the
+- Netgear WNR854T platform.
++ Netgear WNR854T or WN802T platform.
++
++config MACH_WN802T
++ def_bool MACH_WNR854T
+
+ config MACH_RD88F5181L_GE
+ bool "Marvell Orion-VoIP GE Reference Design"
+--- a/arch/arm/mach-orion5x/wnr854t-setup.c
++++ b/arch/arm/mach-orion5x/wnr854t-setup.c
+@@ -115,6 +115,15 @@ static struct dsa_platform_data wnr854t_
+ .chip = &wnr854t_switch_chip_data,
+ };
+
++static struct dsa_chip_data wn802t_switch_chip_data = {
++ .port_names[2] = "wan",
++ .port_names[3] = "cpu",
++};
++
++static struct dsa_platform_data wn802t_switch_plat_data = {
++ .nr_chips = 1,
++ .chip = &wn802t_switch_chip_data,
++};
+ static void __init wnr854t_init(void)
+ {
+ /*
+@@ -128,7 +137,12 @@ static void __init wnr854t_init(void)
+ * Configure peripherals.
+ */
+ orion5x_eth_init(&wnr854t_eth_data);
+- orion5x_eth_switch_init(&wnr854t_switch_plat_data, NO_IRQ);
++
++ if (machine_is_wn802t())
++ orion5x_eth_switch_init(&wn802t_switch_plat_data, NO_IRQ);
++ else
++ orion5x_eth_switch_init(&wnr854t_switch_plat_data, NO_IRQ);
++
+ orion5x_uart0_init();
+
+ orion5x_setup_dev_boot_win(WNR854T_NOR_BOOT_BASE,
+@@ -167,7 +181,7 @@ static struct hw_pci wnr854t_pci __initd
+
+ static int __init wnr854t_pci_init(void)
+ {
+- if (machine_is_wnr854t())
++ if (machine_is_wnr854t() || machine_is_wn802t())
+ pci_common_init(&wnr854t_pci);
+
+ return 0;
+@@ -178,6 +192,18 @@ MACHINE_START(WNR854T, "Netgear WNR854T"
+ /* Maintainer: Imre Kaloz <kaloz@openwrt.org> */
+ .atag_offset = 0x100,
+ .init_machine = wnr854t_init,
++ .map_io = orion5x_map_io,
++ .init_early = orion5x_init_early,
++ .init_irq = orion5x_init_irq,
++ .timer = &orion5x_timer,
++ .fixup = tag_fixup_mem32,
++ .restart = orion5x_restart,
++MACHINE_END
++
++MACHINE_START(WN802T, "Netgear WN802T")
++ /* Maintainer: Imre Kaloz <kaloz@openwrt.org> */
++ .atag_offset = 0x100,
++ .init_machine = wnr854t_init,
+ .map_io = orion5x_map_io,
+ .init_early = orion5x_init_early,
+ .init_irq = orion5x_init_irq,
diff --git a/target/linux/orion/patches-3.3/300-dns323_partition_map.patch b/target/linux/orion/patches-3.3/300-dns323_partition_map.patch
new file mode 100644
index 0000000..6eab81f
--- /dev/null
+++ b/target/linux/orion/patches-3.3/300-dns323_partition_map.patch
@@ -0,0 +1,30 @@
+--- a/arch/arm/mach-orion5x/dns323-setup.c
++++ b/arch/arm/mach-orion5x/dns323-setup.c
+@@ -113,6 +113,13 @@ subsys_initcall(dns323_pci_init);
+ * 0x00020000-0x001a0000 : "Linux Kernel"
+ * 0x001a0000-0x007d0000 : "File System"
+ * 0x007d0000-0x00800000 : "u-boot"
++ *
++ * Layout as used by OpenWrt
++ * 0x00000000-0x00010000 : "MTD1"
++ * 0x00010000-0x00020000 : "MTD2"
++ * 0x00020000-0x001a0000 : "kernel"
++ * 0x001a0000-0x007d0000 : "rootfs"
++ * 0x007d0000-0x00800000 : "u-boot"
+ */
+
+ #define DNS323_NOR_BOOT_BASE 0xf4000000
+@@ -128,11 +135,11 @@ static struct mtd_partition dns323_parti
+ .size = 0x00010000,
+ .offset = 0x00010000,
+ }, {
+- .name = "Linux Kernel",
++ .name = "kernel",
+ .size = 0x00180000,
+ .offset = 0x00020000,
+ }, {
+- .name = "File System",
++ .name = "rootfs",
+ .size = 0x00630000,
+ .offset = 0x001A0000,
+ }, {
diff --git a/target/linux/orion/patches-3.3/400-fix-section-mismatch-warnings.patch b/target/linux/orion/patches-3.3/400-fix-section-mismatch-warnings.patch
new file mode 100644
index 0000000..84ca91f
--- /dev/null
+++ b/target/linux/orion/patches-3.3/400-fix-section-mismatch-warnings.patch
@@ -0,0 +1,31 @@
+--- a/arch/arm/mach-orion5x/common.c
++++ b/arch/arm/mach-orion5x/common.c
+@@ -192,7 +192,7 @@ void __init orion5x_init_early(void)
+
+ int orion5x_tclk;
+
+-int __init orion5x_find_tclk(void)
++static __init int orion5x_find_tclk(void)
+ {
+ u32 dev, rev;
+
+@@ -204,7 +204,7 @@ int __init orion5x_find_tclk(void)
+ return 166666667;
+ }
+
+-static void orion5x_timer_init(void)
++static __init void orion5x_timer_init(void)
+ {
+ orion5x_tclk = orion5x_find_tclk();
+
+--- a/arch/arm/mach-orion5x/addr-map.c
++++ b/arch/arm/mach-orion5x/addr-map.c
+@@ -76,7 +76,7 @@ static int __init cpu_win_can_remap(cons
+ /*
+ * Description of the windows needed by the platform code
+ */
+-static struct __initdata orion_addr_map_cfg addr_map_cfg = {
++static struct orion_addr_map_cfg addr_map_cfg __initdata = {
+ .num_wins = 8,
+ .cpu_win_can_remap = cpu_win_can_remap,
+ .bridge_virt_base = ORION5X_BRIDGE_VIRT_BASE,
diff --git a/target/linux/orion/patches-3.3/a01-dt2-fixes-for-3.3.patch b/target/linux/orion/patches-3.3/a01-dt2-fixes-for-3.3.patch
new file mode 100644
index 0000000..c101f14
--- /dev/null
+++ b/target/linux/orion/patches-3.3/a01-dt2-fixes-for-3.3.patch
@@ -0,0 +1,34 @@
+--- a/arch/arm/mach-orion5x/dt2-setup.c
++++ b/arch/arm/mach-orion5x/dt2-setup.c
+@@ -146,7 +146,7 @@ void __init dt2_pci_preinit(void)
+ }
+ }
+
+-static int __init dt2_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
++static int __init dt2_pci_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
+ {
+ int irq;
+
+@@ -383,8 +383,7 @@ __tagtable(ATAG_MV_UBOOT, parse_tag_dt2_
+ *
+ * Vanilla kernel should use "tag_fixup_mem32" function.
+ */
+-void __init openwrt_fixup(struct machine_desc *mdesc, struct tag *t,
+- char **from, struct meminfo *meminfo)
++void __init openwrt_fixup(struct tag *t, char **from, struct meminfo *meminfo)
+ {
+ char *p = NULL;
+ static char openwrt_init_tag[] __initdata = " init=/etc/preinit";
+@@ -437,10 +436,11 @@ void __init openwrt_fixup(struct machine
+ /* Warning: Freecom uses their own custom bootloader with mach-type (=1500) */
+ MACHINE_START(DT2, "Freecom DataTank Gateway")
+ /* Maintainer: Zintis Petersons <Zintis.Petersons@abcsolutions.lv> */
+- .boot_params = 0x00000100,
++ .atag_offset = 0x100,
+ .init_machine = dt2_init,
+ .map_io = orion5x_map_io,
+ .init_irq = orion5x_init_irq,
+ .timer = &orion5x_timer,
+ .fixup = openwrt_fixup, //tag_fixup_mem32,
++ .restart = orion5x_restart,
+ MACHINE_END