]> Chaos Git - corbenik/corbenik.git/commitdiff
Add chainloader code
authorchaoskagami <chaos.kagami@gmail.com>
Mon, 20 Jun 2016 22:03:12 +0000 (18:03 -0400)
committerchaoskagami <chaos.kagami@gmail.com>
Mon, 20 Jun 2016 22:03:12 +0000 (18:03 -0400)
external/Makefile
external/bits/Makefile
external/bits/chain.s [new file with mode: 0644]

index bbe93feb7929202750f9d5ba16eba37a5d5767da..21f13501e243d979266a472fe4c869599d033b16 100644 (file)
@@ -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
index a25dfa7cca681a190046d9060983a894f7c16423..22c4087a2fef0fb1c238492d2037ca75761e5350 100644 (file)
@@ -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 (file)
index 0000000..350dfff
--- /dev/null
@@ -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