Tuesday, March 15, 2022

I will prevail over the flash memory issues with the IOB6120

 USAGE OF THE FLASH MEMORY ON THE IOB6120

The flash memory on the IOB6120 is used for two purposes, read by the SBC6120 system initialization code, plus it can be loaded by a console monitor command FL. The first part of the flash is treated as EPROM, copied by the initialization code into the panel RAM space and executed.  The second part of the flash is copied over to the FPGA as the bitstream to program it. 

The EPROM code will modify the firmware of the SBC6120 to modify the memory space, add support for various additional devices and take over some IO requests. This happens only if the beginning of the flash has a specific signature and a good checksum, otherwise it is ignored and not copied.

Note that both of those purposes are accessing the flash as static ram reads - put an address on the bus, enable the output and the corresponding data shows up on the bus. That doesn't depend on any commands or specific sequences that differ between flash memory parts. The only case where commands are issued to the flash, such as erasing blocks, writing words, reading and clearing status, is when you reload (or initially load) the flash with the EPROM code and the FPGA bitstream. 

OPENING UP THE WAR ON THE FLASH ON MULTIPLE FRONTS

I found a vendor on eBay that claims to have Intel parts compatible with the Sharp flash chip used in this design. The vendor has thousands of perfect feedback responses and is US based - not an absolute protection against counterfeits as they themselves may have been victimized - which is a drop in and forget it solution that will support the console FL command as well as reading out properly.

I also purchased a 29F400 chip from a reputable distributor, thus probably real. It has a compatible footprint and pin assignments but apparently some of the access details are different for erasing and writing. Thus, use of the FL command may require me to make changes and rebuild the SBC6120 firmware and rewrite its EPROM. 

I have several of the 16M chip that were also footprint and almost pin compatible, although they had the extra two address bits that need to be driven. If I can program that chip, or the 29F400 above, through other means then I don't need the FL command to work. Soldering in a preprogrammed flash will allow it to boot up and work properly. 

I found an adapter board, TSOP-48 to DIP 48, which will let me solder down one of the flash chips then plug it into a breadboard for me to attempt to load the flash before I put it on the IOB board. This will support any of the chips, if need be. 

No comments:

Post a Comment