Problems with cfi_cmdset_0002 and Atmel AT49BV642D
Hans-Christian Egtvedt
hcegtvedt at atmel.com
Wed May 9 09:46:19 EDT 2007
On Wed, 2007-05-09 at 15:34 +0200, Michael König wrote:
> first of all, going through the GIT archive I found out that the
> cfi_cmdset_0002.c in the latest Axis SDK must be the one from 2006-09-22,
> since the last Atmel changes are present but the newest SST additions
> aren't.
>
> Through some testing I found out that do_write_one_word() works just fine,
> and the main problem seems to be do_write_buffer().
> To make it work without changing too much, I simply added a call to
> do_write_one_word() in the beginning of do_write_buffer() and then return.
> I'm sure it's less efficient that way, but I wanted to get it to work first.
Hmmm, AT49BV642D should not use the do_write_buffer() function at all.
There should be a fixup for this in the kernel.
Is there a "fixup_convert_atmel_pri" function which
<quote>
/* burst write mode not supported */
cfi->cfiq->BufWriteTimeoutTyp = 0;
cfi->cfiq->BufWriteTimeoutMax = 0;
</quote>
This will disable using the "cfi_amdstd_write_buffers" function.
> Since the problem obviously is in do_write_buffer(), I wonder how this
> command sequence works:
>
> cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi,
> cfi->device_type, NULL);
> cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi,
> cfi->device_type, NULL);
> //cfi_send_gen_cmd(0xA0, cfi->addr_unlock1, chip->start, map, cfi,
> cfi->device_type, NULL);
> /* Write Buffer Load */
> map_write(map, CMD(0x25), cmd_adr);
This is the standard "Word program" command, take a look on page 11 in
the datasheet.
> I wasn't able to find that sequence either in the documentation of my Atmel
> chip, or in AMD or Spansion ones.
> Is this some undocumented command sequence that isn't implemented by Atmel?
> Why isn't the bypass mode used anymore?
The Atmel device has a dual-word write function, but AFAIK AMD
(Spansion) devices can write a lot more with a single command. Thus
AT49BV642D can not use the default AMD command for buffer writes.
> Thanks in advance for any insights that might clear up this issue.
Sorry for a bit incomplete answer, but this flash device is working on
the ATNGW100 kit from Atmel. So it should work for you as well.
--
With kind regards,
Hans-Christian Egtvedt
More information about the linux-mtd
mailing list