From 26b23eb48660d036d58796a0bcd3766ec12700e1 Mon Sep 17 00:00:00 2001 From: Andre Richter Date: Wed, 8 Apr 2020 23:29:21 +0200 Subject: [PATCH] Change chainloader relocation to 256 MiB This should accommodate devices with less than 1 GiB. --- 07_uart_chainloader/README.md | 25 +++++++++--------- 07_uart_chainloader/kernel | Bin 841056 -> 841056 bytes 07_uart_chainloader/kernel8.img | Bin 7880 -> 7880 bytes .../src/bsp/raspberrypi/link.ld | 4 +-- 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/07_uart_chainloader/README.md b/07_uart_chainloader/README.md index a924e290..589459e4 100644 --- a/07_uart_chainloader/README.md +++ b/07_uart_chainloader/README.md @@ -57,25 +57,26 @@ kernel. The `Makefile` in this tutorial has an additional target, `qemuasm`, that lets you nicely observe the jump from the loaded address (`0x80_XXX`) to the -relocated code at (`0x3EFF_0XXX`): +relocated code at (`0x1000_0XXX`): ```console $ make qemuasm [...] IN: -0x00080990: d0000008 adrp x8, #0x82000 -0x00080994: 52800020 movz w0, #0x1 -0x00080998: f9416908 ldr x8, [x8, #0x2d0] +0x0008098c: b0000008 adrp x8, #0x81000 +0x00080990: b0000000 adrp x0, #0x81000 +0x00080994: 912a8000 add x0, x0, #0xaa0 +0x00080998: f9471908 ldr x8, [x8, #0xe30] 0x0008099c: d63f0100 blr x8 ---------------- IN: -0x3eff0b10: d0000008 adrp x8, #0x3eff2000 -0x3eff0b14: d0000009 adrp x9, #0x3eff2000 -0x3eff0b18: f941ad08 ldr x8, [x8, #0x358] -0x3eff0b1c: f941b129 ldr x9, [x9, #0x360] -0x3eff0b20: eb08013f cmp x9, x8 -0x3eff0b24: 540000c2 b.hs #0x3eff0b3c +0x10000b1c: b0000008 adrp x8, #0x10001000 +0x10000b20: b0000009 adrp x9, #0x10001000 +0x10000b24: f9475d08 ldr x8, [x8, #0xeb8] +0x10000b28: f9476129 ldr x9, [x9, #0xec0] +0x10000b2c: eb08013f cmp x9, x8 +0x10000b30: 540000c2 b.hs #0x10000b48 [...] ``` @@ -252,8 +253,8 @@ diff -uNr 06_drivers_gpio_uart/src/bsp/raspberrypi/link.ld 07_uart_chainloader/s { - /* Set current address to the value from which the RPi starts execution */ - . = 0x80000; -+ /* Set the link address to the top-most 40 KiB of DRAM (assuming 1GiB) */ -+ . = 0x3F000000 - 0x10000; ++ /* Set the link address to 256 MiB */ ++ . = 0x10000000; + __binary_start = .; .text : diff --git a/07_uart_chainloader/kernel b/07_uart_chainloader/kernel index d3d0bb3ddf6eba3260a738dda80d1efb7d94a541..0ebc98978153b38ad89cded349d6eaea8e7adbf7 100755 GIT binary patch delta 8611 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