diff options
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 +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +CONFIG_MTD_DATAFLASH=y +# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set +# CONFIG_MTD_DATAFLASH_OTP is not set +# CONFIG_MTD_M25P80 is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 |
