<div dir="ltr"><div>Hi,</div><div>I have written a simple kernel which prints Hello World to UART. The simple kernel works successfully and prints Hello World to UART, if I load it at 0x80000, which is the default load address for the 64-bit kernel.</div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><br>There's a configuration(config.txt)[1] kernel_address on Raspberry Pi 4 but whenever I change the load address by even 1 byte, the simple kernel would not run. It is only able to run at 0x80000.<br><br>I tried to find the entry address of the standard kernel for raspberry pi[2]. I have trusted firmware-A[3] on my Raspberry Pi, which prints the load address before loading the standard kernel. Entry address for the standard kernel is always 0x200000! Even if I manually change the load address in the raspberry pi configuration, the standard kernel is always loaded at 0x200000!.<br><br>How is the standard kernel being loaded at 0x200000, but my simple kernel cannot be loaded at any address except for the default address(0x80000)?</div><div dir="ltr"><br></div><div>[1] <a href="https://github.com/raspberrypi/documentation/blob/develop/documentation/asciidoc/computers/config_txt/boot.adoc#kernel_address">https://github.com/raspberrypi/documentation/blob/develop/documentation/asciidoc/computers/config_txt/boot.adoc#kernel_address</a><br><br>[2] <a href="https://github.com/raspberrypi/linux">https://github.com/raspberrypi/linux</a><br><br>[3] <a href="https://www.trustedfirmware.org/projects/tf-a/">https://www.trustedfirmware.org/projects/tf-a/</a></div><div><br></div><br></div></div>