gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

Hardware > Flash2Advance's Flash Chip Addressing/Enabling?

#4031 - cesium - Sun Mar 16, 2003 5:46 pm

I've been using my Flash2Advance 128M Flash Card as a test
subject for learning to program flash chips. I've enabled writing
by using the Visoly preamble (write foo 500 times, stand on head,
gargle peanut butter etc.).

Looking at the cart, I see 4 each of Intel's F320B3TC Advanced Boot
Block Flash chips. I have been able to read the manufacturer code
using the Read Identifier Command, but reading the Device code
is confusing me.

I dont' receive the Device Code when I read 0x08000001.
But I do get the proper Device Code (0x8896) when I
read 0x08000004.

Does this make sense? Why Isn't it at 0x08000001? (or perhaps
0x08000002)

Also, do you have an opinion on enabling flash chips? Do you
like the "perform a goofy series of writes" method?
What about just placing a small switch on the cart PCB?
How about just enabling writes all the time?

Is this simply a product security issue?
I guess if your CPLD has extra gates, it just takes a few lines
of VHDL to design a "write protect" algorithm.

Cheers,
cesium

#4040 - ampz - Sun Mar 16, 2003 8:22 pm

The funky write protection routine used by visoly is kinda redundant. Flash chips already include write protection. (ie. you have to issue the proper write command before you can write anything).

Are you saying flash2advance use exactly the same routine as visoly does?

#4045 - cesium - Sun Mar 16, 2003 10:01 pm

ampz,
Ahhh. Of course. the Intel Memory Command Set should serve as
protection enough.

As far as the Visoly preamble enabling the Flash2Advance,
I had to 'execute' this sequence in order to get the Intel 'Read Identifier
Codes' to return the Manufacturer ID (0x0089) properly.
This is as far as I've gotten in the Intel Command Set.

Does it make sense to you that the I get the manufacturer ID
from 0x08000000 and the Device code from 0x08000004 ?

I'll keep trying more Intel commands and keep you posted.

cesium

PS, The F320B3TC's are obsolete, right?

#4048 - ampz - Mon Mar 17, 2003 12:10 am

Yes.
I assume that this 128M flash cart of yours contains two 64M flash parts?
They are connected in paralell, one part for the upper 8 bits and one part for the lower 8 bits on the 16bit databus.

Since it's a 16bit bus and we are working with 16bit operations, only even adresses are valid.
0x08000000, 0x08000002, 0x08000004, 0x08000006 and so on.
Also, when reading device identifier codes, the A0 pin on the flash part is unused. That's why you get the device code from 0x08000004.
You should find the block 0 lock configuration at adress 0x08000008.

#4051 - cesium - Mon Mar 17, 2003 2:51 am

I need to re-read that Intel data sheet. I do recall something about A0
not being used.

I'll print out your reply, the data sheet, and sketch some *Parallel*
architectures over breakfast in the morning.

Thanks ampz!

cesium