hmm good point. I never noticed that. apparently the boot rom data is stored at 0x7000.0000 according to the user manual and flash rom is addressed as 0x0... I cant tell where it says if the data at 0x7 is fixed code or if its rewriteable somehow.
I had to read all of the info about those two parts several times to get this, but I think I can explain more simply.
Normally, when you power up the EP7312, it jumps to location 0x0 -- hopefully you have some sort of memory (ram, rom, whatever) sitting there that holds instructions. If not, you're toast.
Now, what this means is that if you want to have a system that boots, you had better make sure your flash rom chips are burned before you solder them down to a board, and if anything ever happened to them, you'd have to desolder / replace them. Or use a socketed ROM chip. All of these are horribly expensive from the point of view of the manufacturer.
OR ... you could do what they did. They provided a 128-BYTE rom bank, actually on the die of the processor. It truly is read-onky -- it will never change. When you boot with it (enabled with a jumper on the PhatBox board), it runs a very, very small program, that does the following:
* turns on UART1, configures to 9600
* outputs one char: "<"
* reads the next 2048 bytes
* outputs one last char: ">"
* copies that 2k chunk of data into internal [cache] sram, and executes it.
So, basically you write a 2k mini "pre-bootloader" loader, and use it to handle all other data transfer, and eventually could reflash that way.
Ben