All of lore.kernel.org
 help / color / mirror / Atom feed
* What does LOADADDR=0x20008000 mean in linux kernel make command? and what is kernel load address?
@ 2021-10-21  6:00 Chan Kim
  2021-10-27  9:54 ` Chan Kim
  0 siblings, 1 reply; 2+ messages in thread
From: Chan Kim @ 2021-10-21  6:00 UTC (permalink / raw)
  To: kernelnewbies


[-- Attachment #1.1: Type: text/plain, Size: 1264 bytes --]

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 what's happening here, I would
really really appreciate it. 

Thank you.

Best regards,

Chan Kim

 

 


[-- Attachment #1.2: Type: text/html, Size: 4010 bytes --]

[-- Attachment #2: Type: text/plain, Size: 170 bytes --]

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* RE: What does LOADADDR=0x20008000 mean in linux kernel make command? and what is kernel load address?
  2021-10-21  6:00 What does LOADADDR=0x20008000 mean in linux kernel make command? and what is kernel load address? Chan Kim
@ 2021-10-27  9:54 ` Chan Kim
  0 siblings, 0 replies; 2+ messages in thread
From: Chan Kim @ 2021-10-27  9:54 UTC (permalink / raw)
  To: kernelnewbies


[-- Attachment #1.1: Type: text/plain, Size: 1721 bytes --]

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-0x2000800
0-mean-in-linux-kernel-make-command 

regards,

Chan Kim

 

From: Chan Kim <ckim@etri.re.kr> 
Sent: Thursday, October 21, 2021 3:00 PM
To: kernelnewbies@kernelnewbies.org
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 what's happening here, I would
really really appreciate it. 

Thank you.

Best regards,

Chan Kim

 

 


[-- Attachment #1.2: Type: text/html, Size: 6174 bytes --]

[-- Attachment #2: Type: text/plain, Size: 170 bytes --]

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-10-27  9:56 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-21  6:00 What does LOADADDR=0x20008000 mean in linux kernel make command? and what is kernel load address? Chan Kim
2021-10-27  9:54 ` Chan Kim

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.