cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
dawatson
Observer
Observer
4,444 Views
Registered: ‎05-15-2012

Initialising Main Memory (DDR3) with Data Without Bootloop

Jump to solution

Hi guys

 

I've been searching this topic a while now and can't seem to find anything that addresses my problem directly. What I am after is to initialise main memory with data (just like the SDK does before it starts the Microblaze), but without going through the usual bootloop that the SDK uses.

 

I'm nowhere near an expert on the bootloop/bootloader sides of things, but my understanding is that it is used to stall a processor until the board is configured so that it doesn't execute 'bad' instructions. But what I want to know is how the SDK/XMD does this initialisation of main memory whilst the processor is stalled. For example, if you have say a linker section with some data in it for testing, how can you get that data into main memory?

 

I know you can't use bmm and impact since these are only helpful for initialising BRAM. And the only other topic I've found that is slightly relevant is the use of FLASH for storing non-volatile data and then loading it into memory upon start up. But is there no way to simply load a linker section into main memory without going through the Microblaze bootloop?

 

I've tried the XMD and get similar messages from the console that you would get if you used the bootloop (messages indicating the sections of the linker and their addresses), but nothing is actually uploaded to the board for main memory, only BRAM.

 

Does anyone have any ideas or input on this matter?

 

Any help is much appreciated.

 

Cheers

 

David

0 Kudos
1 Solution

Accepted Solutions
dawatson
Observer
Observer
5,566 Views
Registered: ‎05-15-2012

Just to close this thread. It is possible through bootloops and FPGA programming. But most of the work requried is designing the software of the Microblazes present in the design to use pointers to the memory you want initialised.

View solution in original post

0 Kudos
5 Replies
sampatd
Scholar
Scholar
4,413 Views
Registered: ‎09-05-2011
0 Kudos
dawatson
Observer
Observer
4,411 Views
Registered: ‎05-15-2012

That actually looks like what I need, but I think that's for 14.7 and I'm on 13.1. **bleep**!

 

Just now I'm trying a mixture of bootloop on one core to load the sections and downloading the .elf files for the other cores manually, but keep getting .elf verify fails.

 

Thanks for the input!

0 Kudos
sampatd
Scholar
Scholar
4,408 Views
Registered: ‎09-05-2011
You are right!!

That is a relatively new feature in SDK. You might want to upgrade.

Regards,
0 Kudos
dawatson
Observer
Observer
4,406 Views
Registered: ‎05-15-2012

Yeah I'll look into upgrading because I think the debug module supports up to 32 MBs in the later versions which would also let me side-step this issue.

 

But I'll keep at it for the time being and hopefully have a solution that might be useful to the forum.

 

Thanks again.

0 Kudos
dawatson
Observer
Observer
5,567 Views
Registered: ‎05-15-2012

Just to close this thread. It is possible through bootloops and FPGA programming. But most of the work requried is designing the software of the Microblazes present in the design to use pointers to the memory you want initialised.

View solution in original post

0 Kudos