
Some boards based on AT91SAM926X-EK use smaller DF chips to keep bootstrap, u-boot and its environment, using NAND or other external storage for kernel and rootfs. This patch adds support for small 1024x263 chip.
Signed-off-by: Sergey Lapin slapin@ossfans.org --- drivers/mtd/dataflash.c | 14 ++++++++++++++ include/dataflash.h | 2 +- 2 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/drivers/mtd/dataflash.c b/drivers/mtd/dataflash.c index 8247aa0..1730cee 100644 --- a/drivers/mtd/dataflash.c +++ b/drivers/mtd/dataflash.c @@ -54,6 +54,17 @@ int AT91F_DataflashInit (void) &dataflash_info[i].Desc);
switch (dfcode) { + case AT45DB021: + dataflash_info[i].Device.pages_number = 1024; + dataflash_info[i].Device.pages_size = 264; + dataflash_info[i].Device.page_offset = 9; + dataflash_info[i].Device.byte_mask = 0x300; + dataflash_info[i].Device.cs = cs[i].cs; + dataflash_info[i].Desc.DataFlash_state = IDLE; + dataflash_info[i].logical_address = cs[i].addr; + dataflash_info[i].id = dfcode; + found[i] += dfcode;; + break; case AT45DB161: dataflash_info[i].Device.pages_number = 4096; dataflash_info[i].Device.pages_size = 528; @@ -178,6 +189,9 @@ void dataflash_print_info (void) if (dataflash_info[i].id != 0) { printf("DataFlash:"); switch (dataflash_info[i].id) { + case AT45DB021: + printf("AT45DB021\n"); + break; case AT45DB161: printf("AT45DB161\n"); break; diff --git a/include/dataflash.h b/include/dataflash.h index 6fdc4bb..9acd28e 100644 --- a/include/dataflash.h +++ b/include/dataflash.h @@ -135,7 +135,8 @@ struct dataflash_addr { int cs; }; /*-------------------------------------------------------------------------------------------------*/
+#define AT45DB021 0x14 #define AT45DB161 0x2c #define AT45DB321 0x34 #define AT45DB642 0x3c