aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/linux/linux-2.6.30
diff options
context:
space:
mode:
authorUlf Samuelsson <ulf.samuelsson@atmel.com>2011-05-16 21:51:10 +0200
committerUlf Samuelsson <ulf.samuelsson@atmel.com>2011-05-16 22:26:53 +0200
commitf0560cb5ef6a44ee2cde8b7fb9d8e7018ef702be (patch)
tree9e41745ec32b3307a87e1050899fbcf7d500b76b /recipes/linux/linux-2.6.30
parent0d76535e589c7d36ad6d3d3491cfd6612010293d (diff)
downloadopenembedded-f0560cb5ef6a44ee2cde8b7fb9d8e7018ef702be.tar.gz
Update AT91 linux-2.6.30 support
Support use of exp.4 (the latest) patch for SAM9M10EKES Others will remain at exp.2 (until tested) Download exp.4 patchset This is a compressed tarball containing a number of patches. Apply each patch in correct order. Note that this uses default 2.6.10 due to incompatability with 2.6.30.10 Signed-off-by: Ulf Samuelsson <ulf.samuelsson@atmel.com>
Diffstat (limited to 'recipes/linux/linux-2.6.30')
-rw-r--r--recipes/linux/linux-2.6.30/at91/exp.2/linux-2.6.30-001-configurable-partition-size.patch362
-rw-r--r--recipes/linux/linux-2.6.30/at91/exp.2/linux-2.6.30-002-mach-at91-Kconfig.patch196
-rw-r--r--recipes/linux/linux-2.6.30/at91/exp.2/linux-2.6.30-003-sam9m10g45ek.patch29
-rw-r--r--recipes/linux/linux-2.6.30/at91/exp.4/0001-Configurable-partition-size.patch403
-rw-r--r--recipes/linux/linux-2.6.30/at91/exp.4/0002-mach-at91-KConfig-cleanup.patch202
5 files changed, 1192 insertions, 0 deletions
diff --git a/recipes/linux/linux-2.6.30/at91/exp.2/linux-2.6.30-001-configurable-partition-size.patch b/recipes/linux/linux-2.6.30/at91/exp.2/linux-2.6.30-001-configurable-partition-size.patch
new file mode 100644
index 0000000000..ae24d12d1d
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/at91/exp.2/linux-2.6.30-001-configurable-partition-size.patch
@@ -0,0 +1,362 @@
+diff -urN linux-2.6.30-0rig/arch/arm/mach-at91/board-at572d940hf_ek.c linux-2.6.30/arch/arm/mach-at91/board-at572d940hf_ek.c
+--- linux-2.6.30-0rig/arch/arm/mach-at91/board-at572d940hf_ek.c 2010-03-14 11:13:34.000000000 +0100
++++ linux-2.6.30/arch/arm/mach-at91/board-at572d940hf_ek.c 2010-03-14 11:28:55.000000000 +0100
+@@ -114,10 +114,20 @@
+ */
+ static struct mtd_partition __initdata eb_nand_partition[] = {
+ {
+- .name = "Partition 1",
+- .offset = 0,
++ .name = "Bootstrap",
++ .offset = 0,
++ .size = 4 * SZ_1M,
++ },
++ {
++ .name = "Root File System",
++ .offset = MTDPART_OFS_NXTBLK,
++ .size = CONFIG_MTD_NAND_ATMEL_ROOTFS_SIZE * SZ_1M,
++ },
++ {
++ .name = "Data",
++ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+- }
++ },
+ };
+
+ static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
+diff -urN linux-2.6.30-0rig/arch/arm/mach-at91/board-cap9adk.c linux-2.6.30/arch/arm/mach-at91/board-cap9adk.c
+--- linux-2.6.30-0rig/arch/arm/mach-at91/board-cap9adk.c 2010-03-14 11:13:34.000000000 +0100
++++ linux-2.6.30/arch/arm/mach-at91/board-cap9adk.c 2010-03-14 11:28:36.000000000 +0100
+@@ -167,8 +167,18 @@
+ */
+ static struct mtd_partition __initdata cap9adk_nand_partitions[] = {
+ {
+- .name = "NAND partition",
+- .offset = 0,
++ .name = "Bootstrap",
++ .offset = 0,
++ .size = 4 * SZ_1M,
++ },
++ {
++ .name = "Root File System",
++ .offset = MTDPART_OFS_NXTBLK,
++ .size = CONFIG_MTD_NAND_ATMEL_ROOTFS_SIZE * SZ_1M,
++ },
++ {
++ .name = "Data",
++ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+ },
+ };
+diff -urN linux-2.6.30-0rig/arch/arm/mach-at91/board-dk.c linux-2.6.30/arch/arm/mach-at91/board-dk.c
+--- linux-2.6.30-0rig/arch/arm/mach-at91/board-dk.c 2010-03-14 11:13:34.000000000 +0100
++++ linux-2.6.30/arch/arm/mach-at91/board-dk.c 2010-03-14 11:28:43.000000000 +0100
+@@ -314,8 +314,18 @@
+
+ static struct mtd_partition __initdata dk_nand_partition[] = {
+ {
+- .name = "NAND Partition 1",
+- .offset = 0,
++ .name = "Bootstrap",
++ .offset = 0,
++ .size = 4 * SZ_1M,
++ },
++ {
++ .name = "Root File System",
++ .offset = MTDPART_OFS_NXTBLK,
++ .size = CONFIG_MTD_NAND_ATMEL_ROOTFS_SIZE * SZ_1M,
++ },
++ {
++ .name = "Data",
++ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+ },
+ };
+diff -urN linux-2.6.30-0rig/arch/arm/mach-at91/board-sam9260ek.c linux-2.6.30/arch/arm/mach-at91/board-sam9260ek.c
+--- linux-2.6.30-0rig/arch/arm/mach-at91/board-sam9260ek.c 2010-03-14 11:13:34.000000000 +0100
++++ linux-2.6.30/arch/arm/mach-at91/board-sam9260ek.c 2010-03-14 11:26:57.000000000 +0100
+@@ -177,12 +177,17 @@
+ */
+ static struct mtd_partition __initdata ek_nand_partition[] = {
+ {
+- .name = "Partition 1",
+- .offset = 0,
+- .size = SZ_256K,
++ .name = "Bootstrap",
++ .offset = 0,
++ .size = 4 * SZ_1M,
+ },
+ {
+- .name = "Partition 2",
++ .name = "Root File System",
++ .offset = MTDPART_OFS_NXTBLK,
++ .size = CONFIG_MTD_NAND_ATMEL_ROOTFS_SIZE * SZ_1M,
++ },
++ {
++ .name = "Data",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+ },
+diff -urN linux-2.6.30-0rig/arch/arm/mach-at91/board-sam9261ek.c linux-2.6.30/arch/arm/mach-at91/board-sam9261ek.c
+--- linux-2.6.30-0rig/arch/arm/mach-at91/board-sam9261ek.c 2010-03-14 11:13:34.000000000 +0100
++++ linux-2.6.30/arch/arm/mach-at91/board-sam9261ek.c 2010-03-14 11:26:57.000000000 +0100
+@@ -184,12 +184,17 @@
+ */
+ static struct mtd_partition __initdata ek_nand_partition[] = {
+ {
+- .name = "Partition 1",
+- .offset = 0,
+- .size = SZ_256K,
++ .name = "Bootstrap",
++ .offset = 0,
++ .size = 4 * SZ_1M,
+ },
+ {
+- .name = "Partition 2",
++ .name = "Root File System",
++ .offset = MTDPART_OFS_NXTBLK,
++ .size = CONFIG_MTD_NAND_ATMEL_ROOTFS_SIZE * SZ_1M,
++ },
++ {
++ .name = "Data",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+ },
+diff -urN linux-2.6.30-0rig/arch/arm/mach-at91/board-sam9263ek.c linux-2.6.30/arch/arm/mach-at91/board-sam9263ek.c
+--- linux-2.6.30-0rig/arch/arm/mach-at91/board-sam9263ek.c 2010-03-14 11:13:34.000000000 +0100
++++ linux-2.6.30/arch/arm/mach-at91/board-sam9263ek.c 2010-03-14 11:26:57.000000000 +0100
+@@ -174,12 +174,17 @@
+ */
+ static struct mtd_partition __initdata ek_nand_partition[] = {
+ {
+- .name = "Partition 1",
+- .offset = 0,
+- .size = SZ_64M,
++ .name = "Bootstrap",
++ .offset = 0,
++ .size = 4 * SZ_1M,
+ },
+ {
+- .name = "Partition 2",
++ .name = "Root File System",
++ .offset = MTDPART_OFS_NXTBLK,
++ .size = CONFIG_MTD_NAND_ATMEL_ROOTFS_SIZE * SZ_1M,
++ },
++ {
++ .name = "Data",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+ },
+diff -urN linux-2.6.30-0rig/arch/arm/mach-at91/board-sam9g20ek-2slot-mmc.c linux-2.6.30/arch/arm/mach-at91/board-sam9g20ek-2slot-mmc.c
+--- linux-2.6.30-0rig/arch/arm/mach-at91/board-sam9g20ek-2slot-mmc.c 2010-03-14 11:13:34.000000000 +0100
++++ linux-2.6.30/arch/arm/mach-at91/board-sam9g20ek-2slot-mmc.c 2010-03-14 11:28:29.000000000 +0100
+@@ -130,12 +130,12 @@
+ .size = 4 * SZ_1M,
+ },
+ {
+- .name = "Partition 1",
++ .name = "Root File System",
+ .offset = MTDPART_OFS_NXTBLK,
+- .size = 60 * SZ_1M,
++ .size = CONFIG_MTD_NAND_ATMEL_ROOTFS_SIZE * SZ_1M,
+ },
+ {
+- .name = "Partition 2",
++ .name = "Data",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+ },
+diff -urN linux-2.6.30-0rig/arch/arm/mach-at91/board-sam9g20ek.c linux-2.6.30/arch/arm/mach-at91/board-sam9g20ek.c
+--- linux-2.6.30-0rig/arch/arm/mach-at91/board-sam9g20ek.c 2010-03-14 11:13:34.000000000 +0100
++++ linux-2.6.30/arch/arm/mach-at91/board-sam9g20ek.c 2010-03-14 11:26:57.000000000 +0100
+@@ -129,12 +129,12 @@
+ .size = 4 * SZ_1M,
+ },
+ {
+- .name = "Partition 1",
++ .name = "Root File System",
+ .offset = MTDPART_OFS_NXTBLK,
+- .size = 60 * SZ_1M,
++ .size = CONFIG_MTD_NAND_ATMEL_ROOTFS_SIZE * SZ_1M,
+ },
+ {
+- .name = "Partition 2",
++ .name = "Data",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+ },
+diff -urN linux-2.6.30-0rig/arch/arm/mach-at91/board-sam9m10g45ek.c linux-2.6.30/arch/arm/mach-at91/board-sam9m10g45ek.c
+--- linux-2.6.30-0rig/arch/arm/mach-at91/board-sam9m10g45ek.c 2010-03-14 11:13:34.000000000 +0100
++++ linux-2.6.30/arch/arm/mach-at91/board-sam9m10g45ek.c 2010-03-14 11:26:57.000000000 +0100
+@@ -133,12 +133,17 @@
+ */
+ static struct mtd_partition __initdata ek_nand_partition[] = {
+ {
+- .name = "Partition 1",
+- .offset = 0,
+- .size = SZ_64M,
++ .name = "Bootstrap",
++ .offset = 0,
++ .size = 4 * SZ_1M,
+ },
+ {
+- .name = "Partition 2",
++ .name = "Root File System",
++ .offset = MTDPART_OFS_NXTBLK,
++ .size = CONFIG_MTD_NAND_ATMEL_ROOTFS_SIZE * SZ_1M,
++ },
++ {
++ .name = "Data",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+ },
+diff -urN linux-2.6.30-0rig/arch/arm/mach-at91/board-sam9rlek.c linux-2.6.30/arch/arm/mach-at91/board-sam9rlek.c
+--- linux-2.6.30-0rig/arch/arm/mach-at91/board-sam9rlek.c 2010-03-14 11:13:34.000000000 +0100
++++ linux-2.6.30/arch/arm/mach-at91/board-sam9rlek.c 2010-03-14 11:26:57.000000000 +0100
+@@ -83,12 +83,17 @@
+ */
+ static struct mtd_partition __initdata ek_nand_partition[] = {
+ {
+- .name = "Partition 1",
+- .offset = 0,
+- .size = SZ_256K,
++ .name = "Bootstrap",
++ .offset = 0,
++ .size = 4 * SZ_1M,
+ },
+ {
+- .name = "Partition 2",
++ .name = "Root File System",
++ .offset = MTDPART_OFS_NXTBLK,
++ .size = CONFIG_MTD_NAND_ATMEL_ROOTFS_SIZE * SZ_1M,
++ },
++ {
++ .name = "Data",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+ },
+diff -urN linux-2.6.30-0rig/arch/arm/mach-at91/Kconfig linux-2.6.30/arch/arm/mach-at91/Kconfig
+--- linux-2.6.30-0rig/arch/arm/mach-at91/Kconfig 2010-03-14 11:13:34.000000000 +0100
++++ linux-2.6.30/arch/arm/mach-at91/Kconfig 2010-03-14 11:32:54.000000000 +0100
+@@ -96,6 +96,7 @@
+ config ARCH_AT91RM9200DK
+ bool "Atmel AT91RM9200-DK Development board"
+ depends on ARCH_AT91RM9200
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91RM9200-DK Development board.
+ (Discontinued)
+@@ -213,6 +214,7 @@
+ config MACH_AT91SAM9260EK
+ bool "Atmel AT91SAM9260-EK / AT91SAM9XE Evaluation Kit"
+ depends on ARCH_AT91SAM9260
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91SAM9260-EK or AT91SAM9XE Evaluation Kit
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3933>
+@@ -278,6 +280,7 @@
+ config MACH_AT91SAM9261EK
+ bool "Atmel AT91SAM9261-EK Evaluation Kit"
+ depends on ARCH_AT91SAM9261
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91SAM9261-EK Evaluation Kit.
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3820>
+@@ -293,6 +296,7 @@
+ config MACH_AT91SAM9G10EK
+ bool "Atmel AT91SAM9G10-EK Evaluation Kit"
+ depends on ARCH_AT91SAM9G10
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91SAM9G10-EK Evaluation Kit.
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4588>
+@@ -308,6 +312,7 @@
+ config MACH_AT91SAM9263EK
+ bool "Atmel AT91SAM9263-EK Evaluation Kit"
+ depends on ARCH_AT91SAM9263
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91SAM9263-EK Evaluation Kit.
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4057>
+@@ -350,6 +355,7 @@
+ config MACH_AT91SAM9RLEK
+ bool "Atmel AT91SAM9RL-EK Evaluation Kit"
+ depends on ARCH_AT91SAM9RL
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91SAM9RL-EK Evaluation Kit.
+
+@@ -364,6 +370,7 @@
+ config MACH_AT91SAM9G20EK
+ bool "Atmel AT91SAM9G20-EK Evaluation Kit"
+ depends on ARCH_AT91SAM9G20
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91SAM9G20-EK Evaluation Kit
+ that embeds only one SD/MMC slot.
+@@ -371,6 +378,7 @@
+ config MACH_AT91SAM9G20EK_2MMC
+ bool "Atmel AT91SAM9G20-EK Evaluation Kit with 2 SD/MMC Slots"
+ depends on ARCH_AT91SAM9G20
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using an Atmel AT91SAM9G20-EK Evaluation Kit
+ with 2 SD/MMC Slots. This is the case for AT91SAM9G20-EK rev. C and
+@@ -408,6 +416,7 @@
+ config MACH_AT91SAM9G45EKES
+ bool "Atmel AT91SAM9G45-EKES Evaluation Kit"
+ depends on ARCH_AT91SAM9G45
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91SAM9G45-EKES Evaluation Kit.
+ "ES" at the end of the name means that this board is an
+@@ -424,6 +433,7 @@
+ config MACH_AT91SAM9M10EKES
+ bool "Atmel AT91SAM9M10-EKES Evaluation Kit"
+ depends on ARCH_AT91SAM9M10
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91SAM9M10-EKES Evaluation Kit.
+ "ES" at the end of the name means that this board is an
+@@ -440,6 +450,7 @@
+ config MACH_AT91CAP9ADK
+ bool "Atmel AT91CAP9A-DK Evaluation Kit"
+ depends on ARCH_AT91CAP9
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91CAP9A-DK Evaluation Kit.
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4138>
+@@ -455,6 +466,7 @@
+ config MACH_AT572D940HFEB
+ bool "AT572D940HF-EK"
+ depends on ARCH_AT572D940HF
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT572D940HF-EK evaluation kit.
+ <http://www.atmel.com/products/diopsis/default.asp>
+@@ -494,6 +506,24 @@
+ On AT91SAM926x boards both types of NAND flash can be present
+ (8 and 16 bit data bus width).
+
++config MTD_NAND_ATMEL_ROOTFS_SIZE
++ int "Size NAND rootfs in MB"
++ range 8 250
++ depends on MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ default "124"
++ help
++ Many Atmel development boards has a NAND Flash,
++ divided into three partitions.
++ 1) Boot partition (4 MB)
++ 2) Root FS
++ 3) Data partition
++ This allows you to configure the size of the root fs
++ with the remainder ending up in the data partition.
++ The legal values are between 8 and 250
++
++config MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ bool
++
+ # ----------------------------------------------------------
+
+ comment "AT91 Feature Selections"
diff --git a/recipes/linux/linux-2.6.30/at91/exp.2/linux-2.6.30-002-mach-at91-Kconfig.patch b/recipes/linux/linux-2.6.30/at91/exp.2/linux-2.6.30-002-mach-at91-Kconfig.patch
new file mode 100644
index 0000000000..a2d3965f13
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/at91/exp.2/linux-2.6.30-002-mach-at91-Kconfig.patch
@@ -0,0 +1,196 @@
+diff -urN linux-2.6.30-0rig/arch/arm/mach-at91/Kconfig linux-2.6.30/arch/arm/mach-at91/Kconfig
+--- linux-2.6.30-0rig/arch/arm/mach-at91/Kconfig 2010-03-14 11:41:36.000000000 +0100
++++ linux-2.6.30/arch/arm/mach-at91/Kconfig 2010-03-14 12:00:27.000000000 +0100
+@@ -97,6 +97,7 @@
+ bool "Atmel AT91RM9200-DK Development board"
+ depends on ARCH_AT91RM9200
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Atmel's AT91RM9200-DK Development board.
+ (Discontinued)
+@@ -104,6 +105,7 @@
+ config MACH_AT91RM9200EK
+ bool "Atmel AT91RM9200-EK Evaluation Kit"
+ depends on ARCH_AT91RM9200
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Atmel's AT91RM9200-EK Evaluation Kit.
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3507>
+@@ -172,6 +174,7 @@
+ config MACH_ECBAT91
+ bool "emQbit ECB_AT91 SBC"
+ depends on ARCH_AT91RM9200
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using emQbit's ECB_AT91 board.
+ <http://wiki.emqbit.com/free-ecb-at91>
+@@ -215,6 +218,8 @@
+ bool "Atmel AT91SAM9260-EK / AT91SAM9XE Evaluation Kit"
+ depends on ARCH_AT91SAM9260
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Atmel's AT91SAM9260-EK or AT91SAM9XE Evaluation Kit
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3933>
+@@ -229,6 +234,7 @@
+ config MACH_SAM9_L9260
+ bool "Olimex SAM9-L9260 board"
+ depends on ARCH_AT91SAM9260
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Olimex's SAM9-L9260 board based on the Atmel AT91SAM9260.
+ <http://www.olimex.com/dev/sam9-L9260.html>
+@@ -281,6 +287,8 @@
+ bool "Atmel AT91SAM9261-EK Evaluation Kit"
+ depends on ARCH_AT91SAM9261
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Atmel's AT91SAM9261-EK Evaluation Kit.
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3820>
+@@ -297,6 +305,8 @@
+ bool "Atmel AT91SAM9G10-EK Evaluation Kit"
+ depends on ARCH_AT91SAM9G10
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Atmel's AT91SAM9G10-EK Evaluation Kit.
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4588>
+@@ -313,6 +323,8 @@
+ bool "Atmel AT91SAM9263-EK Evaluation Kit"
+ depends on ARCH_AT91SAM9263
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Atmel's AT91SAM9263-EK Evaluation Kit.
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4057>
+@@ -334,6 +346,7 @@
+ config MACH_TOTEMNOVA
+ bool "TotemNova Micronova industrial supervisor"
+ depends on ARCH_AT91SAM9263
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Micronova's TotemNova industrial supervisor
+ <http://www.micronovasrl.com>
+@@ -341,6 +354,7 @@
+ config MACH_NEOCORE926
+ bool "Adeneo NEOCORE926"
+ depends on ARCH_AT91SAM9263
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using the Adeneo Neocore 926 board.
+
+@@ -371,6 +385,8 @@
+ bool "Atmel AT91SAM9G20-EK Evaluation Kit"
+ depends on ARCH_AT91SAM9G20
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Atmel's AT91SAM9G20-EK Evaluation Kit
+ that embeds only one SD/MMC slot.
+@@ -379,6 +395,7 @@
+ bool "Atmel AT91SAM9G20-EK Evaluation Kit with 2 SD/MMC Slots"
+ depends on ARCH_AT91SAM9G20
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
+ help
+ Select this if you are using an Atmel AT91SAM9G20-EK Evaluation Kit
+ with 2 SD/MMC Slots. This is the case for AT91SAM9G20-EK rev. C and
+@@ -417,13 +434,23 @@
+ bool "Atmel AT91SAM9G45-EKES Evaluation Kit"
+ depends on ARCH_AT91SAM9G45
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
+ help
+ Select this if you are using Atmel's AT91SAM9G45-EKES Evaluation Kit.
+ "ES" at the end of the name means that this board is an
+ Engineering Sample.
+
+-endif
++config MACH_AT91SAM9M10G45EK
++ bool "Atmel AT91SAM9M10G45-EK Evaluation Kit"
++ depends on ARCH_AT91SAM9G45
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
++ help
++ Select this if you are using Atmel's AT91SAM9M10G45-EK Evaluation Kit.
++ "ES2" at the end of the name means that this board is an
++ Engineering Sample.
+
++endif
+ # ----------------------------------------------------------
+
+ if ARCH_AT91SAM9M10
+@@ -434,11 +461,22 @@
+ bool "Atmel AT91SAM9M10-EKES Evaluation Kit"
+ depends on ARCH_AT91SAM9M10
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
+ help
+ Select this if you are using Atmel's AT91SAM9M10-EKES Evaluation Kit.
+ "ES" at the end of the name means that this board is an
+ Engineering Sample.
+
++config MACH_AT91SAM9M10G45EK
++ bool "Atmel AT91SAM9M10G45-EK Evaluation Kit"
++ depends on ARCH_AT91SAM9M10
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
++ help
++ Select this if you are using Atmel's AT91SAM9M10G45-EK Evaluation Kit.
++ "ES2" at the end of the name means that this board is an
++ Engineering Sample.
++
+ endif
+
+ # ----------------------------------------------------------
+@@ -451,6 +489,8 @@
+ bool "Atmel AT91CAP9A-DK Evaluation Kit"
+ depends on ARCH_AT91CAP9
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Atmel's AT91CAP9A-DK Evaluation Kit.
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4138>
+@@ -467,6 +507,8 @@
+ bool "AT572D940HF-EK"
+ depends on ARCH_AT572D940HF
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Atmel's AT572D940HF-EK evaluation kit.
+ <http://www.atmel.com/products/diopsis/default.asp>
+@@ -495,17 +537,23 @@
+
+ config MTD_AT91_DATAFLASH_CARD
+ bool "Enable DataFlash Card support"
+- depends on (ARCH_AT91RM9200DK || MACH_AT91RM9200EK || MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_ECBAT91 || MACH_SAM9_L9260 || MACH_AT91CAP9ADK || MACH_AT572D940HFEB || MACH_TOTEMNOVA || MACH_NEOCORE926)
++ depends on MTD_ALLOW_DATAFLASHCARD
+ help
+ Enable support for the DataFlash card.
+
++config MTD_ALLOW_DATAFLASHCARD
++ bool
++
+ config MTD_NAND_ATMEL_BUSWIDTH_16
+ bool "Enable 16-bit data bus interface to NAND flash"
+- depends on (MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_AT91SAM9G20EK_2MMC || MACH_AT91SAM9G45EKES || MACH_AT91CAP9ADK || MACH_AT572D940HFEB)
++ depends on MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
+ help
+ On AT91SAM926x boards both types of NAND flash can be present
+ (8 and 16 bit data bus width).
+
++config MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
++ bool
++
+ config MTD_NAND_ATMEL_ROOTFS_SIZE
+ int "Size NAND rootfs in MB"
+ range 8 250
diff --git a/recipes/linux/linux-2.6.30/at91/exp.2/linux-2.6.30-003-sam9m10g45ek.patch b/recipes/linux/linux-2.6.30/at91/exp.2/linux-2.6.30-003-sam9m10g45ek.patch
new file mode 100644
index 0000000000..05a81bffc7
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/at91/exp.2/linux-2.6.30-003-sam9m10g45ek.patch
@@ -0,0 +1,29 @@
+diff -urN linux-2.6.30-0rig/arch/arm/mach-at91/board-sam9m10g45ek.c linux-2.6.30/arch/arm/mach-at91/board-sam9m10g45ek.c
+--- linux-2.6.30-0rig/arch/arm/mach-at91/board-sam9m10g45ek.c 2010-03-14 11:41:36.000000000 +0100
++++ linux-2.6.30/arch/arm/mach-at91/board-sam9m10g45ek.c 2010-03-14 12:07:05.000000000 +0100
+@@ -432,9 +432,13 @@
+
+ #if defined(CONFIG_MACH_AT91SAM9G45EKES)
+ MACHINE_START(AT91SAM9G45EKES, "Atmel AT91SAM9G45-EKES")
+-#else
++#endif
++#if defined(CONFIG_MACH_AT91SAM9M10EKES)
+ MACHINE_START(AT91SAM9M10EKES, "Atmel AT91SAM9M10-EKES")
+ #endif
++#if defined(CONFIG_MACH_AT91SAM9M10G45EK)
++MACHINE_START(AT91SAM9M10G45EK, "Atmel AT91SAM9M10G45-EK")
++#endif
+ /* Maintainer: Atmel */
+ .phys_io = AT91_BASE_SYS,
+ .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc,
+diff -urN linux-2.6.30-0rig/arch/arm/mach-at91/Makefile linux-2.6.30/arch/arm/mach-at91/Makefile
+--- linux-2.6.30-0rig/arch/arm/mach-at91/Makefile 2010-03-14 11:13:34.000000000 +0100
++++ linux-2.6.30/arch/arm/mach-at91/Makefile 2010-03-14 12:08:01.000000000 +0100
+@@ -74,6 +74,7 @@
+ # AT91SAM9G45 board-specific support
+ obj-$(CONFIG_MACH_AT91SAM9G45EKES) += board-sam9m10g45ek.o
+ obj-$(CONFIG_MACH_AT91SAM9M10EKES) += board-sam9m10g45ek.o
++obj-$(CONFIG_MACH_AT91SAM9M10G45EK) += board-sam9m10g45ek.o
+
+ # AT91CAP9 board-specific support
+ obj-$(CONFIG_MACH_AT91CAP9ADK) += board-cap9adk.o
diff --git a/recipes/linux/linux-2.6.30/at91/exp.4/0001-Configurable-partition-size.patch b/recipes/linux/linux-2.6.30/at91/exp.4/0001-Configurable-partition-size.patch
new file mode 100644
index 0000000000..d384e5ca94
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/at91/exp.4/0001-Configurable-partition-size.patch
@@ -0,0 +1,403 @@
+From ed00f95d313707ff049d8a2edd283d5496a85cbf Mon Sep 17 00:00:00 2001
+From: Ulf Samuelsson <ulf.samuelsson@atmel.com>
+Date: Wed, 26 Jan 2011 09:21:10 +0100
+Subject: [PATCH 1/2] Configurable partition size
+
+---
+ arch/arm/mach-at91/Kconfig | 31 ++++++++++++++++++++++++
+ arch/arm/mach-at91/board-at572d940hf_ek.c | 16 ++++++++++--
+ arch/arm/mach-at91/board-cap9adk.c | 14 +++++++++-
+ arch/arm/mach-at91/board-dk.c | 14 +++++++++-
+ arch/arm/mach-at91/board-sam9260ek.c | 13 +++++++---
+ arch/arm/mach-at91/board-sam9261ek.c | 13 +++++++---
+ arch/arm/mach-at91/board-sam9263ek.c | 13 +++++++---
+ arch/arm/mach-at91/board-sam9g20ek-2slot-mmc.c | 6 ++--
+ arch/arm/mach-at91/board-sam9g20ek.c | 6 ++--
+ arch/arm/mach-at91/board-sam9m10g45ek.c | 13 +++++++---
+ arch/arm/mach-at91/board-sam9rlek.c | 13 +++++++---
+ 11 files changed, 119 insertions(+), 33 deletions(-)
+
+diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
+index 17e09cb..46d1926 100644
+--- a/arch/arm/mach-at91/Kconfig
++++ b/arch/arm/mach-at91/Kconfig
+@@ -96,6 +96,7 @@ config MACH_ONEARM
+ config ARCH_AT91RM9200DK
+ bool "Atmel AT91RM9200-DK Development board"
+ depends on ARCH_AT91RM9200
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91RM9200-DK Development board.
+ (Discontinued)
+@@ -213,6 +214,7 @@ comment "AT91SAM9260 / AT91SAM9XE Board Type"
+ config MACH_AT91SAM9260EK
+ bool "Atmel AT91SAM9260-EK / AT91SAM9XE Evaluation Kit"
+ depends on ARCH_AT91SAM9260
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91SAM9260-EK or AT91SAM9XE Evaluation Kit
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3933>
+@@ -278,6 +280,7 @@ comment "AT91SAM9261 Board Type"
+ config MACH_AT91SAM9261EK
+ bool "Atmel AT91SAM9261-EK Evaluation Kit"
+ depends on ARCH_AT91SAM9261
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91SAM9261-EK Evaluation Kit.
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3820>
+@@ -293,6 +296,7 @@ comment "AT91SAM9G10 Board Type"
+ config MACH_AT91SAM9G10EK
+ bool "Atmel AT91SAM9G10-EK Evaluation Kit"
+ depends on ARCH_AT91SAM9G10
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91SAM9G10-EK Evaluation Kit.
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4588>
+@@ -308,6 +312,7 @@ comment "AT91SAM9263 Board Type"
+ config MACH_AT91SAM9263EK
+ bool "Atmel AT91SAM9263-EK Evaluation Kit"
+ depends on ARCH_AT91SAM9263
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91SAM9263-EK Evaluation Kit.
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4057>
+@@ -350,6 +355,7 @@ comment "AT91SAM9RL Board Type"
+ config MACH_AT91SAM9RLEK
+ bool "Atmel AT91SAM9RL-EK Evaluation Kit"
+ depends on ARCH_AT91SAM9RL
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91SAM9RL-EK Evaluation Kit.
+
+@@ -364,6 +370,7 @@ comment "AT91SAM9G20 Board Type"
+ config MACH_AT91SAM9G20EK
+ bool "Atmel AT91SAM9G20-EK Evaluation Kit"
+ depends on ARCH_AT91SAM9G20
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91SAM9G20-EK Evaluation Kit
+ that embeds only one SD/MMC slot.
+@@ -371,6 +378,7 @@ config MACH_AT91SAM9G20EK
+ config MACH_AT91SAM9G20EK_2MMC
+ bool "Atmel AT91SAM9G20-EK Evaluation Kit with 2 SD/MMC Slots"
+ depends on ARCH_AT91SAM9G20
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using an Atmel AT91SAM9G20-EK Evaluation Kit
+ with 2 SD/MMC Slots. This is the case for AT91SAM9G20-EK rev. C and
+@@ -408,6 +416,7 @@ comment "AT91SAM9G45 Board Type"
+ config MACH_AT91SAM9G45EKES
+ bool "Atmel AT91SAM9G45-EKES Evaluation Kit"
+ depends on ARCH_AT91SAM9G45
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91SAM9G45-EKES Evaluation Kit.
+ "ES" at the end of the name means that this board is an
+@@ -426,6 +435,7 @@ choice
+
+ config MACH_AT91SAM9M10EKES
+ bool "Atmel AT91SAM9M10-EKES Evaluation Kit"
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91SAM9M10-EKES Evaluation Kit.
+ "ES" at the end of the name means that this board is an
+@@ -433,6 +443,7 @@ config MACH_AT91SAM9M10EKES
+
+ config MACH_AT91SAM9M10G45EK
+ bool "Atmel AT91SAM9M10G45-EK Evaluation Kit"
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91SAM9M10G45-EK Evaluation Kit.
+ <http://atmel.com/dyn/products/tools_card_v2.asp?tool_id=4735>
+@@ -450,6 +461,7 @@ comment "AT91CAP9 Board Type"
+ config MACH_AT91CAP9ADK
+ bool "Atmel AT91CAP9A-DK Evaluation Kit"
+ depends on ARCH_AT91CAP9
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT91CAP9A-DK Evaluation Kit.
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4138>
+@@ -465,6 +477,7 @@ comment "AT572D940HF Board Type"
+ config MACH_AT572D940HFEB
+ bool "AT572D940HF-EK"
+ depends on ARCH_AT572D940HF
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
+ help
+ Select this if you are using Atmel's AT572D940HF-EK evaluation kit.
+ <http://www.atmel.com/products/diopsis/default.asp>
+@@ -504,6 +517,24 @@ config MTD_NAND_ATMEL_BUSWIDTH_16
+ On AT91SAM926x boards both types of NAND flash can be present
+ (8 and 16 bit data bus width).
+
++config MTD_NAND_ATMEL_ROOTFS_SIZE
++ int "Size NAND rootfs in MB"
++ range 8 250
++ depends on MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ default "124"
++ help
++ Many Atmel development boards has a NAND Flash,
++ divided into three partitions.
++ 1) Boot partition (4 MB)
++ 2) Root FS
++ 3) Data partition
++ This allows you to configure the size of the root fs
++ with the remainder ending up in the data partition.
++ The legal values are between 8 and 250
++
++config MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ bool
++
+ # ----------------------------------------------------------
+
+ comment "AT91 Feature Selections"
+diff --git a/arch/arm/mach-at91/board-at572d940hf_ek.c b/arch/arm/mach-at91/board-at572d940hf_ek.c
+index f5bd486..171d675 100644
+--- a/arch/arm/mach-at91/board-at572d940hf_ek.c
++++ b/arch/arm/mach-at91/board-at572d940hf_ek.c
+@@ -114,10 +114,20 @@ static struct at91_eth_data __initdata eb_eth_data = {
+ */
+ static struct mtd_partition __initdata eb_nand_partition[] = {
+ {
+- .name = "Partition 1",
+- .offset = 0,
++ .name = "Bootstrap",
++ .offset = 0,
++ .size = 4 * SZ_1M,
++ },
++ {
++ .name = "Root File System",
++ .offset = MTDPART_OFS_NXTBLK,
++ .size = CONFIG_MTD_NAND_ATMEL_ROOTFS_SIZE * SZ_1M,
++ },
++ {
++ .name = "Data",
++ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+- }
++ },
+ };
+
+ static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
+diff --git a/arch/arm/mach-at91/board-cap9adk.c b/arch/arm/mach-at91/board-cap9adk.c
+index 52f75c6..de9f921 100644
+--- a/arch/arm/mach-at91/board-cap9adk.c
++++ b/arch/arm/mach-at91/board-cap9adk.c
+@@ -167,8 +167,18 @@ static struct at91_eth_data __initdata cap9adk_macb_data = {
+ */
+ static struct mtd_partition __initdata cap9adk_nand_partitions[] = {
+ {
+- .name = "NAND partition",
+- .offset = 0,
++ .name = "Bootstrap",
++ .offset = 0,
++ .size = 4 * SZ_1M,
++ },
++ {
++ .name = "Root File System",
++ .offset = MTDPART_OFS_NXTBLK,
++ .size = CONFIG_MTD_NAND_ATMEL_ROOTFS_SIZE * SZ_1M,
++ },
++ {
++ .name = "Data",
++ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+ },
+ };
+diff --git a/arch/arm/mach-at91/board-dk.c b/arch/arm/mach-at91/board-dk.c
+index 3efca21..b521503 100644
+--- a/arch/arm/mach-at91/board-dk.c
++++ b/arch/arm/mach-at91/board-dk.c
+@@ -314,8 +314,18 @@ static struct i2c_board_info __initdata dk_i2c_devices[] = {
+
+ static struct mtd_partition __initdata dk_nand_partition[] = {
+ {
+- .name = "NAND Partition 1",
+- .offset = 0,
++ .name = "Bootstrap",
++ .offset = 0,
++ .size = 4 * SZ_1M,
++ },
++ {
++ .name = "Root File System",
++ .offset = MTDPART_OFS_NXTBLK,
++ .size = CONFIG_MTD_NAND_ATMEL_ROOTFS_SIZE * SZ_1M,
++ },
++ {
++ .name = "Data",
++ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+ },
+ };
+diff --git a/arch/arm/mach-at91/board-sam9260ek.c b/arch/arm/mach-at91/board-sam9260ek.c
+index e6cab50..c098216 100644
+--- a/arch/arm/mach-at91/board-sam9260ek.c
++++ b/arch/arm/mach-at91/board-sam9260ek.c
+@@ -177,12 +177,17 @@ static struct at91_eth_data __initdata ek_macb_data = {
+ */
+ static struct mtd_partition __initdata ek_nand_partition[] = {
+ {
+- .name = "Partition 1",
+- .offset = 0,
+- .size = SZ_256K,
++ .name = "Bootstrap",
++ .offset = 0,
++ .size = 4 * SZ_1M,
+ },
+ {
+- .name = "Partition 2",
++ .name = "Root File System",
++ .offset = MTDPART_OFS_NXTBLK,
++ .size = CONFIG_MTD_NAND_ATMEL_ROOTFS_SIZE * SZ_1M,
++ },
++ {
++ .name = "Data",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+ },
+diff --git a/arch/arm/mach-at91/board-sam9261ek.c b/arch/arm/mach-at91/board-sam9261ek.c
+index 8bcd631..66cd246 100644
+--- a/arch/arm/mach-at91/board-sam9261ek.c
++++ b/arch/arm/mach-at91/board-sam9261ek.c
+@@ -184,12 +184,17 @@ static struct at91_mmc_data __initdata ek_mmc_data = {
+ */
+ static struct mtd_partition __initdata ek_nand_partition[] = {
+ {
+- .name = "Partition 1",
+- .offset = 0,
+- .size = SZ_256K,
++ .name = "Bootstrap",
++ .offset = 0,
++ .size = 4 * SZ_1M,
+ },
+ {
+- .name = "Partition 2",
++ .name = "Root File System",
++ .offset = MTDPART_OFS_NXTBLK,
++ .size = CONFIG_MTD_NAND_ATMEL_ROOTFS_SIZE * SZ_1M,
++ },
++ {
++ .name = "Data",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+ },
+diff --git a/arch/arm/mach-at91/board-sam9263ek.c b/arch/arm/mach-at91/board-sam9263ek.c
+index 7cbec96..f3ad0f4 100644
+--- a/arch/arm/mach-at91/board-sam9263ek.c
++++ b/arch/arm/mach-at91/board-sam9263ek.c
+@@ -174,12 +174,17 @@ static struct at91_eth_data __initdata ek_macb_data = {
+ */
+ static struct mtd_partition __initdata ek_nand_partition[] = {
+ {
+- .name = "Partition 1",
+- .offset = 0,
+- .size = SZ_64M,
++ .name = "Bootstrap",
++ .offset = 0,
++ .size = 4 * SZ_1M,
+ },
+ {
+- .name = "Partition 2",
++ .name = "Root File System",
++ .offset = MTDPART_OFS_NXTBLK,
++ .size = CONFIG_MTD_NAND_ATMEL_ROOTFS_SIZE * SZ_1M,
++ },
++ {
++ .name = "Data",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+ },
+diff --git a/arch/arm/mach-at91/board-sam9g20ek-2slot-mmc.c b/arch/arm/mach-at91/board-sam9g20ek-2slot-mmc.c
+index 4061d82..51b3008 100644
+--- a/arch/arm/mach-at91/board-sam9g20ek-2slot-mmc.c
++++ b/arch/arm/mach-at91/board-sam9g20ek-2slot-mmc.c
+@@ -130,12 +130,12 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
+ .size = 4 * SZ_1M,
+ },
+ {
+- .name = "Partition 1",
++ .name = "Root File System",
+ .offset = MTDPART_OFS_NXTBLK,
+- .size = 60 * SZ_1M,
++ .size = CONFIG_MTD_NAND_ATMEL_ROOTFS_SIZE * SZ_1M,
+ },
+ {
+- .name = "Partition 2",
++ .name = "Data",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+ },
+diff --git a/arch/arm/mach-at91/board-sam9g20ek.c b/arch/arm/mach-at91/board-sam9g20ek.c
+index b2117b9..811dd09 100644
+--- a/arch/arm/mach-at91/board-sam9g20ek.c
++++ b/arch/arm/mach-at91/board-sam9g20ek.c
+@@ -129,12 +129,12 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
+ .size = 4 * SZ_1M,
+ },
+ {
+- .name = "Partition 1",
++ .name = "Root File System",
+ .offset = MTDPART_OFS_NXTBLK,
+- .size = 60 * SZ_1M,
++ .size = CONFIG_MTD_NAND_ATMEL_ROOTFS_SIZE * SZ_1M,
+ },
+ {
+- .name = "Partition 2",
++ .name = "Data",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+ },
+diff --git a/arch/arm/mach-at91/board-sam9m10g45ek.c b/arch/arm/mach-at91/board-sam9m10g45ek.c
+index 0277e6b..6f5d02a 100644
+--- a/arch/arm/mach-at91/board-sam9m10g45ek.c
++++ b/arch/arm/mach-at91/board-sam9m10g45ek.c
+@@ -134,12 +134,17 @@ static struct at91_eth_data __initdata ek_macb_data = {
+ */
+ static struct mtd_partition __initdata ek_nand_partition[] = {
+ {
+- .name = "Partition 1",
+- .offset = 0,
+- .size = SZ_64M,
++ .name = "Bootstrap",
++ .offset = 0,
++ .size = 4 * SZ_1M,
+ },
+ {
+- .name = "Partition 2",
++ .name = "Root File System",
++ .offset = MTDPART_OFS_NXTBLK,
++ .size = CONFIG_MTD_NAND_ATMEL_ROOTFS_SIZE * SZ_1M,
++ },
++ {
++ .name = "Data",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+ },
+diff --git a/arch/arm/mach-at91/board-sam9rlek.c b/arch/arm/mach-at91/board-sam9rlek.c
+index 23e6546..07f0c03 100644
+--- a/arch/arm/mach-at91/board-sam9rlek.c
++++ b/arch/arm/mach-at91/board-sam9rlek.c
+@@ -83,12 +83,17 @@ static struct at91_mmc_data __initdata ek_mmc_data = {
+ */
+ static struct mtd_partition __initdata ek_nand_partition[] = {
+ {
+- .name = "Partition 1",
+- .offset = 0,
+- .size = SZ_256K,
++ .name = "Bootstrap",
++ .offset = 0,
++ .size = 4 * SZ_1M,
+ },
+ {
+- .name = "Partition 2",
++ .name = "Root File System",
++ .offset = MTDPART_OFS_NXTBLK,
++ .size = CONFIG_MTD_NAND_ATMEL_ROOTFS_SIZE * SZ_1M,
++ },
++ {
++ .name = "Data",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL,
+ },
+--
+1.7.1
+
diff --git a/recipes/linux/linux-2.6.30/at91/exp.4/0002-mach-at91-KConfig-cleanup.patch b/recipes/linux/linux-2.6.30/at91/exp.4/0002-mach-at91-KConfig-cleanup.patch
new file mode 100644
index 0000000000..a58008cb1e
--- /dev/null
+++ b/recipes/linux/linux-2.6.30/at91/exp.4/0002-mach-at91-KConfig-cleanup.patch
@@ -0,0 +1,202 @@
+From 13d462c45ddcb46e6a7de700ee9b6eaafdb0a728 Mon Sep 17 00:00:00 2001
+From: Ulf Samuelsson <ulf.samuelsson@atmel.com>
+Date: Wed, 26 Jan 2011 09:34:00 +0100
+Subject: [PATCH 2/2] mach-at91 KConfig cleanup
+
+---
+ arch/arm/mach-at91/Kconfig | 45 +++++++++++++++++++++++++++++++++++++++++--
+ 1 files changed, 42 insertions(+), 3 deletions(-)
+
+diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
+index 46d1926..3ff11ab 100644
+--- a/arch/arm/mach-at91/Kconfig
++++ b/arch/arm/mach-at91/Kconfig
+@@ -97,6 +97,7 @@ config ARCH_AT91RM9200DK
+ bool "Atmel AT91RM9200-DK Development board"
+ depends on ARCH_AT91RM9200
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Atmel's AT91RM9200-DK Development board.
+ (Discontinued)
+@@ -104,6 +105,7 @@ config ARCH_AT91RM9200DK
+ config MACH_AT91RM9200EK
+ bool "Atmel AT91RM9200-EK Evaluation Kit"
+ depends on ARCH_AT91RM9200
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Atmel's AT91RM9200-EK Evaluation Kit.
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3507>
+@@ -172,6 +174,7 @@ config MACH_HOMEMATIC
+ config MACH_ECBAT91
+ bool "emQbit ECB_AT91 SBC"
+ depends on ARCH_AT91RM9200
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using emQbit's ECB_AT91 board.
+ <http://wiki.emqbit.com/free-ecb-at91>
+@@ -215,6 +218,8 @@ config MACH_AT91SAM9260EK
+ bool "Atmel AT91SAM9260-EK / AT91SAM9XE Evaluation Kit"
+ depends on ARCH_AT91SAM9260
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Atmel's AT91SAM9260-EK or AT91SAM9XE Evaluation Kit
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3933>
+@@ -229,6 +234,7 @@ config MACH_CAM60
+ config MACH_SAM9_L9260
+ bool "Olimex SAM9-L9260 board"
+ depends on ARCH_AT91SAM9260
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Olimex's SAM9-L9260 board based on the Atmel AT91SAM9260.
+ <http://www.olimex.com/dev/sam9-L9260.html>
+@@ -281,6 +287,8 @@ config MACH_AT91SAM9261EK
+ bool "Atmel AT91SAM9261-EK Evaluation Kit"
+ depends on ARCH_AT91SAM9261
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Atmel's AT91SAM9261-EK Evaluation Kit.
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3820>
+@@ -297,6 +305,8 @@ config MACH_AT91SAM9G10EK
+ bool "Atmel AT91SAM9G10-EK Evaluation Kit"
+ depends on ARCH_AT91SAM9G10
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Atmel's AT91SAM9G10-EK Evaluation Kit.
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4588>
+@@ -313,6 +323,8 @@ config MACH_AT91SAM9263EK
+ bool "Atmel AT91SAM9263-EK Evaluation Kit"
+ depends on ARCH_AT91SAM9263
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Atmel's AT91SAM9263-EK Evaluation Kit.
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4057>
+@@ -334,6 +346,7 @@ config MACH_CSB737
+ config MACH_TOTEMNOVA
+ bool "TotemNova Micronova industrial supervisor"
+ depends on ARCH_AT91SAM9263
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Micronova's TotemNova industrial supervisor
+ <http://www.micronovasrl.com>
+@@ -341,6 +354,7 @@ config MACH_TOTEMNOVA
+ config MACH_NEOCORE926
+ bool "Adeneo NEOCORE926"
+ depends on ARCH_AT91SAM9263
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using the Adeneo Neocore 926 board.
+
+@@ -371,6 +385,8 @@ config MACH_AT91SAM9G20EK
+ bool "Atmel AT91SAM9G20-EK Evaluation Kit"
+ depends on ARCH_AT91SAM9G20
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Atmel's AT91SAM9G20-EK Evaluation Kit
+ that embeds only one SD/MMC slot.
+@@ -379,6 +395,7 @@ config MACH_AT91SAM9G20EK_2MMC
+ bool "Atmel AT91SAM9G20-EK Evaluation Kit with 2 SD/MMC Slots"
+ depends on ARCH_AT91SAM9G20
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
+ help
+ Select this if you are using an Atmel AT91SAM9G20-EK Evaluation Kit
+ with 2 SD/MMC Slots. This is the case for AT91SAM9G20-EK rev. C and
+@@ -417,13 +434,23 @@ config MACH_AT91SAM9G45EKES
+ bool "Atmel AT91SAM9G45-EKES Evaluation Kit"
+ depends on ARCH_AT91SAM9G45
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
+ help
+ Select this if you are using Atmel's AT91SAM9G45-EKES Evaluation Kit.
+ "ES" at the end of the name means that this board is an
+ Engineering Sample.
+
+-endif
++config MACH_AT91SAM9M10G45EK
++ bool "Atmel AT91SAM9M10G45-EK Evaluation Kit"
++ depends on ARCH_AT91SAM9G45
++ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
++ help
++ Select this if you are using Atmel's AT91SAM9M10G45-EK Evaluation Kit.
++ "ES2" at the end of the name means that this board is an
++ Engineering Sample.
+
++endif
+ # ----------------------------------------------------------
+
+ if ARCH_AT91SAM9M10
+@@ -436,6 +463,7 @@ choice
+ config MACH_AT91SAM9M10EKES
+ bool "Atmel AT91SAM9M10-EKES Evaluation Kit"
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
+ help
+ Select this if you are using Atmel's AT91SAM9M10-EKES Evaluation Kit.
+ "ES" at the end of the name means that this board is an
+@@ -444,6 +472,7 @@ config MACH_AT91SAM9M10EKES
+ config MACH_AT91SAM9M10G45EK
+ bool "Atmel AT91SAM9M10G45-EK Evaluation Kit"
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
+ help
+ Select this if you are using Atmel's AT91SAM9M10G45-EK Evaluation Kit.
+ <http://atmel.com/dyn/products/tools_card_v2.asp?tool_id=4735>
+@@ -462,6 +491,8 @@ config MACH_AT91CAP9ADK
+ bool "Atmel AT91CAP9A-DK Evaluation Kit"
+ depends on ARCH_AT91CAP9
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Atmel's AT91CAP9A-DK Evaluation Kit.
+ <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4138>
+@@ -478,6 +509,8 @@ config MACH_AT572D940HFEB
+ bool "AT572D940HF-EK"
+ depends on ARCH_AT572D940HF
+ select MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE
++ select MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
++ select MTD_ALLOW_DATAFLASHCARD
+ help
+ Select this if you are using Atmel's AT572D940HF-EK evaluation kit.
+ <http://www.atmel.com/products/diopsis/default.asp>
+@@ -506,17 +539,23 @@ comment "AT91 Board Options"
+
+ config MTD_AT91_DATAFLASH_CARD
+ bool "Enable DataFlash Card support"
+- depends on (ARCH_AT91RM9200DK || MACH_AT91RM9200EK || MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_ECBAT91 || MACH_SAM9_L9260 || MACH_AT91CAP9ADK || MACH_AT572D940HFEB || MACH_TOTEMNOVA || MACH_NEOCORE926)
++ depends on MTD_ALLOW_DATAFLASHCARD
+ help
+ Enable support for the DataFlash card.
+
++config MTD_ALLOW_DATAFLASHCARD
++ bool
++
+ config MTD_NAND_ATMEL_BUSWIDTH_16
+ bool "Enable 16-bit data bus interface to NAND flash"
+- depends on (MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK || MACH_AT91SAM9263EK || MACH_AT91SAM9G20EK || MACH_AT91SAM9G20EK_2MMC || MACH_AT91SAM9G45EKES || MACH_AT91SAM9M10EKES || MACH_AT91SAM9M10G45EK || MACH_AT91CAP9ADK || MACH_AT572D940HFEB)
++ depends on MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
+ help
+ On AT91SAM926x boards both types of NAND flash can be present
+ (8 and 16 bit data bus width).
+
++config MTD_NAND_ALLOW_CONFIGURABLE_NAND_BUSWIDTH
++ bool
++
+ config MTD_NAND_ATMEL_ROOTFS_SIZE
+ int "Size NAND rootfs in MB"
+ range 8 250
+--
+1.7.1
+