Hi,
I'm working on a system that I think is quite similar to the one you describe above.
My hw is so configured:
- NiosII
- OnChipMemory
- SDRAM controller
- PCI Compiler
- other peripherals
Nios CPU has reset address in OnChipMemory, exception address is in external SDRAM.
My goal is boot Nios in OnChipMemory, wait for firmware is loaded into SDRAM from an external PCI master and the jump with program execution in SDRAM.
I already wrote both loader and firmware, and I have them running in two different Nios IDE projects, the first is configured (Sys Lib Options) to reside in OnChipMemory, the other in SDRAM.
My doubt is about how to get from IDE the binary file to be copied in SDRAM (the firmware binary image) and choosing the right address to jump in.
Binary Image: I've tried with
nios2-elf-objcopy -O binary
but addresses in the file I obtain is not aligned as I can see from debugger, what I see in file is in memory starting from 0x20.
Jump: I jump to
_start section, is it right? I also have to setup stack pointer or not? Starting from that point is all the C setup code correctly executed in you opinion?
One more question, I can't see your's bios code in the post above, did you remove it for privacy issues?
Thanks in advance,
Paolo