From 45237bc00b29bd88e8456367d7b006ab80f95ee9 Mon Sep 17 00:00:00 2001 From: Wolfgang Denk Date: Wed, 5 Oct 2005 00:03:55 +0200 Subject: [PATCH] Add support for S29GL064M-R3 flash chip on xsengine board Patch by Kurt Stremerch, 18 Apr 2005 --- CHANGELOG | 3 +++ board/xsengine/flash.c | 33 +++++++++------------------------ include/flash.h | 2 ++ 3 files changed, 14 insertions(+), 24 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 2b446015de..3303bb7322 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,9 @@ Changes for U-Boot 1.1.4: ====================================================================== +* Add support for S29GL064M-R3 flash chip on xsengine board + Patch by Kurt Stremerch, 18 Apr 2005 + * E500 update: repoint IVPR to RAM when code is relocated Patch by Kylo Ginsberg, 13 Apr 2005 diff --git a/board/xsengine/flash.c b/board/xsengine/flash.c index 3f93700d6d..2b9afc7a77 100644 --- a/board/xsengine/flash.c +++ b/board/xsengine/flash.c @@ -101,13 +101,9 @@ void flash_print_info (flash_info_t *info) } switch (info->flash_id & FLASH_TYPEMASK) { - case FLASH_AMLV128U: printf ("AM29LV128ML (128Mbit, uniform sector size)\n"); - break; - case FLASH_AMLV320U: printf ("AM29LV320ML (32Mbit, uniform sector size)\n"); - break; case FLASH_AMLV640U: printf ("AM29LV640ML (64Mbit, uniform sector size)\n"); break; - case FLASH_AMLV320B: printf ("AM29LV320MB (32Mbit, bottom boot sect)\n"); + case FLASH_S29GL064M: printf ("S29GL064M (64Mbit, top boot sector size)\n"); break; default: printf ("Unknown Chip Type\n"); break; @@ -174,17 +170,6 @@ static ulong flash_get_size (vu_long *addr, flash_info_t *info) debug ("Mirror Bit flash: addr[14] = %08lX addr[15] = %08lX\n", addr[14], addr[15]); switch(addr[14]) { - case AMD_ID_LV128U_2: - if (addr[15] != AMD_ID_LV128U_3) { - debug ("Chip: AMLV128U -> unknown\n"); - info->flash_id = FLASH_UNKNOWN; - } else { - debug ("Chip: AMLV128U\n"); - info->flash_id += FLASH_AMLV128U; - info->sector_count = 256; - info->size = 0x02000000; - } - break; /* => 32 MB */ case AMD_ID_LV640U_2: if (addr[15] != AMD_ID_LV640U_3) { debug ("Chip: AMLV640U -> unknown\n"); @@ -196,17 +181,17 @@ static ulong flash_get_size (vu_long *addr, flash_info_t *info) info->size = 0x01000000; } break; /* => 16 MB */ - case AMD_ID_LV320B_2: - if (addr[15] != AMD_ID_LV320B_3) { - debug ("Chip: AMLV320B -> unknown\n"); + case AMD_ID_GL064MT_2: + if (addr[15] != AMD_ID_GL064MT_3) { + debug ("Chip: S29GL064M-R3 -> unknown\n"); info->flash_id = FLASH_UNKNOWN; } else { - debug ("Chip: AMLV320B\n"); - info->flash_id += FLASH_AMLV320B; - info->sector_count = 71; - info->size = 0x00800000; + debug ("Chip: S29GL064M-R3\n"); + info->flash_id += FLASH_S29GL064M; + info->sector_count = 128; + info->size = 0x01000000; } - break; /* => 8 MB */ + break; /* => 16 MB */ default: debug ("Chip: *** unknown ***\n"); info->flash_id = FLASH_UNKNOWN; diff --git a/include/flash.h b/include/flash.h index beab260dc4..6381cfcc7e 100644 --- a/include/flash.h +++ b/include/flash.h @@ -206,6 +206,8 @@ extern void flash_read_factory_serial(flash_info_t * info, void * buffer, int of #define AMD_ID_LV256U_3 0x22012201 /* 3rd ID word for AM29LV256M at 0x3c */ #define AMD_ID_GL064M_2 0x22132213 /* 2nd ID word for S29GL064M-R6 */ #define AMD_ID_GL064M_3 0x22012201 /* 3rd ID word for S29GL064M-R6 */ +#define AMD_ID_GL064MT_2 0x22102210 /* 2nd ID word for S29GL064M-R3 (top boot sector) */ +#define AMD_ID_GL064MT_3 0x22012201 /* 3rd ID word for S29GL064M-R3 (top boot sector) */ #define AMD_ID_LV320B_2 0x221A221A /* 2d ID word for AM29LV320MB at 0x38 */ #define AMD_ID_LV320B_3 0x22002200 /* 3d ID word for AM29LV320MB at 0x3c */ -- 2.25.1