Forum Discussion
Thank you for your reply.
First, let me provide some additional details.
In this configuration, one Nios software image is stored in UFM and is started using UFM’s XIP feature. The software that boots acts as a bootloader, which then copies another Nios software image from QSPI flash into RAM and executes it.
Based on your advice, I will check whether UFM is correctly configured to use XIP and verify that the reset vector and exception vector are set properly.
I will get back to you once there is any progress.
Hi Watanabe-san,
Thanks for the update, if both XIP from UFM and “copy to RAM then run” fail, the next step is to confirm whether the CPU is reading valid code from the expected UFM address.
Please try these quick checks:
1. Read back UFM content
- Run a small temporary Nios app loaded to RAM via JTAG that reads the first 32 to 64 bytes from the UFM base (via the On-Chip Flash IP) and prints them.
- If it reads all 0xFF or unexpected data, the issue is UFM programming or placement.
2. Confirm address alignment
- Compare: Nios reset vector address, linker map .text start address, and the HEX placement used in Convert Programming File.
- Any offset or page mismatch will prevent boot.
3. Confirm UFM access and wiring
- Ensure UFM sector is not Hidden and is readable in the On-Chip Flash IP settings.
- Ensure the Nios instruction master can access the On-Chip Flash memory interface and clocks/resets are correct.
Regards,
Fakhrul