* 4 x AMD29LV800B CFI? [not found] <E1669aI-0001iv-00@pentafluge.infradead.org> @ 2001-11-23 21:01 ` Geoffrey Espin 2001-11-27 11:05 ` David Woodhouse 0 siblings, 1 reply; 3+ messages in thread From: Geoffrey Espin @ 2001-11-23 21:01 UTC (permalink / raw) To: linux-mtd Is there a definitive URL to discover what chips are CFI and which are not? I've Googled the planet for the AMD29LV800B family. The chip is appears in mtd/chips/amd_flash.c, not necessarily CFI. I found a nearly dead link on AMD site to source code: http://www.amd.com/us-en/assets/content_type/utilities/cfiflash.h.txt http://www.amd.com/us-en/assets/content_type/utilities/cfiflash.c.txt which contains the part, yet the datasheet: http://www.amd.com/us-en/assets/content_type/DownloadableAssets/21531.pdf doesn't list it as having CFI. The NEC/MIPS "Korva" board I'm trying to get this working on has 4 x AMD29LV800B's byte interleaved for 4MB total. I've tinkered with cfi/jedec/amd_flash and not one of them will recognize the part(s). After sending the command code(s), it replies with the contents at the particular offset, not the chip code. Perhaps my h/w setup is insisting that all 4 parts are programmed at once? I see ifdef SOMEONE_ACTUALLY... for width 4 type 32 interleave 4; maybe this means generate the right pattern? I'm now driven to more furious surgery, it seems. :-( Geoff -- Geoffrey Espin espin@idiom.com ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: 4 x AMD29LV800B CFI? 2001-11-23 21:01 ` 4 x AMD29LV800B CFI? Geoffrey Espin @ 2001-11-27 11:05 ` David Woodhouse 2001-11-28 3:30 ` Geoffrey Espin 0 siblings, 1 reply; 3+ messages in thread From: David Woodhouse @ 2001-11-27 11:05 UTC (permalink / raw) To: Geoffrey Espin; +Cc: linux-mtd espin@idiom.com said: > Perhaps my h/w setup is insisting that all 4 parts are programmed at > once? I see ifdef SOMEONE_ACTUALLY... for width 4 type 32 interleave > 4; maybe this means generate the right pattern? That's around the code for 32-bit flash chips. You don't have 32-bit chips, you have 16-bit chips, in 8-bit mode. I've used the 29LV160, and it's definitely CFI-compliant. Strangely, the 29LV800 isn't. But the jedec_probe code doesn't yet recognise it. Try this... Index: drivers/mtd/chips/jedec_probe.c =================================================================== RCS file: /home/cvs/mtd/drivers/mtd/chips/jedec_probe.c,v retrieving revision 1.6 diff -u -r1.6 jedec_probe.c --- drivers/mtd/chips/jedec_probe.c 2001/10/22 10:16:08 1.6 +++ drivers/mtd/chips/jedec_probe.c 2001/11/27 11:04:56 @@ -35,6 +35,8 @@ #define AM29LV800BT 0x22DA #define AM29LV160DT 0x22C4 #define AM29LV160DB 0x2249 +#define AM29LV800BT 0x22DA +#define AM29LV800BB 0x225B /* Atmel */ #define AT49BV16X4 0x00c0 @@ -97,6 +99,30 @@ #define SIZE_8MiB 23 static const struct amd_flash_info jedec_table[] = { + { + mfr_id: MANUFACTURER_AMD, + dev_id: AM29LV800BT, + name: "AMD AM29LV800BT", + DevSize: SIZE_1MiB, + CmdSet: P_ID_AMD_STD, + NumEraseRegions: 4, + regions: {ERASEINFO(0x10000,15), + ERASEINFO(0x08000,1), + ERASEINFO(0x02000,2), + ERASEINFO(0x04000,1) + } + }, { + mfr_id: MANUFACTURER_AMD, + dev_id: AM29LV800BB, + name: "AMD AM29LV800BB", + DevSize: SIZE_1MiB, + CmdSet: P_ID_AMD_STD, + NumEraseRegions: 4, + regions: {ERASEINFO(0x04000,1), + ERASEINFO(0x02000,2), + ERASEINFO(0x08000,1), + ERASEINFO(0x10000,15) + } { mfr_id: MANUFACTURER_AMD, dev_id: AM29LV160DT, -- dwmw2 ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: 4 x AMD29LV800B CFI? 2001-11-27 11:05 ` David Woodhouse @ 2001-11-28 3:30 ` Geoffrey Espin 0 siblings, 0 replies; 3+ messages in thread From: Geoffrey Espin @ 2001-11-28 3:30 UTC (permalink / raw) To: David Woodhouse; +Cc: linux-mtd > > Perhaps my h/w setup is insisting that all 4 parts are programmed at > > once? I see ifdef SOMEONE_ACTUALLY... for width 4 type 32 interleave > > 4; maybe this means generate the right pattern? > That's around the code for 32-bit flash chips. You don't have 32-bit chips, > you have 16-bit chips, in 8-bit mode. > I've used the 29LV160, and it's definitely CFI-compliant. Strangely, the > 29LV800 isn't. But the jedec_probe code doesn't yet recognise it. Try > this... > Index: drivers/mtd/chips/jedec_probe.c > ... Thanks, David, ever so much for the patch. I'd played with Jedec too. I actually got amd_flash.c to seemingly work on its own -- just tested with "mtd_debug read/write ..." My hacked amd_flash.c prints: Physically mapped flash: Found 1 x 4MiB AMD AM29LV800BT (*4) at 0x0 ^^^^ Yeah! I'd prefer to use your version, will give it a try... Geoff -- Geoffrey Espin espin@idiom.com ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2001-11-28 3:19 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <E1669aI-0001iv-00@pentafluge.infradead.org>
2001-11-23 21:01 ` 4 x AMD29LV800B CFI? Geoffrey Espin
2001-11-27 11:05 ` David Woodhouse
2001-11-28 3:30 ` Geoffrey Espin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox