From 91c7d606381f646649dfb1d39d422b7615172282 Mon Sep 17 00:00:00 2001 From: Jonathan Herrewijnen Date: Tue, 27 Aug 2024 20:18:39 +0200 Subject: [PATCH] Adding third (variable) debugger --- source/gupje_device/Makefile | 9 ++++++++- source/gupje_device/device.h | 8 ++++++++ source/gupje_device/reloc_linkscript_0x2019e5c.ld | 14 ++++++++++++++ source/gupje_device/reloc_symbols_0x2019e5c.txt | 12 ++++++++++++ 4 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 source/gupje_device/reloc_linkscript_0x2019e5c.ld create mode 100644 source/gupje_device/reloc_symbols_0x2019e5c.txt diff --git a/source/gupje_device/Makefile b/source/gupje_device/Makefile index 62d0aa5..c0063f6 100644 --- a/source/gupje_device/Makefile +++ b/source/gupje_device/Makefile @@ -8,7 +8,7 @@ OBJCOPY := $(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64 LD := $(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ld.bfd #==================Target Samsung S7 (8890)================== -all: samsung_s7 samsung_s7_reloc +all: samsung_s7 samsung_s7_reloc samsung_s7_reloc_0x2019e5c CFLAGS_SAMSUNGS7 = -Os -Idevices/samsung_s7/ samsung_s7: @@ -26,3 +26,10 @@ samsung_s7_reloc: $(LD) -T devices/samsung_s7/reloc_linkscript.ld bin/samsung_s7/reloc_entry.o bin/samsung_s7/reloc_debugger.o -o bin/samsung_s7/reloc_debugger.elf --just-symbols=devices/samsung_s7/reloc_symbols.txt $(OBJCOPY) -O binary bin/samsung_s7/reloc_debugger.elf bin/samsung_s7/reloc_debugger.bin +CFLAGS_SAMSUNGS7_RELOC_0x2019e5c = -Os -DRELOC_DEBUGGER_2=1 -Idevices/samsung_s7/ +samsung_s7_reloc_0x2019e5c: + [ -d bin/samsung_s7 ] || mkdir -p bin/samsung_s7/ + $(CC) arm64_stub.S -c -o bin/samsung_s7/reloc_entry_0x2019e5c.o $(CFLAGS_SAMSUNGS7_RELOC_0x2019e5c) + $(CC) debugger.c -c -o bin/samsung_s7/reloc_debugger_0x2019e5c.o $(CFLAGS_SAMSUNGS7_RELOC_0x2019e5c) + $(LD) -T devices/samsung_s7/reloc_linkscript_0x2019e5c.ld bin/samsung_s7/reloc_entry_0x2019e5c.o bin/samsung_s7/reloc_debugger_0x2019e5c.o -o bin/samsung_s7/reloc_debugger_0x2019e5c.elf --just-symbols=devices/samsung_s7/reloc_symbols_0x2019e5c.txt + $(OBJCOPY) -O binary bin/samsung_s7/reloc_debugger_0x2019e5c.elf bin/samsung_s7/reloc_debugger_0x2019e5c.bin diff --git a/source/gupje_device/device.h b/source/gupje_device/device.h index d255992..ac46c8f 100644 --- a/source/gupje_device/device.h +++ b/source/gupje_device/device.h @@ -29,6 +29,14 @@ int mystrlen(char *data) { #define data_received 0x206f100 #endif +#ifdef RELOC_DEBUGGER_2 +#define recv_buffer 0x14AC4200 +#define data_received 0x14AC4000 +#else +#define recv_buffer 0x206f000 //0x02021800 + 0x3000 +#define data_received 0x206f100 +#endif + void recv_data_cb(uint32_t endpoint, uint32_t len){ char *dest_buf = (char *)recv_buffer; volatile void *dref = (void *)data_received; diff --git a/source/gupje_device/reloc_linkscript_0x2019e5c.ld b/source/gupje_device/reloc_linkscript_0x2019e5c.ld new file mode 100644 index 0000000..2f4f5ed --- /dev/null +++ b/source/gupje_device/reloc_linkscript_0x2019e5c.ld @@ -0,0 +1,14 @@ +MEMORY { + ROM (rwx): ORIGIN = 0x14AC0000, LENGTH = 0x1000 +} + +SECTIONS +{ + . = 0x14AC0000; + .text . : { + *(.text*) + *(.data*) + *(.rodata*) + } >ROM + +} \ No newline at end of file diff --git a/source/gupje_device/reloc_symbols_0x2019e5c.txt b/source/gupje_device/reloc_symbols_0x2019e5c.txt new file mode 100644 index 0000000..7d4de78 --- /dev/null +++ b/source/gupje_device/reloc_symbols_0x2019e5c.txt @@ -0,0 +1,12 @@ +debugger_storage = 0x14AC3000; +debugger_stack = 0x14AC2000; +debugger_entry = 0x14AC0000; + +maybe_usb_setup_read = 0x00006f88; +dwc3_ep0_start_trans = 0x0000791c; +usb_event_handler = 0x00007bac; +get_endpoint_recv_buffer = 0x00007a7c; +exynos_sleep = 0x000027c8; + +g_recv_buffer = 0x14AC4200; +g_data_received = 0x14AC4000; \ No newline at end of file