Set chainloader relocation address to 32 MiB

Apparently, this is needed according to #53 for compatibility to Pi3 A+ devices.

Fixes #53
pull/54/head
Andre Richter 4 years ago
parent 792b208643
commit 3a794448ad
No known key found for this signature in database
GPG Key ID: 2116C1AB102F615E

@ -57,7 +57,7 @@ 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 (`0x1000_0XXX`):
relocated code at (`0x0200_0XXX`):
```console
$ make qemuasm
@ -71,12 +71,12 @@ IN:
----------------
IN:
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
0x02000b1c: b0000008 adrp x8, #0x2001000
0x02000b20: b0000009 adrp x9, #0x2001000
0x02000b24: f9475d08 ldr x8, [x8, #0xeb8]
0x02000b28: f9476129 ldr x9, [x9, #0xec0]
0x02000b2c: eb08013f cmp x9, x8
0x02000b30: 540000c2 b.hs #0x2000b48
[...]
```
@ -253,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 256 MiB */
+ . = 0x10000000;
+ /* Set the link address to 32 MiB */
+ . = 0x2000000;
+ __binary_start = .;
.text :

Binary file not shown.

Binary file not shown.

@ -5,8 +5,8 @@
SECTIONS
{
/* Set the link address to 256 MiB */
. = 0x10000000;
/* Set the link address to 32 MiB */
. = 0x2000000;
__binary_start = .;
.text :

@ -272,8 +272,8 @@ diff -uNr 07_uart_chainloader/src/bsp/raspberrypi/link.ld 08_timestamps/src/bsp/
SECTIONS
{
- /* Set the link address to 256 MiB */
- . = 0x10000000;
- /* Set the link address to 32 MiB */
- . = 0x2000000;
+ /* Set current address to the value from which the RPi starts execution */
+ . = 0x80000;

Loading…
Cancel
Save