Hi,
I have implemented the remote_update function on my custom board and it works for HW images.
Now I am trying to boot nios images from non standard offset but it does not work :-/.
I have read a lot of topics and use this method to change nios boot address in epcs: http://www.alterawiki.com/wiki/EPCS_bootloaders.
I have programmed a jic in EPCS but only the HW image is loaded and I don't understand why.
I can load the nios from the Nios-IDE using "run as" but not from the EPCS. Maybe the .hex file I use is wrong ?
Environment :
Cyclone IV GX / EPCS64 / Quartus 11.1 sp2
Bootloader :
(http://www.alterawiki.com/wiki/EPCS_bootloaders)
I compile the asm_bootloader with make CODE_BASE=0x0 command with those parameters:
#define SOFTWARE_OFFSET 0x400000
#define EPCS_FLASH_CONTROLLER_0_BASE 0x2000
Then I have copied my_boot_loader_standalone.hex in my quartus project.
SOPC :
epcs_flash_controller_0:
- @=0x2000
boot_rom :
- 1024 bytes onchip rom
- User created init file: my_boot_loader_standalone
cpu:
- reset_vector and exception_vector mapped to boot_rom
JIC generation:
elf2flash --epcs --input=$elf --output=sw.flash
nios2-elf-objcopy --input-target srec --output-target ihex sw.flash $hex_sw --change-addresses=0x400000
jic result:
BLOCK | START ADDRESS | END ADDRESS
Page_0 | 0x00000000 | 0x001673C7
nios.hex | 0x00400000 | 0x00408C4B
NIOS IDE:
Allow_code_at_reset=1, other parameters are set to 0
Thank for your help and advice.
I have implemented the remote_update function on my custom board and it works for HW images.
Now I am trying to boot nios images from non standard offset but it does not work :-/.
I have read a lot of topics and use this method to change nios boot address in epcs: http://www.alterawiki.com/wiki/EPCS_bootloaders.
I have programmed a jic in EPCS but only the HW image is loaded and I don't understand why.
I can load the nios from the Nios-IDE using "run as" but not from the EPCS. Maybe the .hex file I use is wrong ?
Environment :
Cyclone IV GX / EPCS64 / Quartus 11.1 sp2
Bootloader :
(http://www.alterawiki.com/wiki/EPCS_bootloaders)
I compile the asm_bootloader with make CODE_BASE=0x0 command with those parameters:
#define SOFTWARE_OFFSET 0x400000
#define EPCS_FLASH_CONTROLLER_0_BASE 0x2000
Then I have copied my_boot_loader_standalone.hex in my quartus project.
SOPC :
epcs_flash_controller_0:
- @=0x2000
boot_rom :
- 1024 bytes onchip rom
- User created init file: my_boot_loader_standalone
cpu:
- reset_vector and exception_vector mapped to boot_rom
JIC generation:
elf2flash --epcs --input=$elf --output=sw.flash
nios2-elf-objcopy --input-target srec --output-target ihex sw.flash $hex_sw --change-addresses=0x400000
jic result:
BLOCK | START ADDRESS | END ADDRESS
Page_0 | 0x00000000 | 0x001673C7
nios.hex | 0x00400000 | 0x00408C4B
NIOS IDE:
Allow_code_at_reset=1, other parameters are set to 0
Thank for your help and advice.