From: chaoskagami Date: Mon, 20 Jun 2016 22:03:12 +0000 (-0400) Subject: Add chainloader code X-Git-Tag: v0.1.1~9 X-Git-Url: https://chaos.moe/g/?a=commitdiff_plain;h=a48516b1c993e9138abe5c09f66ef9dac681238a;p=corbenik%2Fcorbenik.git Add chainloader code --- diff --git a/external/Makefile b/external/Makefile index bbe93fe..21f1350 100644 --- a/external/Makefile +++ b/external/Makefile @@ -2,10 +2,10 @@ all: loader bits screeninit mkdir -p ../out/corbenik/module mkdir -p ../out/corbenik/bits - mkdir -p ../out/corbenik/bits cp loader/loader.cxi ../out/corbenik/module/loader.cxi cp bits/backdoor.bin ../out/corbenik/bits/backdoor.bin cp bits/emunand.bin ../out/corbenik/bits/emunand.bin + cp bits/chain.bin ../out/corbenik/bits/chain.bin cp bits/reboot_hook.bin ../out/corbenik/bits/reboot_hook.bin cp bits/reboot_code.bin ../out/corbenik/bits/reboot_code.bin cp screeninit/build/screeninit.bin ../out/corbenik/bits/screeninit.bin diff --git a/external/bits/Makefile b/external/bits/Makefile index a25dfa7..22c4087 100644 --- a/external/bits/Makefile +++ b/external/bits/Makefile @@ -1,6 +1,6 @@ PATH := $(PATH):$(DEVKITARM)/bin -all: backdoor.bin stub.bin emunand.bin reboot_hook.bin reboot_code.bin +all: backdoor.bin stub.bin emunand.bin reboot_hook.bin reboot_code.bin chain.bin %.o: %.s arm-none-eabi-as -o $@ $< diff --git a/external/bits/chain.s b/external/bits/chain.s new file mode 100644 index 0000000..350dfff --- /dev/null +++ b/external/bits/chain.s @@ -0,0 +1,19 @@ +.syntax unified +.section .text +.global copy +copy: // void copy(uint8_t* data, uint32_t size) + ldr r3, value + add r1, r0, r1 + + inner: + cmp r0, r1 + ldrbne r2, [r0], #1 + strbne r2, [r3, #1]! + bne inner + +boot: + ldr r3, offset + bx r3 + +value: .int 0x23efffff +offset: .int 0x23f00000