cancel
Showing results for 
Search instead for 
Did you mean: 
Observer
Observer
196 Views
Registered: ‎05-24-2019

Change .elf load location, ZYNQ

Hello, I am having an issue where I am unable to change the load location of my hello_world.elf in the BootGen. Below is my .bif I am using for the BOOT.bin

 

//arch = zynqmp; split = false; format = BIN
the_ROM_image:
{
[fsbl_config]r5_single
[bootloader]\xilinx.sdk\fsbl_r5\Debug\fsbl_r5.elf
[startup = 0x78100000, destination_cpu = r5-0]xilinx.sdk\hello_world_r5\Debug\hello_world_r5.elf
}

 

What I get out of Serial is:

Xilinx Zynq MP First Stage Boot Loader
Release 2018.3 Nov 26 2019 - 10:05:27
Reset Mode : System Reset
Platform: Silicon (4.0), Cluster ID 0xC0000100
Running on R5-0 Processor, Device Name: XCZUUNKNEG
Initializing TCM ECC
Address 0x400000DF, Length FFE00020, ECC initialized
Address 0x400000DF, Length FFE20000, ECC initialized
Processor Initialization Done
================= In Stage 2 ============
QSPI 32 bit Boot Mode
QSPI is in Dual Parallel connection
QSPI is using 4 bit bus
FlashID=0x20 0xBB 0x21
MICRON 1G Bits
Multiboot Reg : 0x0
QSPI Reading Src 0x0, Dest FFFF1C40, Length EC0
.QSPI Read Src 0x0, Dest FFFF1C40, Length EC0
Image Header Table Offset 0x8C0
QSPI Reading Src 0x8C0, Dest FFFDA260, Length 40
.QSPI Read Src 0x460, Dest FFFDA260, Length 40
*****Image Header Table Details********
Boot Gen Ver: 0x1020000
No of Partitions: 0x3
Partition Header Address: 0x440
Partition Present Device: 0x0
QSPI Reading Src 0x1100, Dest FFFDA2A0, Length 40
.QSPI Read Src 0x880, Dest FFFDA2A0, Length 40
QSPI Reading Src 0x1140, Dest FFFDA2E0, Length 40
.QSPI Read Src 0x8A0, Dest FFFDA2E0, Length 40
QSPI Reading Src 0x1180, Dest FFFDA320, Length 40
.QSPI Read Src 0x8C0, Dest FFFDA320, Length 40
Initialization Success
======= In Stage 3, Partition No:1 =======
UnEncrypted data Length: 0x145
Data word offset: 0x145
Total Data word length: 0x145
Destination Load Address: 0x0
Execution Address: 0x3C
Data word offset: 0x7680
Partition Attributes: 0x51E
XFsbl_PartitionCopy:Going for LOVEC HIGHVEC Mechanism for R5.
QSPI Reading Src 0x1DA00, Dest FFE00000, Length 514
.QSPI Read Src 0xED00, Dest FFE00000, Length 514
XFsbl_PartitionLoad:After Partition Validation
Going for LOVEC HIGHVEC Mechanism for R5.
Partition 1 Load Success
======= In Stage 3, Partition No:2 =======
UnEncrypted data Length: 0x646
Data word offset: 0x646
Total Data word length: 0x646
Destination Load Address: 0x100000
Execution Address: 0x0
Data word offset: 0x77D0
Partition Attributes: 0x51E
QSPI Reading Src 0x1DF40, Dest 100000, Length 1918
.QSPI Read Src 0xEFA0, Dest 100000, Length 1918
Partition 2 Load Success
All Partitions Loaded
================= In Stage 4 ============
PMU-FW is not running, certain applications may not be supported.
Protection configuration applied
XFsbl_Handoff:Restored R5LovecBuffer to LOVEC for R5.
Running Cpu Handoff address: 0x3C, Exec State: 8
Exit from FSBL
Hello World


What I want is the "Running Cpu Handoff address: 0x3C, Exec State: 8" to be for 0x7810000. Am I doing something wrong in my bootgen setup?

Tags (3)
0 Kudos
1 Reply
Highlighted
Moderator
Moderator
155 Views
Registered: ‎09-12-2007

Re: Change .elf load location, ZYNQ

The tools will use the linker info in your ELF to place this into memory as this is where it will execute from. Why are you changing the location of the ELF?

Would you not just be best to change the linker info in the ELF?

You could convert this to a binary fine, and use the load in the bif to place this where you want. However, Im not sure of the use case here.

0 Kudos