- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am trying to implement the advanced boot copier in my Nios Design and at the moment I am not able get it work.
First of all I included the advanced_boot_copier.h to my design and set the advanced_boot_copier.c as my main programm. In the next step I modified this files so they match with my design. I choose#define BOOT_METHOD BOOT_EPCS_FROM_ONCHIP_ROM
And also rename the base adress to my EPCS Controller. Then I generated an application programm. Just Hello World via jtag uart. I took the .elf file like in the Applikation AN458 mentioned and convert it via the make_flash_image_script into a .bin file with the expected header for the bootloader. Now I generate from the bin file a flash file with the location 0x00060000. And programmed it into the epcs flash with the nios2-flash-programmer. I used the Eclipse enviroment to debug my bootloader and it get stuck at the point where it should copy the content of my epcs flash. Now from the debugger I can see that I get at this point in the programm the following length and address values: length =0xd9c00815 address =0xb307a I think these values must be wrong the length defines the byte length of the software image didn't it? So I checked the bin file with a hex editor. A modified sreenshot is in the attachment. I am wondering why the bytes in the .bin files are inverted from right to left But besites that, it seems ok. In my opinion the programm reads the right values. Is there maybe a mistake in the make_flash_image_script script. Did I have to change something there. Did anyone here have had the same problem or knows a solution?
Link Copied
6 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The data is 'little-endian'.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- The data is 'little-endian'. --- Quote End --- Ok but the generated length of about 3 GBytes cannot be right. An so there must be a mistake in the script or do I have to edit the script in someway?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I think i just found something. Did I have to modefy the flash_base and flash_end variables in the make_image_flash_script ?
I will try it tomorrow but maybe someone can give me a hint if this is maybe the solution for my problem. Regards Tobias- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'd look at the program sections in the elf file and see if the numbers match. It might be that the imiage is trying to cover a massive gap in the address space.
IIRC the EPCS boot code can only load to a contiguous address block (this really should be fixed by Altera) so usually all the initialised data is linked to physical addresses that follow the code - and the first code the nios runs copies it into the required places. This just doesn't work unless you are loading into SDRAM (assumed to be big).- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- I'd look at the program sections in the elf file and see if the numbers match. It might be that the imiage is trying to cover a massive gap in the address space. IIRC the EPCS boot code can only load to a contiguous address block (this really should be fixed by Altera) so usually all the initialised data is linked to physical addresses that follow the code - and the first code the nios runs copies it into the required places. This just doesn't work unless you are loading into SDRAM (assumed to be big). --- Quote End --- I will look up the elf file tommorow. The second thning shuld not be a problem because I am loading my application code into a 128 kByte SDRAM.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ok its working now I just edited flash_base and flash_end in the make_flash_image_script.sh file and now the calculations for the length are correct.
Thanks for all your help.
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page