flash access problem

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
Hi Everybody,
              I am programming amd flash, Am29LV641D. The configuration

is 128 sectors, 64Mbits size(4M*16), sector size:64Kb, 1 bank.
     The problem is that I cannot access the higher 64 sectors(starting
from sector 64 to sector 127 assuming that sector number starts from
0). When I am erasing the 64th sector, the 0th sector is getting
erased, when doing the 65th one, the 1st one gets erased...and hence so
forth. I have confirmed this wrapping up as when I am coping some data
in 127th sector, its being reflected in 63rd sector. can anybody
suggest anything to rectify this? How to access the lower 64 sectors. I
think that the processor(mips32) is not able to see the 2nd half. Is
there anything I can do to make it see the whole flash??
The datasheet for this flash doesnt seem to reflect anything.
      I am working on bcm4704 chipset(similar to bcm5836). I think the
flash address starts from bc000000(although I am not very sure,as I
dont have the bcm4704 datasheet, have known this from some other
sources). If you feel that this is not correct, please let me know.
Except the above problem, everything seems to be working fine.


Thanks and Regards,
Sudip


Re: flash access problem
Quoted text here. Click to load it

You may have an address calculation error in your driver: word address and
byte address. If you use the byte address to program the flash, you get
what you observed. Check the circuit and the driver.

best regards
Wolfgang


Re: flash access problem
Quoted text here. Click to load it

You should check the static memory controler configuration (in your
boot monitor configuration, board init routine, part programmer, ...):
you may have a 32 Mb flash declared. Another possibility is that you
do not have a full address bus coming to the flash chip (higher
address pins not being routed). I'm facing that situation with a custom
mips board that only allow 64 Mb flash chips: I need to force the high
address bit via some GPIO to access the full 128Mb.

Quoted text here. Click to load it

If it's a boot flash, it should be mapped to include the 0xbfc00000
address (the hardwired mips reset vector). If not, it may be mapped
almost anywhere. Again, check the static memory controler
configuration.

Stephane

--
remove the zero to reply


Re: flash access problem
Quoted text here. Click to load it

Hi Stephane,
            I think I have possibly checked up all the configuration
stuff..feel its right there..as per ur bfc00000 is concerned, this
address is being mapped to a lareger window of 32 Mbytes starting from
bc000000. But still, we tried with bfc00000, it didnt work out. :-(

For Wolfgang comments....although this flash is 4M*16, still are there
any possibility of programming it bytewise? I mean to say, is there any
way to do bytewise programming? as far as I am concerned, I am not
doing any word wise writing on this flash(checked the datasheet)..in
fact there is no such controversy as there is only a single mode of
writing, that is by word. So, I am not very much sure whether its
erasing(during erasing process) or writing during(writing phase) in
byte wise or word wise.(hopefully word wise). If there is any specific
way to control byte wise programming or word wise for this flash, pls
let me know.
   Another point is that, while programming the flash, we are
programming via EPI debugger...while programming the flash, the
debugger showed that consecutive mirror sectors were programmed(ie our
bootsector starts from bc000000...debugger showed that bc000000 is
programmed and bc400000(which is the starting address of the next
4Mb)too. dont know why...for epi debugger, we had selected Am29LV641MH
as flash type(4M*16).

Thanks n Regards,
sudip


Re: flash access problem

Quoted text here. Click to load it

Hi,
   I have found the problem...The 8Mb flash is not pin compatible with
the socket. :-)
thanx everybody for the help.

Regards,
sudip


Site Timeline