diff options
Diffstat (limited to 'boards')
-rw-r--r-- | boards/qemu-virt/qemu-virt.ld | 1 | ||||
-rw-r--r-- | boards/qemu-virt/qemu-virt.s | 5 |
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 |