Thanks to the help of several fellow 99/4A enthusiasts (Rasmus and Tursi), I’m happy to announce an in-system software update for the F18A firmware. Currently the update program only runs on a 99/4A system and requires a bulk-storage device large enough to contain the update program, bit stream, and data file on the same “disk” (about 226KiB). Currently I recommend using a CF7/NanoPeb device.
** WARNING **
During the update process the FPGA’s bit stream on the flash memory must be wiped so the new bit steam can be written. If anything goes wrong during this part of the update, it is possible that you will have to return your F18A to have it updated with an external JTAG programming cable.
I have done everything I can to make sure the update runs smoothly and that the data files are validated, however there is always the possibility of an unexpected failure. Keeping power applied to the system at all times during the update is VERY IMPORTANT. If you have an uninterruptable power supply (UPS) available, you might consider plugging your 99/4A console into the unit during the update process.
Download the update disk image and prepare the files for use with your 99/4A console.
Make sure you will not experience any power failures or interrupts during the update.
You will need the TI Editor/Assembler (E/A) cartridge to run the update program.
Fire up the E/A and select menu option 3 (EA3) Load and Run
Type the location and name of the update program. The name of the update program is F18AUPD and in this example it is located on DSK1. The update program and data files must be on the same disk.
Once the update program is loaded it performs a checksum on itself and displays the value in the upper left corner of the screen:
V1.5 checksum: 9B68
V1.6 checksum: 40CC
V1.7 checksum: A3B5
V1.8 checksum: F981
If you do not see the correct checksum for the version you are updating to in the upper left corner, DO NOT CONTINUE. Quit the program and start from Step 1.
The update program will detect your F18A and display the current firmware version as well as the update firmware version. If your F18A version and the update version are the same, there is no need to run the update.
When you are ready, press P to proceed. NOTE: The update program will not stop you from updating your F18A if the current firmware and update firmware are the same.
Once you start the process, DO NOT try to stop the program, reset the system, or power cycle the system. Just let the program finish, even if you did not mean to proceed.
Now you wait for the program to run the update. First a staging area will be cleared in the SPI Flash at sectors A, B, C, D, E, and F.
Next the bit stream and data file will be read, CRC validated, and copied to the staging area. Reading and validating the file data is the longest part of the update. The number next to the “Staging Bit Stream” text is the current destination block in the staging area and the progress bar shows how much of the input file data has been verified and staged.
The data file will be staged in the same manner as the bit stream file. If there is a problem with either file an error will be displayed and the update aborted. At this point the original firmware is still intact and your F18A will function as it always has.
This is where the update actually begins. The current bit stream, SPI Flash sectors 0 to 5, must be erased before they can be overwritten, so any power failure at this point would require your F18A to be updated externally via a JTAG programmer.
Now the bit stream and data are copied from the staging area to the sectors where the FPGA loads the configuration bit stream from (sectors 0 to 5). Luckily steps 6 and 7 are very fast, since they are the critical steps of erasing and copying the firmware.
A CRC will now be run against the new bit stream and data to make sure there are no problems with the newly installed firmware.
** If there are any problems DO NOT POWER OFF YOUR SYSTEM! You will see an error message and you will have the opportunity to restart the update and try again. You DO NOT have to reset the system to try the update again.
The staging area, SPI Flash sectors A to F, will now be cleaned up.
You will now see a message that says the update was successful and to POWER CYCLE your system. This needs to be a complete power-off / power-on cycle and NOT just a warm reset. The FPGA bit stream is only loaded from the SPI Flash at power-on, so the power-cycle is necessary to load the new firmware.
Re-run the update program (steps 1 and 2) and verify that the detected firmware is now the same as the update firmware. Congratulations, your F18A has been successfully updated! Press Q to quit the updater.
If you have any problems, try the update again. If you power cycle your system and continue to have a blank screen, you will need to send your F18A back to have it externally updated. You can also purchase an external JTAG programming cable for about $50 USD if the update fails and you want to avoid having to send your F18A in for updating.