Master of Gizmo wrote:
Am i right that i have to store the de1_boot.bin in flash? The DE2 i am using isn't mine and i'd like to avoid doing any permanent changes, so i was delighted that my experiments so far only required the download of the sof file and the placement of files on the sd card.
Yes, the de1_boot.bin is meant to be written into flash. Like MMrobinsonb5 described it, there's just not enough free space for an SD card bootloader in the DE1's FPGA. I sure wish it was different, I tried to write the barest possible code to boot the real firmware from SD card, but there's no way to fit it inside the FPGA (two "advantages" that the M68000 has over OR1200 and allows the code for the M68000 to fit: CISC vs. RISC and variable instruction length).
Also i don't have a windows box and i now have to figure out how to write to the flash from a linux box. Chaos? You seem to be doing everything under linux. How do you upload to the d1 flash?
I use windows for the upload part.
Sorry, I have no idea if that's possible from linux, it certainly seemed it would take too much time to try and make it work. Now that I think of it, I do have the sources for the Control Panel program, so something similar could be written for linux ...
Anyway, it is possible that the FPGA on the DE2 board has more free memory, which would allow you to remove the FLASH controller and simply put an internal ROM there. Can you compile and check the fitter report for the number of free M4K blocks? And I'll look where I put my bare bootloader code and I can send it to you, if you want.
So there's now a oc1200 doing the io controller part. There's de1_boot.bin which is the io controllers firmware. There's the bootrom.v which contains 68k boot code which i always thought would be loading the kick.rom, but i don't see where that happens.
The bootrom.v does load the kick.rom, among other things. Actually, the controller firmware & the Amiga side firmware do that together - they do it through the disk interface (SPI).
Which part is loading the de1_boot.bin from where?
The de1_boot.bin firmware is "self-loading" - it copies itself from ROM (flash) to RAM (SRAM) and continues execution there. Only the OR1200 uses & sees this code.
And if the io controller is booted that way why do we need the 68k code at all? Can't the io controller load kick.rom by itself?
You still need the bootrom.v for the initial on-screen text display (soon to become graphical
and the kick.rom copy. The io controller can't copy the kick.rom to memory, because it has no access to it, besides going through the disk interface to the bootrom code, which than saves it to memory.