diff options
author | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2013-01-22 20:37:35 +0800 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-01-31 19:14:07 +0100 |
commit | 4bd5ceee72dd5d550653bdbd60de20a97a0e6583 (patch) | |
tree | 580e9e3f9bb1cefd83e11fc4c5bb84cca89e2814 /arch/arm/boards/at91sam9261ek | |
parent | 2754a114ba2bf8a7c250ca11acf54746b783ad47 (diff) | |
download | barebox-4bd5ceee72dd5d550653bdbd60de20a97a0e6583.tar.gz barebox-4bd5ceee72dd5d550653bdbd60de20a97a0e6583.tar.xz |
at91sam9261ek: add first stage support
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Diffstat (limited to 'arch/arm/boards/at91sam9261ek')
-rw-r--r-- | arch/arm/boards/at91sam9261ek/env/config | 10 | ||||
-rw-r--r-- | arch/arm/boards/at91sam9261ek/init.c | 15 |
2 files changed, 21 insertions, 4 deletions
diff --git a/arch/arm/boards/at91sam9261ek/env/config b/arch/arm/boards/at91sam9261ek/env/config index 7d855779ca..cb3e847f54 100644 --- a/arch/arm/boards/at91sam9261ek/env/config +++ b/arch/arm/boards/at91sam9261ek/env/config @@ -34,8 +34,14 @@ kernelimage=zImage #kernelimage=Image.lzo nand_device=atmel_nand -nand_parts="128k(at91bootstrap),256k(barebox)ro,128k(bareboxenv),128k(bareboxenv2),128k(oftree),4M(kernel),120M(rootfs),-(data)" -rootfs_mtdblock_nand=6 +if [ x$borebox_first_stage = x1 ] +then + nand_parts="384k(barebox)ro,128k(bareboxenv),128k(bareboxenv2),128k(oftree),4M(kernel),120M(rootfs),-(data)" + rootfs_mtdblock_nand=5 +else + nand_parts="128k(at91bootstrap),256k(barebox)ro,128k(bareboxenv),128k(bareboxenv2),128k(oftree),4M(kernel),120M(rootfs),-(data)" + rootfs_mtdblock_nand=6 +fi autoboot_timeout=3 diff --git a/arch/arm/boards/at91sam9261ek/init.c b/arch/arm/boards/at91sam9261ek/init.c index 57198d4dfe..177bb34273 100644 --- a/arch/arm/boards/at91sam9261ek/init.c +++ b/arch/arm/boards/at91sam9261ek/init.c @@ -360,6 +360,8 @@ mem_initcall(at91sam9261ek_mem_init); static int at91sam9261ek_devices_init(void) { + u32 barebox_part_start; + u32 barebox_part_size; ek_add_device_nand(); ek_add_device_dm9000(); @@ -369,8 +371,17 @@ static int at91sam9261ek_devices_init(void) ek_add_device_lcdc(); ek_add_device_spi(); - devfs_add_partition("nand0", 0x00000, SZ_128K, DEVFS_PARTITION_FIXED, "at91bootstrap_raw"); - devfs_add_partition("nand0", SZ_128K, SZ_256K, DEVFS_PARTITION_FIXED, "self_raw"); + if (IS_ENABLED(CONFIG_AT91_LOAD_BAREBOX_SRAM)) { + barebox_part_start = 0; + barebox_part_size = SZ_256K + SZ_128K; + export_env_ull("borebox_first_stage", 1); + } else { + devfs_add_partition("nand0", 0x00000, SZ_128K, DEVFS_PARTITION_FIXED, "at91bootstrap_raw"); + barebox_part_start = SZ_128K; + barebox_part_size = SZ_256K; + } + devfs_add_partition("nand0", barebox_part_start, barebox_part_size, + DEVFS_PARTITION_FIXED, "self_raw"); dev_add_bb_dev("self_raw", "self0"); devfs_add_partition("nand0", SZ_256K + SZ_128K, SZ_128K, DEVFS_PARTITION_FIXED, "env_raw"); dev_add_bb_dev("env_raw", "env0"); |