
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 addr
Befehl 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 bootm
das 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 LOADADDR
Parameter 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.