From 7248036386101f52427d4842bf5a19a1df2eb6a5 Mon Sep 17 00:00:00 2001 From: Tormod Volden Date: Thu, 19 May 2016 23:19:15 +0200 Subject: [PATCH] dragon-nx32: Zero out udata block instead of loading it Especially handy if the bootloader occupies the area where the udata block will reside. Signed-off-by: Tormod Volden --- Kernel/platform-dragon-nx32/commonmem.s | 2 +- Kernel/platform-dragon-nx32/crt0.s | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Kernel/platform-dragon-nx32/commonmem.s b/Kernel/platform-dragon-nx32/commonmem.s index 335764dd..4e9abfa4 100644 --- a/Kernel/platform-dragon-nx32/commonmem.s +++ b/Kernel/platform-dragon-nx32/commonmem.s @@ -8,7 +8,7 @@ .globl istack_top .globl istack_switched_sp - .area .udata + .area .udata,bss _ub: ; first 512 bytes: starts with struct u_block, with the kernel stack working down from above _udata: diff --git a/Kernel/platform-dragon-nx32/crt0.s b/Kernel/platform-dragon-nx32/crt0.s index 10ce72f6..1ee3eca9 100644 --- a/Kernel/platform-dragon-nx32/crt0.s +++ b/Kernel/platform-dragon-nx32/crt0.s @@ -22,9 +22,13 @@ start: main: orcc #0x10 ; interrupts definitely off lds #kstack_top + clra + ldx #__sectionbase_.udata__ +udata_wipe: sta ,x+ + cmpx #__sectionbase_.udata__+__sectionlen_.udata__ + blo udata_wipe ldx #__sectionbase_.bss__ ldy #__sectionlen_.bss__ - clra bss_wipe: sta ,x+ leay -1,y bne bss_wipe -- 2.34.1