summaryrefslogtreecommitdiffstats
path: root/board
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2008-10-31 14:04:42 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2008-10-31 14:04:42 +0100
commit87d4b9ec0943ffa9087f8762a70b42387ad79fd4 (patch)
tree2f0477c7a54ca36ed51dd945f369e1ae35516272 /board
parentc3fc1364d9ed508a59bc2127c04d7239e30d148a (diff)
downloadbarebox-87d4b9ec0943ffa9087f8762a70b42387ad79fd4.tar.gz
barebox-87d4b9ec0943ffa9087f8762a70b42387ad79fd4.tar.xz
[AT9SAM] implement different ECC modes for NAND chips
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'board')
-rw-r--r--board/at91sam9260ek/init.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/board/at91sam9260ek/init.c b/board/at91sam9260ek/init.c
index 5f35b0e3e6..37c878e6d9 100644
--- a/board/at91sam9260ek/init.c
+++ b/board/at91sam9260ek/init.c
@@ -44,6 +44,8 @@ static struct atmel_nand_data nand_pdata = {
.ale = 21,
.cle = 22,
/* .det_pin = ... not connected */
+ .ecc_base = (void __iomem *)AT91C_BASE_HECC,
+ .ecc_mode = NAND_ECC_HW,
.rdy_pin = NAND_READY_GPIO,
.enable_pin = NAND_ENABLE_GPIO,
#if defined(CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16)
@@ -86,15 +88,26 @@ static struct device_d macb_dev = {
static int at91sam9260ek_devices_init(void)
{
+ struct device_d *nand, *dev;
+
register_device(&sdram_dev);
+
+ gpio_direction_input(NAND_READY_GPIO);
+ gpio_direction_output(NAND_ENABLE_GPIO, 1);
+
register_device(&nand_dev);
register_device(&macb_dev);
armlinux_set_bootparams((void *)0x20000100);
armlinux_set_architecture(MACH_TYPE_AT91SAM9260EK);
- gpio_direction_input(NAND_READY_GPIO);
- gpio_direction_output(NAND_ENABLE_GPIO, 1);
+ nand = get_device_by_path("/dev/nand0");
+ dev = dev_add_partition(nand, 0x00000, 0x80000, PARTITION_FIXED, "self_raw");
+ dev_add_bb_dev(dev, "self0");
+ dev = dev_add_partition(nand, 0x40000, 0x40000, PARTITION_FIXED, "env_raw");
+ dev_add_bb_dev(dev, "env0");
+ dev_add_partition(nand, 0x00000, 0x80000, PARTITION_FIXED, "self");
+ dev_add_partition(nand, 0x40000, 0x40000, PARTITION_FIXED, "env");
return 0;
}