RE: What does LOADADDR=0x20008000 mean in linux kernel make command? and what is kernel load address?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

For anyone’s help..

I asked this question to unix stackexchage and received an answer.

https://unix.stackexchange.com/questions/674155/what-does-loadaddr-0x20008000-mean-in-linux-kernel-make-command

regards,

Chan Kim

 

From: Chan Kim <ckim@xxxxxxxxxx>
Sent: Thursday, October 21, 2021 3:00 PM
To: kernelnewbies@xxxxxxxxxxxxxxxxx
Subject: What does LOADADDR=0x20008000 mean in linux kernel make command? and what is kernel load address?

 

Hello all,

I'm learning u-boot these days and have a question.

Using qemu model, I could (using qemu) load the Image (for arm64) on memory location I want and I could run the kernel booting using `booti ker_add initrd_addr dtb_addr` command.

As you know in arm64, the uImage format is not supported.

Then, when building linux kernel for arm (32 bit) using u-boot, what does make LOADADDR=0x20008000 uImage mean?

Regardless of this LOADADDR, we can load (from SD card or network) the uImage anywhere we want using u-boot shell. Then what is this LOADADDR?

Does it mean that when we run `bootm` command, the u-boot program relocates the kernel image inside the uImage to 0x20008000?

(and the kernel built not using position independent, PC-relative addressing..using hard absolute addresses..)

Some years ago, we used kernel start address during the build and I had to load the kernel image exactly on that address. But this time I could load Image anywhere I want and could run it. Why?

Is it because I (not knowingly) compiled the arm64 Image using position independent address(-PIE option)?

If someone with expertise could explain to me whats happening here, I would really really appreciate it.

Thank you.

Best regards,

Chan Kim

 

 

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]

  Powered by Linux