summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlf Samuelsson <ulf.samuelsson@atmel.com>2010-01-15 19:50:26 +0100
committerUlf Samuelsson <ulf.samuelsson@atmel.com>2010-01-15 19:50:26 +0100
commit7ebc3015cb766f7a7ea78f539e4bc8f17dd999c1 (patch)
tree0cec594dbd6a69d0e999e0dabee02f942c2c2b2e
parent48c47f275e1ca11fd64aa8f3c032305003c4eab8 (diff)
From: Ulf Samuelsson <ulf.samuelsson@atmel.com>
Add Linux-2.6.32 recipe for AT91SAM9G45EK. Two patches are included. 1) Patch which will allow the NAND flash partitioning to be configurable 2) Patch which will fix reset for SAM9260, not needed for SAM9G45 though Signed-off-by: Ulf Samuelsson <ulf.samuelsson@atmel.com> ---
-rw-r--r--recipes/linux/linux-2.6.32/at91/SRC_URI_append.inc9
-rw-r--r--recipes/linux/linux-2.6.32/at91/linux-2.6.32-001-configurable-nand-partitions.patch508
-rw-r--r--recipes/linux/linux-2.6.32/at91/linux-2.6.32-002-sam9g20-proper-reset.patch103
-rw-r--r--recipes/linux/linux-2.6.32/at91sam9g45ek/defconfig1758
4 files changed, 2378 insertions, 0 deletions
diff --git a/recipes/linux/linux-2.6.32/at91/SRC_URI_append.inc b/recipes/linux/linux-2.6.32/at91/SRC_URI_append.inc
new file mode 100644
index 0000000000..ce18159162
--- /dev/null
+++ b/recipes/linux/linux-2.6.32/at91/SRC_URI_append.inc
@@ -0,0 +1,9 @@
+# Automatically generated from gnome script: "SRC_URI_append_linux"
+
+SRC_URI_append += "\
+ file://recipes/linux/linux-2.6.32/patch-sets/linux-2.6.32-001-configurable-nand-partitions.patch;patch=1 \
+ file://recipes/linux/linux-2.6.32/patch-sets/linux-2.6.32-002-sam9g20-proper-reset.patch;patch=1 \
+ "
+
+# no board directory=recipes/linux/linux-2.6.32/boards
+
diff --git a/recipes/linux/linux-2.6.32/at91/linux-2.6.32-001-configurable-nand-partitions.patch b/recipes/linux/linux-2.6.32/at91/linux-2.6.32-001-configurable-nand-partitions.patch
new file mode 100644
index 0000000000..3823bdd47b
--- /dev/null
+++ b/recipes/linux/linux-2.6.32/at91/linux-2.6.32-001-configurable-nand-partitions.patch
@@ -0,0 +1,508 @@
+This patch modifies the NAND partitions of Atmel SAM9 Evaluation Kits.
+The size of the System partition is configured using KConfig
+
+The new partition sizes is will become
+
+Bootstrap partition: 4MB
+System partition: Programmable Size (default 124 MB)
+Data partition: Rest of NAND flash
+
+It modifies the following Atmel SAM9 development boards.
+
+* cap9adk
+* sam9260ek
+* sam9261ek
+* sam9263ek
+* sam9g20ek-2slot-mmc
+* sam9g20ek
+* sam9m10g45ek
+* sam9rlek
+
+The KConfig configuration is implemented so that each board supporting
+this function selects "MTD_NAND_ALLOW_CONFIGURABLE_ROOTFS_SIZE".
+which enables the MTD_NAND_ATMEL_ROOTFS_SIZE configuration item.
+
+Signed-off-by: Ulf Samuelsson <ulf.samuelsson@atmel.com>
+diff -urN linux-2.6.32-0rig/arch/arm/mach-at91/at91_nand_partitions.h linux-2.6.32/arch/arm/mach-at91/at91_nand_partitions.h
+--- linux-2.6.32-0rig/arch/arm/mach-at91/at91_nand_partitions.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.32/arch/arm/mach-at91/at91_nand_partitions.h 2009-12-13 11:32:51.000000000 +0100
+@@ -0,0 +1,45 @@
++/*
++ * linux/arch/arm/mach-at91/at91_nand_partitions.h
++ *
++ * Copyright (C) 2005 SAN People
++ * Copyright (C) 2006 Atmel
++ * Copyright (C) 2009 Ulf Samuelsson, Atmel
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ */
++
++
++/*
++ * NAND flash
++ */
++static struct mtd_partition __initdata at91_nand_partition[] = {
++ {
++ .name = "Bootstrap",
++ .offset = 0,
++ .size = 4 * SZ_1M,
++ },
++ {
++ .name = "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.32-0rig/arch/arm/mach-at91/board-cap9adk.c linux-2.6.32/arch/arm/mach-at91/board-cap9adk.c
+--- linux-2.6.32-0rig/arch/arm/mach-at91/board-cap9adk.c 2009-12-13 10:32:25.000000000 +0100
++++ linux-2.6.32/arch/arm/mach-at91/board-cap9adk.c 2009-12-13 11:35:57.000000000 +0100
+@@ -47,7 +47,7 @@
+
+ #include "sam9_smc.h"
+ #include "generic.h"
+-
++#include "at91_nand_partitions.h"
+
+ static void __init cap9adk_map_io(void)
+ {
+@@ -162,22 +162,10 @@
+ .is_rmii = 1,
+ };
+
+-
+-/*
+- * NAND flash
+- */
+-static struct mtd_partition __initdata cap9adk_nand_partitions[] = {
+- {
+- .name = "NAND partition",
+- .offset = 0,
+- .size = MTDPART_SIZ_FULL,
+- },
+-};
+-
+ static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
+ {
+- *num_partitions = ARRAY_SIZE(cap9adk_nand_partitions);
+- return cap9adk_nand_partitions;
++ *num_partitions = ARRAY_SIZE(at91_nand_partition);
++ return at91_nand_partition;
+ }
+
+ static struct atmel_nand_data __initdata cap9adk_nand_data = {
+diff -urN linux-2.6.32-0rig/arch/arm/mach-at91/board-sam9260ek.c linux-2.6.32/arch/arm/mach-at91/board-sam9260ek.c
+--- linux-2.6.32-0rig/arch/arm/mach-at91/board-sam9260ek.c 2009-12-13 10:32:25.000000000 +0100
++++ linux-2.6.32/arch/arm/mach-at91/board-sam9260ek.c 2009-12-13 11:35:21.000000000 +0100
+@@ -47,6 +47,7 @@
+
+ #include "sam9_smc.h"
+ #include "generic.h"
++#include "at91_nand_partitions.h"
+
+
+ static void __init ek_map_io(void)
+@@ -161,27 +162,10 @@
+ .is_rmii = 1,
+ };
+
+-
+-/*
+- * NAND flash
+- */
+-static struct mtd_partition __initdata ek_nand_partition[] = {
+- {
+- .name = "Partition 1",
+- .offset = 0,
+- .size = SZ_256K,
+- },
+- {
+- .name = "Partition 2",
+- .offset = MTDPART_OFS_NXTBLK,
+- .size = MTDPART_SIZ_FULL,
+- },
+-};
+-
+ static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
+ {
+- *num_partitions = ARRAY_SIZE(ek_nand_partition);
+- return ek_nand_partition;
++ *num_partitions = ARRAY_SIZE(at91_nand_partition);
++ return at91_nand_partition;
+ }
+
+ static struct atmel_nand_data __initdata ek_nand_data = {
+diff -urN linux-2.6.32-0rig/arch/arm/mach-at91/board-sam9261ek.c linux-2.6.32/arch/arm/mach-at91/board-sam9261ek.c
+--- linux-2.6.32-0rig/arch/arm/mach-at91/board-sam9261ek.c 2009-12-13 10:32:25.000000000 +0100
++++ linux-2.6.32/arch/arm/mach-at91/board-sam9261ek.c 2009-12-13 11:35:13.000000000 +0100
+@@ -51,6 +51,7 @@
+
+ #include "sam9_smc.h"
+ #include "generic.h"
++#include "at91_nand_partitions.h"
+
+
+ static void __init ek_map_io(void)
+@@ -177,27 +178,10 @@
+ // .vcc_pin = ... not connected
+ };
+
+-
+-/*
+- * NAND flash
+- */
+-static struct mtd_partition __initdata ek_nand_partition[] = {
+- {
+- .name = "Partition 1",
+- .offset = 0,
+- .size = SZ_256K,
+- },
+- {
+- .name = "Partition 2",
+- .offset = MTDPART_OFS_NXTBLK,
+- .size = MTDPART_SIZ_FULL,
+- },
+-};
+-
+ static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
+ {
+- *num_partitions = ARRAY_SIZE(ek_nand_partition);
+- return ek_nand_partition;
++ *num_partitions = ARRAY_SIZE(at91_nand_partition);
++ return at91_nand_partition;
+ }
+
+ static struct atmel_nand_data __initdata ek_nand_data = {
+diff -urN linux-2.6.32-0rig/arch/arm/mach-at91/board-sam9263ek.c linux-2.6.32/arch/arm/mach-at91/board-sam9263ek.c
+--- linux-2.6.32-0rig/arch/arm/mach-at91/board-sam9263ek.c 2009-12-13 10:32:25.000000000 +0100
++++ linux-2.6.32/arch/arm/mach-at91/board-sam9263ek.c 2009-12-13 11:34:43.000000000 +0100
+@@ -50,6 +50,7 @@
+
+ #include "sam9_smc.h"
+ #include "generic.h"
++#include "at91_nand_partitions.h"
+
+
+ static void __init ek_map_io(void)
+@@ -168,27 +169,10 @@
+ .is_rmii = 1,
+ };
+
+-
+-/*
+- * NAND flash
+- */
+-static struct mtd_partition __initdata ek_nand_partition[] = {
+- {
+- .name = "Partition 1",
+- .offset = 0,
+- .size = SZ_64M,
+- },
+- {
+- .name = "Partition 2",
+- .offset = MTDPART_OFS_NXTBLK,
+- .size = MTDPART_SIZ_FULL,
+- },
+-};
+-
+ static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
+ {
+- *num_partitions = ARRAY_SIZE(ek_nand_partition);
+- return ek_nand_partition;
++ *num_partitions = ARRAY_SIZE(at91_nand_partition);
++ return at91_nand_partition;
+ }
+
+ static struct atmel_nand_data __initdata ek_nand_data = {
+diff -urN linux-2.6.32-0rig/arch/arm/mach-at91/board-sam9g20ek-2slot-mmc.c linux-2.6.32/arch/arm/mach-at91/board-sam9g20ek-2slot-mmc.c
+--- linux-2.6.32-0rig/arch/arm/mach-at91/board-sam9g20ek-2slot-mmc.c 2009-12-13 10:32:25.000000000 +0100
++++ linux-2.6.32/arch/arm/mach-at91/board-sam9g20ek-2slot-mmc.c 2009-12-13 11:35:44.000000000 +0100
+@@ -42,6 +42,7 @@
+
+ #include "sam9_smc.h"
+ #include "generic.h"
++#include "at91_nand_partitions.h"
+
+
+ static void __init ek_map_io(void)
+@@ -117,32 +118,10 @@
+ .is_rmii = 1,
+ };
+
+-
+-/*
+- * NAND flash
+- */
+-static struct mtd_partition __initdata ek_nand_partition[] = {
+- {
+- .name = "Bootstrap",
+- .offset = 0,
+- .size = 4 * SZ_1M,
+- },
+- {
+- .name = "Partition 1",
+- .offset = MTDPART_OFS_NXTBLK,
+- .size = 60 * SZ_1M,
+- },
+- {
+- .name = "Partition 2",
+- .offset = MTDPART_OFS_NXTBLK,
+- .size = MTDPART_SIZ_FULL,
+- },
+-};
+-
+ static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
+ {
+- *num_partitions = ARRAY_SIZE(ek_nand_partition);
+- return ek_nand_partition;
++ *num_partitions = ARRAY_SIZE(at91_nand_partition);
++ return at91_nand_partition;
+ }
+
+ /* det_pin is not connected */
+diff -urN linux-2.6.32-0rig/arch/arm/mach-at91/board-sam9g20ek.c linux-2.6.32/arch/arm/mach-at91/board-sam9g20ek.c
+--- linux-2.6.32-0rig/arch/arm/mach-at91/board-sam9g20ek.c 2009-12-13 10:32:25.000000000 +0100
++++ linux-2.6.32/arch/arm/mach-at91/board-sam9g20ek.c 2009-12-13 11:35:50.000000000 +0100
+@@ -43,6 +43,7 @@
+
+ #include "sam9_smc.h"
+ #include "generic.h"
++#include "at91_nand_partitions.h"
+
+
+ static void __init ek_map_io(void)
+@@ -118,32 +119,10 @@
+ .is_rmii = 1,
+ };
+
+-
+-/*
+- * NAND flash
+- */
+-static struct mtd_partition __initdata ek_nand_partition[] = {
+- {
+- .name = "Bootstrap",
+- .offset = 0,
+- .size = 4 * SZ_1M,
+- },
+- {
+- .name = "Partition 1",
+- .offset = MTDPART_OFS_NXTBLK,
+- .size = 60 * SZ_1M,
+- },
+- {
+- .name = "Partition 2",
+- .offset = MTDPART_OFS_NXTBLK,
+- .size = MTDPART_SIZ_FULL,
+- },
+-};
+-
+ static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
+ {
+- *num_partitions = ARRAY_SIZE(ek_nand_partition);
+- return ek_nand_partition;
++ *num_partitions = ARRAY_SIZE(at91_nand_partition);
++ return at91_nand_partition;
+ }
+
+ /* det_pin is not connected */
+diff -urN linux-2.6.32-0rig/arch/arm/mach-at91/board-sam9m10g45ek.c linux-2.6.32/arch/arm/mach-at91/board-sam9m10g45ek.c
+--- linux-2.6.32-0rig/arch/arm/mach-at91/board-sam9m10g45ek.c 2009-12-13 10:32:25.000000000 +0100
++++ linux-2.6.32/arch/arm/mach-at91/board-sam9m10g45ek.c 2009-12-13 11:35:37.000000000 +0100
+@@ -44,6 +44,7 @@
+
+ #include "sam9_smc.h"
+ #include "generic.h"
++#include "at91_nand_partitions.h"
+
+
+ static void __init ek_map_io(void)
+@@ -106,27 +107,10 @@
+ .is_rmii = 1,
+ };
+
+-
+-/*
+- * NAND flash
+- */
+-static struct mtd_partition __initdata ek_nand_partition[] = {
+- {
+- .name = "Partition 1",
+- .offset = 0,
+- .size = SZ_64M,
+- },
+- {
+- .name = "Partition 2",
+- .offset = MTDPART_OFS_NXTBLK,
+- .size = MTDPART_SIZ_FULL,
+- },
+-};
+-
+ static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
+ {
+- *num_partitions = ARRAY_SIZE(ek_nand_partition);
+- return ek_nand_partition;
++ *num_partitions = ARRAY_SIZE(at91_nand_partition);
++ return at91_nand_partition;
+ }
+
+ /* det_pin is not connected */
+diff -urN linux-2.6.32-0rig/arch/arm/mach-at91/board-sam9rlek.c linux-2.6.32/arch/arm/mach-at91/board-sam9rlek.c
+--- linux-2.6.32-0rig/arch/arm/mach-at91/board-sam9rlek.c 2009-12-13 10:32:25.000000000 +0100
++++ linux-2.6.32/arch/arm/mach-at91/board-sam9rlek.c 2009-12-13 11:35:27.000000000 +0100
+@@ -36,6 +36,7 @@
+
+ #include "sam9_smc.h"
+ #include "generic.h"
++#include "at91_nand_partitions.h"
+
+
+ static void __init ek_map_io(void)
+@@ -77,27 +78,10 @@
+ // .vcc_pin = ... not connected
+ };
+
+-
+-/*
+- * NAND flash
+- */
+-static struct mtd_partition __initdata ek_nand_partition[] = {
+- {
+- .name = "Partition 1",
+- .offset = 0,
+- .size = SZ_256K,
+- },
+- {
+- .name = "Partition 2",
+- .offset = MTDPART_OFS_NXTBLK,
+- .size = MTDPART_SIZ_FULL,
+- },
+-};
+-
+ static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
+ {
+- *num_partitions = ARRAY_SIZE(ek_nand_partition);
+- return ek_nand_partition;
++ *num_partitions = ARRAY_SIZE(at91_nand_partition);
++ return at91_nand_partition;
+ }
+
+ static struct atmel_nand_data __initdata ek_nand_data = {
+diff -urN linux-2.6.32-0rig/arch/arm/mach-at91/Kconfig linux-2.6.32/arch/arm/mach-at91/Kconfig
+--- linux-2.6.32-0rig/arch/arm/mach-at91/Kconfig 2009-12-13 10:32:25.000000000 +0100
++++ linux-2.6.32/arch/arm/mach-at91/Kconfig 2009-12-13 11:01:29.000000000 +0100
+@@ -183,6 +183,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>
+@@ -242,6 +243,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>
+@@ -257,6 +259,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>
+@@ -272,6 +275,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>
+@@ -300,6 +304,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.
+
+@@ -314,6 +319,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.
+@@ -321,6 +327,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
+@@ -344,6 +351,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
+@@ -360,6 +368,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>
+@@ -399,6 +408,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.32/at91/linux-2.6.32-002-sam9g20-proper-reset.patch b/recipes/linux/linux-2.6.32/at91/linux-2.6.32-002-sam9g20-proper-reset.patch
new file mode 100644
index 0000000000..fb230cabab
--- /dev/null
+++ b/recipes/linux/linux-2.6.32/at91/linux-2.6.32-002-sam9g20-proper-reset.patch
@@ -0,0 +1,103 @@
+Fix AT91SAM9G20 reset as per the errata in the data sheet.
+
+If the SDRAM is not cleanly shutdown before reset it can be left driving
+the bus, which then stops the bootloader booting from NAND.
+
+Signed-off-by: Peter Horton <phorton@bitbox.co.uk>
+--
+
+Index: linux-2.6.32/arch/arm/mach-at91/Makefile
+===================================================================
+--- linux-2.6.32.orig/arch/arm/mach-at91/Makefile 2009-12-15 09:53:27.000000000 +0000
++++ linux-2.6.32/arch/arm/mach-at91/Makefile 2009-12-15 09:53:27.000000000 +0000
+@@ -16,7 +16,7 @@
+ obj-$(CONFIG_ARCH_AT91SAM9G10) += at91sam9261.o at91sam926x_time.o at91sam9261_devices.o sam9_smc.o
+ obj-$(CONFIG_ARCH_AT91SAM9263) += at91sam9263.o at91sam926x_time.o at91sam9263_devices.o sam9_smc.o
+ obj-$(CONFIG_ARCH_AT91SAM9RL) += at91sam9rl.o at91sam926x_time.o at91sam9rl_devices.o sam9_smc.o
+-obj-$(CONFIG_ARCH_AT91SAM9G20) += at91sam9260.o at91sam926x_time.o at91sam9260_devices.o sam9_smc.o
++obj-$(CONFIG_ARCH_AT91SAM9G20) += at91sam9260.o at91sam926x_time.o at91sam9260_devices.o sam9_smc.o at91sam9g20_reset.o
+ obj-$(CONFIG_ARCH_AT91SAM9G45) += at91sam9g45.o at91sam926x_time.o at91sam9g45_devices.o sam9_smc.o
+ obj-$(CONFIG_ARCH_AT91CAP9) += at91cap9.o at91sam926x_time.o at91cap9_devices.o sam9_smc.o
+ obj-$(CONFIG_ARCH_AT91X40) += at91x40.o at91x40_time.o
+Index: linux-2.6.32/arch/arm/mach-at91/at91sam9260.c
+===================================================================
+--- linux-2.6.32.orig/arch/arm/mach-at91/at91sam9260.c 2009-12-03 03:51:21.000000000 +0000
++++ linux-2.6.32/arch/arm/mach-at91/at91sam9260.c 2009-12-15 09:53:27.000000000 +0000
+@@ -25,6 +25,8 @@
+ #include "generic.h"
+ #include "clock.h"
+
++extern void at91sam9g20_reset(void);
++
+ static struct map_desc at91sam9260_io_desc[] __initdata = {
+ {
+ .virtual = AT91_VA_BASE_SYS,
+@@ -327,7 +329,11 @@
+ else
+ iotable_init(at91sam9260_sram_desc, ARRAY_SIZE(at91sam9260_sram_desc));
+
+- at91_arch_reset = at91sam9260_reset;
++ if (cpu_is_at91sam9g20())
++ at91_arch_reset = at91sam9g20_reset;
++ else
++ at91_arch_reset = at91sam9260_reset;
++
+ pm_power_off = at91sam9260_poweroff;
+ at91_extern_irq = (1 << AT91SAM9260_ID_IRQ0) | (1 << AT91SAM9260_ID_IRQ1)
+ | (1 << AT91SAM9260_ID_IRQ2);
+Index: linux-2.6.32/arch/arm/mach-at91/at91sam9g20_reset.S
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.32/arch/arm/mach-at91/at91sam9g20_reset.S 2009-12-15 09:55:17.000000000 +0000
+@@ -0,0 +1,50 @@
++/*
++ * (C) BitBox Ltd 2009
++ *
++ * reset AT91SAM9G20 as per errata
++ *
++ * unless the SDRAM is cleanly shutdown before we hit the
++ * reset register it can be left driving the data bus and
++ * killing the chance of a subsequent boot from NAND
++ */
++
++#define CP15_CR_I (1 << 12)
++
++#define SYS_VIRT_OFS (-0x01000000)
++
++#define SDRAMC_BASE (SYS_VIRT_OFS + 0xffffea00)
++#define SDRAMC_TR 0x0004
++#define SDRAMC_LPR 0x0010
++#define SDRAMC_LPCB_POWER_DOWN 2
++
++#define RSTC_BASE (SYS_VIRT_OFS + 0xfffffd00)
++#define RSTC_CR 0x0000
++#define RSTC_PROCRST (1 << 0)
++#define RSTC_PERRST (1 << 2)
++#define RSTC_KEY (0xa5 << 24)
++
++ .arm
++
++ .globl at91sam9g20_reset
++
++at91sam9g20_reset: mov r0, #0
++ mcr p15, 0, r0, c7, c5, 0 @ flush I-cache
++
++ mrc p15, 0, r0, c1, c0, 0
++ orr r0, r0, #CP15_CR_I
++ mcr p15, 0, r0, c1, c0, 0 @ enable I-cache
++
++ ldr r0, =SDRAMC_BASE @ preload constants
++ ldr r1, =RSTC_BASE
++
++ mov r2, #1
++ mov r3, #SDRAMC_LPCB_POWER_DOWN
++ ldr r4, =RSTC_KEY | RSTC_PERRST | RSTC_PROCRST
++
++ .balign 32 @ align to cache line
++
++ str r2, [r0, #SDRAMC_TR] @ disable SDRAM access
++ str r3, [r0, #SDRAMC_LPR] @ power down SDRAM
++ str r4, [r1, #RSTC_CR] @ reset processor
++
++ b .
+
diff --git a/recipes/linux/linux-2.6.32/at91sam9g45ek/defconfig b/recipes/linux/linux-2.6.32/at91sam9g45ek/defconfig
new file mode 100644
index 0000000000..2cd0c97e52
--- /dev/null
+++ b/recipes/linux/linux-2.6.32/at91sam9g45ek/defconfig
@@ -0,0 +1,1758 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.30.2
+# Fri Aug 7 23:23:37 2009
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_MMU=y
+# CONFIG_NO_IOPORT is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_CLASSIC_RCU=y
+# CONFIG_TREE_RCU is not set
+# CONFIG_PREEMPT_RCU is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_PREEMPT_RCU_TRACE is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_GROUP_SCHED is not set
+# CONFIG_CGROUPS is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
+CONFIG_NAMESPACES=y
+# CONFIG_UTS_NS is not set
+# CONFIG_IPC_NS is not set
+# CONFIG_USER_NS is not set
+# CONFIG_PID_NS is not set
+# CONFIG_NET_NS is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+# CONFIG_EMBEDDED is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+# CONFIG_STRIP_ASM_SYMS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_COMPAT_BRK=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_CLK=y
+# CONFIG_SLOW_WORK is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_IOSCHED_CFQ is not set
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+# CONFIG_FREEZER is not set
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+CONFIG_ARCH_AT91=y
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_LOKI is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_MMP is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_MSM is not set
+# CONFIG_ARCH_W90X900 is not set
+
+#
+# Atmel AT91 System-on-Chip
+#
+# CONFIG_ARCH_AT91RM9200 is not set
+# CONFIG_ARCH_AT91SAM9260 is not set
+# CONFIG_ARCH_AT91SAM9261 is not set
+# CONFIG_ARCH_AT91SAM9G10 is not set
+# CONFIG_ARCH_AT91SAM9263 is not set
+# CONFIG_ARCH_AT91SAM9RL is not set
+# CONFIG_ARCH_AT91SAM9G20 is not set
+CONFIG_ARCH_AT91SAM9G45=y
+# CONFIG_ARCH_AT91CAP9 is not set
+# CONFIG_ARCH_AT572D940HF is not set
+# CONFIG_ARCH_AT91X40 is not set
+CONFIG_AT91_PMC_UNIT=y
+
+#
+# AT91SAM9G45 Board Type
+#
+CONFIG_MACH_AT91SAM9G45EKES=y
+
+#
+# AT91 Board Options
+#
+
+#
+# AT91 Feature Selections
+#
+# CONFIG_AT91_PROGRAMMABLE_CLOCKS is not set
+CONFIG_AT91_TIMER_HZ=100
+CONFIG_AT91_EARLY_DBGU=y
+# CONFIG_AT91_EARLY_USART0 is not set
+# CONFIG_AT91_EARLY_USART1 is not set
+# CONFIG_AT91_EARLY_USART2 is not set
+# CONFIG_AT91_EARLY_USART3 is not set
+# CONFIG_AT91_EARLY_USART4 is not set
+# CONFIG_AT91_EARLY_USART5 is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_ARM926T=y
+CONFIG_CPU_32v5=y
+CONFIG_CPU_ABRT_EV5TJ=y
+CONFIG_CPU_PABRT_NOIFAR=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_COPY_V4WB=y
+CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+# CONFIG_ARM_THUMB is not set
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
+# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+# CONFIG_OUTER_CACHE is not set
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+# CONFIG_NO_HZ is not set
+# CONFIG_HIGH_RES_TIMERS is not set
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_1G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PREEMPT is not set
+CONFIG_HZ=100
+# CONFIG_AEABI is not set
+# CONFIG_ARCH_HAS_HOLES_MEMORYMODEL is not set
+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+# CONFIG_HIGHMEM is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4096
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=0
+CONFIG_VIRT_TO_BUS=y
+CONFIG_UNEVICTABLE_LRU=y
+CONFIG_HAVE_MLOCK=y
+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+# CONFIG_LEDS is not set
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="mem=128M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw"
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+
+#
+# CPU Power Management
+#
+# CONFIG_CPU_IDLE is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_FPE_NWFPE=y
+# CONFIG_FPE_NWFPE_XP is not set
+# CONFIG_FPE_FASTFPE is not set
+# CONFIG_VFP is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_HAVE_AOUT=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_ARTHUR is not set
+
+#
+# Power management options
+#
+# CONFIG_PM is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+# CONFIG_IP_PNP_DHCP is not set
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+CONFIG_INET_TUNNEL=y
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=y
+# CONFIG_IPV6_PRIVACY is not set
+# CONFIG_IPV6_ROUTER_PREF is not set
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+# CONFIG_INET6_AH is not set
+# CONFIG_INET6_ESP is not set
+# CONFIG_INET6_IPCOMP is not set
+# CONFIG_IPV6_MIP6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+CONFIG_INET6_XFRM_MODE_TRANSPORT=y
+CONFIG_INET6_XFRM_MODE_TUNNEL=y
+CONFIG_INET6_XFRM_MODE_BEET=y
+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
+CONFIG_IPV6_SIT=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+# CONFIG_IPV6_TUNNEL is not set
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
+# CONFIG_IPV6_MROUTE is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_NET_DSA is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_PHONET is not set
+# CONFIG_NET_SCHED is not set
+# CONFIG_DCB is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+CONFIG_WIRELESS=y
+# CONFIG_CFG80211 is not set
+# CONFIG_WIRELESS_OLD_REGULATORY is not set
+# CONFIG_WIRELESS_EXT is not set
+# CONFIG_LIB80211 is not set
+# CONFIG_MAC80211 is not set
+# CONFIG_WIMAX is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_TESTS is not set
+# CONFIG_MTD_REDBOOT_PARTS is not set
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set