orion: Update Orion in trunk to kernel 2.6.34.
authorHauke Mehrtens <hauke@hauke-m.de>
Sun, 6 Jun 2010 10:51:52 +0000 (10:51 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 6 Jun 2010 10:51:52 +0000 (10:51 +0000)
Was flashed on WRT350Nv2, booted and is running for several days.
Closes #7405

Thank you maddes for your patch.

SVN-Revision: 21682

12 files changed:
target/linux/orion/Makefile
target/linux/orion/patches-2.6.32/010-ignore_atag_cmdline.patch [new file with mode: 0644]
target/linux/orion/patches-2.6.32/050-wrt350nv2_cfi_workaround.patch [new file with mode: 0644]
target/linux/orion/patches-2.6.32/090-wrt350nv2_gpio_leds_buttons.patch [new file with mode: 0644]
target/linux/orion/patches-2.6.32/100-openwrt_partition_map.patch [new file with mode: 0644]
target/linux/orion/patches-2.6.32/101-wnr854t_partition_map.patch [new file with mode: 0644]
target/linux/orion/patches-2.6.32/200-dt2_board_support.patch [new file with mode: 0644]
target/linux/orion/patches-2.6.32/300-skb_cb_align.patch [new file with mode: 0644]
target/linux/orion/patches/010-ignore_atag_cmdline.patch
target/linux/orion/patches/090-wrt350nv2_gpio_leds_buttons.patch [deleted file]
target/linux/orion/patches/200-dt2_board_support.patch
target/linux/orion/patches/300-skb_cb_align.patch [deleted file]

index 8ab12cf..1eb3725 100644 (file)
@@ -13,7 +13,7 @@ FEATURES:=squashfs
 SUBTARGETS=generic harddisk
 CFLAGS=-Os -pipe -march=armv5t -mtune=xscale -funit-at-a-time
 
-LINUX_VERSION:=2.6.32.14
+LINUX_VERSION:=2.6.34
 
 include $(INCLUDE_DIR)/target.mk
 
diff --git a/target/linux/orion/patches-2.6.32/010-ignore_atag_cmdline.patch b/target/linux/orion/patches-2.6.32/010-ignore_atag_cmdline.patch
new file mode 100644 (file)
index 0000000..9df21f1
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/arch/arm/kernel/setup.c
++++ b/arch/arm/kernel/setup.c
+@@ -629,7 +629,7 @@ __tagtable(ATAG_REVISION, parse_tag_revi
+ static int __init parse_tag_cmdline(const struct tag *tag)
+ {
+-      strlcpy(default_command_line, tag->u.cmdline.cmdline, COMMAND_LINE_SIZE);
++//    strlcpy(default_command_line, tag->u.cmdline.cmdline, COMMAND_LINE_SIZE);
+       return 0;
+ }
diff --git a/target/linux/orion/patches-2.6.32/050-wrt350nv2_cfi_workaround.patch b/target/linux/orion/patches-2.6.32/050-wrt350nv2_cfi_workaround.patch
new file mode 100644 (file)
index 0000000..f10f89e
--- /dev/null
@@ -0,0 +1,14 @@
+--- a/drivers/mtd/chips/cfi_cmdset_0002.c
++++ b/drivers/mtd/chips/cfi_cmdset_0002.c
+@@ -374,8 +374,9 @@ struct mtd_info *cfi_cmdset_0002(struct 
+               cfi_fixup_major_minor(cfi, extp);
+-              if (extp->MajorVersion < '0' || extp->MajorVersion > '3' ||
+-                  (extp->MinorVersion < '0' || extp->MinorVersion > '4')) {
++              if ((extp->MajorVersion != '0' && extp->MinorVersion != '0') &&
++                  (extp->MajorVersion < '0' || extp->MajorVersion > '3' ||
++                  (extp->MinorVersion < '0' || extp->MinorVersion > '4'))) {
+                       if (cfi->mfr == MANUFACTURER_SAMSUNG &&
+                           (extp->MajorVersion == '3' && extp->MinorVersion == '3')) {
+                           printk(KERN_NOTICE "  Newer Samsung flash detected, "
diff --git a/target/linux/orion/patches-2.6.32/090-wrt350nv2_gpio_leds_buttons.patch b/target/linux/orion/patches-2.6.32/090-wrt350nv2_gpio_leds_buttons.patch
new file mode 100644 (file)
index 0000000..30f75fc
--- /dev/null
@@ -0,0 +1,102 @@
+--- a/arch/arm/mach-orion5x/wrt350n-v2-setup.c
++++ b/arch/arm/mach-orion5x/wrt350n-v2-setup.c
+@@ -15,6 +15,9 @@
+ #include <linux/mtd/physmap.h>
+ #include <linux/mv643xx_eth.h>
+ #include <linux/ethtool.h>
++#include <linux/leds.h>
++#include <linux/gpio_keys.h>
++#include <linux/input.h>
+ #include <net/dsa.h>
+ #include <asm/mach-types.h>
+ #include <asm/gpio.h>
+@@ -24,6 +27,80 @@
+ #include "common.h"
+ #include "mpp.h"
++/*
++ * LEDs attached to GPIO
++ */
++static struct gpio_led wrt350n_v2_led_pins[] = {
++      {
++              .name           = "wrt350nv2:green:power",
++              .gpio           = 0,
++              .active_low     = 1,
++      }, {
++              .name           = "wrt350nv2:green:security",
++              .gpio           = 1,
++              .active_low     = 1,
++      }, {
++              .name           = "wrt350nv2:orange:power",
++              .gpio           = 5,
++              .active_low     = 1,
++      }, {
++              .name           = "wrt350nv2:green:usb",
++              .gpio           = 6,
++              .active_low     = 1,
++      }, {
++              .name           = "wrt350nv2:green:wireless",
++              .gpio           = 7,
++              .active_low     = 1,
++      },
++};
++
++static struct gpio_led_platform_data wrt350n_v2_led_data = {
++      .leds           = wrt350n_v2_led_pins,
++      .num_leds       = ARRAY_SIZE(wrt350n_v2_led_pins),
++};
++
++static struct platform_device wrt350n_v2_leds = {
++      .name   = "leds-gpio",
++      .id     = -1,
++      .dev    = {
++              .platform_data  = &wrt350n_v2_led_data,
++      },
++};
++
++/*
++ * Buttons attached to GPIO
++ */
++static struct gpio_keys_button wrt350n_v2_buttons[] = {
++        {
++                .code           = KEY_RESTART,
++                .gpio           = 3,
++                .desc           = "Reset Button",
++                .active_low     = 1,
++        }, {
++                .code           = KEY_WLAN,
++                .gpio           = 2,
++                .desc           = "WPS Button",
++                .active_low     = 1,
++        },
++};
++
++static struct gpio_keys_platform_data wrt350n_v2_button_data = {
++        .buttons        = wrt350n_v2_buttons,
++        .nbuttons       = ARRAY_SIZE(wrt350n_v2_buttons),
++};
++
++static struct platform_device wrt350n_v2_button_device = {
++        .name           = "gpio-keys",
++        .id             = -1,
++        .num_resources  = 0,
++        .dev            = {
++                .platform_data  = &wrt350n_v2_button_data,
++        },
++};
++
++/*
++ * General setup
++ */
+ static struct orion5x_mpp_mode wrt350n_v2_mpp_modes[] __initdata = {
+       {  0, MPP_GPIO },               /* Power LED green (0=on) */
+       {  1, MPP_GPIO },               /* Security LED (0=on) */
+@@ -140,6 +217,8 @@ static void __init wrt350n_v2_init(void)
+       orion5x_setup_dev_boot_win(WRT350N_V2_NOR_BOOT_BASE,
+                                  WRT350N_V2_NOR_BOOT_SIZE);
+       platform_device_register(&wrt350n_v2_nor_flash);
++      platform_device_register(&wrt350n_v2_button_device);
++      platform_device_register(&wrt350n_v2_leds);
+ }
+ static int __init wrt350n_v2_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
diff --git a/target/linux/orion/patches-2.6.32/100-openwrt_partition_map.patch b/target/linux/orion/patches-2.6.32/100-openwrt_partition_map.patch
new file mode 100644 (file)
index 0000000..f179a05
--- /dev/null
@@ -0,0 +1,32 @@
+--- a/arch/arm/mach-orion5x/wrt350n-v2-setup.c
++++ b/arch/arm/mach-orion5x/wrt350n-v2-setup.c
+@@ -135,11 +135,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,
+@@ -152,6 +152,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-2.6.32/101-wnr854t_partition_map.patch b/target/linux/orion/patches-2.6.32/101-wnr854t_partition_map.patch
new file mode 100644 (file)
index 0000000..c754106
--- /dev/null
@@ -0,0 +1,13 @@
+--- a/arch/arm/mach-orion5x/wnr854t-setup.c
++++ b/arch/arm/mach-orion5x/wnr854t-setup.c
+@@ -67,6 +67,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-2.6.32/200-dt2_board_support.patch b/target/linux/orion/patches-2.6.32/200-dt2_board_support.patch
new file mode 100644 (file)
index 0000000..2715472
--- /dev/null
@@ -0,0 +1,23 @@
+--- 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
+@@ -20,3 +20,4 @@ obj-$(CONFIG_MACH_WNR854T)   += wnr854t-se
+ 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
++obj-$(CONFIG_MACH_DT2)                += dt2-setup.o
diff --git a/target/linux/orion/patches-2.6.32/300-skb_cb_align.patch b/target/linux/orion/patches-2.6.32/300-skb_cb_align.patch
new file mode 100644 (file)
index 0000000..3fefa4d
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/include/linux/skbuff.h
++++ b/include/linux/skbuff.h
+@@ -332,7 +332,7 @@ struct sk_buff {
+        * want to keep them across layers you have to do a skb_clone()
+        * first. This is owned by whoever has the skb queued ATM.
+        */
+-      char                    cb[48];
++      char                    cb[48] __attribute__((aligned(8)));
+ #if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
+       void                    *cb_next;
+ #endif
index 9df21f1..08a6b1f 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/arm/kernel/setup.c
 +++ b/arch/arm/kernel/setup.c
-@@ -629,7 +629,7 @@ __tagtable(ATAG_REVISION, parse_tag_revi
+@@ -595,7 +595,7 @@ __tagtable(ATAG_REVISION, parse_tag_revi
  
  static int __init parse_tag_cmdline(const struct tag *tag)
  {
diff --git a/target/linux/orion/patches/090-wrt350nv2_gpio_leds_buttons.patch b/target/linux/orion/patches/090-wrt350nv2_gpio_leds_buttons.patch
deleted file mode 100644 (file)
index 30f75fc..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
---- a/arch/arm/mach-orion5x/wrt350n-v2-setup.c
-+++ b/arch/arm/mach-orion5x/wrt350n-v2-setup.c
-@@ -15,6 +15,9 @@
- #include <linux/mtd/physmap.h>
- #include <linux/mv643xx_eth.h>
- #include <linux/ethtool.h>
-+#include <linux/leds.h>
-+#include <linux/gpio_keys.h>
-+#include <linux/input.h>
- #include <net/dsa.h>
- #include <asm/mach-types.h>
- #include <asm/gpio.h>
-@@ -24,6 +27,80 @@
- #include "common.h"
- #include "mpp.h"
-+/*
-+ * LEDs attached to GPIO
-+ */
-+static struct gpio_led wrt350n_v2_led_pins[] = {
-+      {
-+              .name           = "wrt350nv2:green:power",
-+              .gpio           = 0,
-+              .active_low     = 1,
-+      }, {
-+              .name           = "wrt350nv2:green:security",
-+              .gpio           = 1,
-+              .active_low     = 1,
-+      }, {
-+              .name           = "wrt350nv2:orange:power",
-+              .gpio           = 5,
-+              .active_low     = 1,
-+      }, {
-+              .name           = "wrt350nv2:green:usb",
-+              .gpio           = 6,
-+              .active_low     = 1,
-+      }, {
-+              .name           = "wrt350nv2:green:wireless",
-+              .gpio           = 7,
-+              .active_low     = 1,
-+      },
-+};
-+
-+static struct gpio_led_platform_data wrt350n_v2_led_data = {
-+      .leds           = wrt350n_v2_led_pins,
-+      .num_leds       = ARRAY_SIZE(wrt350n_v2_led_pins),
-+};
-+
-+static struct platform_device wrt350n_v2_leds = {
-+      .name   = "leds-gpio",
-+      .id     = -1,
-+      .dev    = {
-+              .platform_data  = &wrt350n_v2_led_data,
-+      },
-+};
-+
-+/*
-+ * Buttons attached to GPIO
-+ */
-+static struct gpio_keys_button wrt350n_v2_buttons[] = {
-+        {
-+                .code           = KEY_RESTART,
-+                .gpio           = 3,
-+                .desc           = "Reset Button",
-+                .active_low     = 1,
-+        }, {
-+                .code           = KEY_WLAN,
-+                .gpio           = 2,
-+                .desc           = "WPS Button",
-+                .active_low     = 1,
-+        },
-+};
-+
-+static struct gpio_keys_platform_data wrt350n_v2_button_data = {
-+        .buttons        = wrt350n_v2_buttons,
-+        .nbuttons       = ARRAY_SIZE(wrt350n_v2_buttons),
-+};
-+
-+static struct platform_device wrt350n_v2_button_device = {
-+        .name           = "gpio-keys",
-+        .id             = -1,
-+        .num_resources  = 0,
-+        .dev            = {
-+                .platform_data  = &wrt350n_v2_button_data,
-+        },
-+};
-+
-+/*
-+ * General setup
-+ */
- static struct orion5x_mpp_mode wrt350n_v2_mpp_modes[] __initdata = {
-       {  0, MPP_GPIO },               /* Power LED green (0=on) */
-       {  1, MPP_GPIO },               /* Security LED (0=on) */
-@@ -140,6 +217,8 @@ static void __init wrt350n_v2_init(void)
-       orion5x_setup_dev_boot_win(WRT350N_V2_NOR_BOOT_BASE,
-                                  WRT350N_V2_NOR_BOOT_SIZE);
-       platform_device_register(&wrt350n_v2_nor_flash);
-+      platform_device_register(&wrt350n_v2_button_device);
-+      platform_device_register(&wrt350n_v2_leds);
- }
- static int __init wrt350n_v2_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
index 2715472..aa645ea 100644 (file)
@@ -16,7 +16,7 @@
        select I2C_BOARDINFO
 --- a/arch/arm/mach-orion5x/Makefile
 +++ b/arch/arm/mach-orion5x/Makefile
-@@ -20,3 +20,4 @@ obj-$(CONFIG_MACH_WNR854T)   += wnr854t-se
+@@ -21,3 +21,4 @@ obj-$(CONFIG_MACH_WNR854T)   += wnr854t-se
  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/300-skb_cb_align.patch b/target/linux/orion/patches/300-skb_cb_align.patch
deleted file mode 100644 (file)
index 3fefa4d..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/include/linux/skbuff.h
-+++ b/include/linux/skbuff.h
-@@ -332,7 +332,7 @@ struct sk_buff {
-        * want to keep them across layers you have to do a skb_clone()
-        * first. This is owned by whoever has the skb queued ATM.
-        */
--      char                    cb[48];
-+      char                    cb[48] __attribute__((aligned(8)));
- #if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
-       void                    *cb_next;
- #endif