summaryrefslogtreecommitdiff
path: root/boards
diff options
context:
space:
mode:
Diffstat (limited to 'boards')
-rw-r--r--boards/qemu-virt/qemu-virt.ld1
-rw-r--r--boards/qemu-virt/qemu-virt.s5
2 files changed, 6 insertions, 0 deletions
diff --git a/boards/qemu-virt/qemu-virt.ld b/boards/qemu-virt/qemu-virt.ld
index 1b9ff79..1fd3c22 100644
--- a/boards/qemu-virt/qemu-virt.ld
+++ b/boards/qemu-virt/qemu-virt.ld
@@ -29,6 +29,7 @@ SECTIONS {
}
. = ALIGN(0x1000);
.hart0_initial_stack : {
+ PROVIDE(hart0_initial_stack = .);
. += 0x1000;
PROVIDE(hart0_initial_stack_top = .);
}
diff --git a/boards/qemu-virt/qemu-virt.s b/boards/qemu-virt/qemu-virt.s
index b9544be..c7e7642 100644
--- a/boards/qemu-virt/qemu-virt.s
+++ b/boards/qemu-virt/qemu-virt.s
@@ -19,6 +19,11 @@ _start:
## Set up hart0's stack.
la sp, hart0_initial_stack_top
+ ## Write a canary to hart0's stack.
+ li t0, 0xdead0bad0defaced
+ la t1, hart0_initial_stack
+ sd t0, (t1)
+
## Put the address of the DeviceTree into the first argument position
## for hart0_boot.
c.mv a0, a1