Was bedeutet LOADADDR=0x20008000 im Make-Befehl des Linux-Kernels?

Was bedeutet LOADADDR=0x20008000 im Make-Befehl des Linux-Kernels?

Ich lerne gerade etwas über u-boot. Mit dem QEMU-Modell könnte ich (mit QEMU) das Image an den gewünschten Speicherort laden und den Kernel mit einem booti addrBefehl booten. Wie Sie wissen, gibt es in arm64 kein uImage.
Was bedeutet das dann, wenn wir einen Linux-Kernel für arm (32 Bit) erstellen make LOADADDR=0x20008000 uImage? Wir könnten das uImage ohnehin (von der SD-Karte oder dem Netzwerk) mit der u-boot-Shell überall dort laden, wo wir wollen. Bedeutet das dann, dass bootmdas u-boot-Programm das Kernel-Image innerhalb des uImage nach 0x20008000 verschiebt, wenn wir einen Befehl ausführen? Es ist schwer, diese Informationen zu finden.

Antwort1

Der LOADADDRParameter gibt an, wo die uImage-Nutzlast selbst im Speicher abgelegt werden soll. Das darin enthaltene zImage (normalerweise) kümmert sich dann bei Bedarf selbst um die Verlagerung.

verwandte Informationen