Loading a simple "kernel" at the address other than default on Raspberry Pi 4

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

 



Hi,
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.

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.

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!.

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)?

[1] https://github.com/raspberrypi/documentation/blob/develop/documentation/asciidoc/computers/config_txt/boot.adoc#kernel_address

[2] https://github.com/raspberrypi/linux

[3] https://www.trustedfirmware.org/projects/tf-a/


_______________________________________________
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