From 114896f06fa80f11392bc474a2f3b597caa80643 Mon Sep 17 00:00:00 2001 From: Dave Murphy Date: Sat, 14 Jan 2017 23:56:43 +0000 Subject: [PATCH] allow external relocation of arm9i binary load address --- dkarm-eabi/crtls/ds_arm9.ld | 2 +- dkarm-eabi/crtls/ds_arm9_crt0.s | 10 +++------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/dkarm-eabi/crtls/ds_arm9.ld b/dkarm-eabi/crtls/ds_arm9.ld index 82aaa6b..67b68e0 100644 --- a/dkarm-eabi/crtls/ds_arm9.ld +++ b/dkarm-eabi/crtls/ds_arm9.ld @@ -216,7 +216,7 @@ SECTIONS .twl __end__ : AT(MAX(0x2400000,MAX(__end__,LOADADDR(.vectors)+SIZEOF(.vectors)))) { - __arm9i_lma = LOADADDR(.twl); + __arm9i_lma__ = LOADADDR(.twl); __arm9i_start__ = ABSOLUTE(.); *(.twl) *.twl*(.text .stub .text.* .gnu.linkonce.t.*) diff --git a/dkarm-eabi/crtls/ds_arm9_crt0.s b/dkarm-eabi/crtls/ds_arm9_crt0.s index 1a0903b..520d951 100644 --- a/dkarm-eabi/crtls/ds_arm9_crt0.s +++ b/dkarm-eabi/crtls/ds_arm9_crt0.s @@ -105,9 +105,9 @@ _start: @ Copy TWL area (arm9i section) from LMA to VMA - adr r0, arm9ilma @ Calculate ARM9i LMA - ldr r1, [r0] - add r1, r1, r0 + mov r11, r11 + ldr r1, =0x02ffe1c8 @ Get ARM9i LMA from header + ldr r1, [r1] ldr r2, =__arm9i_start__ cmp r1, r2 @ skip copy if LMA=VMA @@ -150,10 +150,6 @@ NotTWL: ldr lr, =__libnds_exit bx r3 @ jump to user code -@--------------------------------------------------------------------------------- -arm9ilma: - .word __arm9i_lma__ - . - @--------------------------------------------------------------------------------- @ check for a commandline @---------------------------------------------------------------------------------