Plasmo
Experienced Member
I am developing a SBC based on the Z280 operating in the 16-bit Z-BUS mode. To save the cost of two boot ROM and to simplify the process of reprogramming the boot software, I have an unusual way of booting up the Z280 via CF drive:
At power up or reset, a state machine in CPLD holds Z280 in reset and initializes the CF drive such that the boot sector (track 0, sector 1) is read into the 512-byte FIFO of the CF data register. The state machine also temporarily maps Z280 memory location 0x0-0x1FF to the CF data register. The state machine then releases the Z280 reset and gets out of the way. Z280 begins program execution at 0x0, fetching instructions from the 512-byte FIFO. Because instructions are destroyed with every FIFO read, the 512-byte instruction stream has no looping instructions. Instead, it creates a small program in memory, one opcode at a time, and jumps to the newly created program before the FIFO runs out of instructions. The small program in the memory is a simple CF loader that loads the full-size monitor program from CF and execute.
My question is this: I'm struggling with a clear description of this CF booting process, I don't know whether the above description makes sense to the readers or not. It is also likely such boot method has been done already and I can save myself all kind of explanation by just referring to it. Has booting from CF being done before? What is the name for such booting method?
At power up or reset, a state machine in CPLD holds Z280 in reset and initializes the CF drive such that the boot sector (track 0, sector 1) is read into the 512-byte FIFO of the CF data register. The state machine also temporarily maps Z280 memory location 0x0-0x1FF to the CF data register. The state machine then releases the Z280 reset and gets out of the way. Z280 begins program execution at 0x0, fetching instructions from the 512-byte FIFO. Because instructions are destroyed with every FIFO read, the 512-byte instruction stream has no looping instructions. Instead, it creates a small program in memory, one opcode at a time, and jumps to the newly created program before the FIFO runs out of instructions. The small program in the memory is a simple CF loader that loads the full-size monitor program from CF and execute.
My question is this: I'm struggling with a clear description of this CF booting process, I don't know whether the above description makes sense to the readers or not. It is also likely such boot method has been done already and I can save myself all kind of explanation by just referring to it. Has booting from CF being done before? What is the name for such booting method?