From 601afcbd0bfea8ec37f34a9cdf41c7dc7a964989 Mon Sep 17 00:00:00 2001 From: Jens Arnold Date: Thu, 30 Oct 2008 00:34:43 +0000 Subject: [PATCH] Minimon is loaded to 0x0ffff000 by uart_boot, so it needs to be linked to that address as well, or it won't work. Also add that hint to the README, fix a warning, and fix the disassembly base address (was wrong either way). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18930 a1c6a512-1295-4272-9138-f99709370657 --- flash/minimon/Makefile | 2 +- flash/minimon/README | 3 +++ flash/minimon/minimon.c | 2 +- flash/minimon/minimon.lds | 20 ++++++++++---------- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/flash/minimon/Makefile b/flash/minimon/Makefile index 57ae13e940..16b6c2724e 100644 --- a/flash/minimon/Makefile +++ b/flash/minimon/Makefile @@ -40,7 +40,7 @@ LINKFILE = $(OBJDIR)/$(TARGET).lds $(OBJDIR)/$(TARGET).bin : $(OBJDIR)/$(TARGET).elf $(OC) -O binary $(OBJDIR)/$(TARGET).elf $(OBJDIR)/$(TARGET).bin - $(TOOLSDIR)/sh2d $(OBJDIR)/$(TARGET).bin -o 0900000 > $(OBJDIR)/$(TARGET).asm + $(TOOLSDIR)/sh2d $(OBJDIR)/$(TARGET).bin -o 0x0ffff000 > $(OBJDIR)/$(TARGET).asm $(OBJDIR)/$(TARGET).elf : $(OBJS) $(CC) -Os -nostdlib -o $(OBJDIR)/$(TARGET).elf -L$(OBJDIR) -T$(LINKFILE) -Wl,-Map,$(OBJDIR)/$(TARGET).map diff --git a/flash/minimon/README b/flash/minimon/README index 4eca81e7e9..d2dc1707a6 100644 --- a/flash/minimon/README +++ b/flash/minimon/README @@ -4,3 +4,6 @@ MiniMon is the tiny but powerful-enough piece of code that can be loaded with the UART boot mod. It allows to read and write memory, flash program, execute code. This is suitable to reflash the box, load Rockbox or the gdb stub, etc. + +The SVN version is linked to 0x0ffff000, i.e. start of IRAM. +This address has to match the address uart_boot downloads it to. \ No newline at end of file diff --git a/flash/minimon/minimon.c b/flash/minimon/minimon.c index e7981f2d09..f34e94ac62 100644 --- a/flash/minimon/minimon.c +++ b/flash/minimon/minimon.c @@ -46,7 +46,7 @@ int main(void) UINT32 size; UINT32 content; volatile UINT8* paddr = 0; - volatile UINT8* pflash; // flash base address + volatile UINT8* pflash = 0; // flash base address while (1) { diff --git a/flash/minimon/minimon.lds b/flash/minimon/minimon.lds index dbdbdc3faa..14150b2123 100644 --- a/flash/minimon/minimon.lds +++ b/flash/minimon/minimon.lds @@ -3,7 +3,7 @@ INPUT(minimon.o) MEMORY { - DRAM : ORIGIN = 0x09000000, LENGTH = 0x200000 + IRAM : ORIGIN = 0x0FFFF000, LENGTH = 0x500 } SECTIONS @@ -12,22 +12,22 @@ SECTIONS { *(.startvector) . = ALIGN(0x4); - } > DRAM + } > IRAM .got : { *(.got) - } > DRAM + } > IRAM .got.plt : { *(.got.plt) - } > DRAM + } > IRAM .rela.got : { *(.rela.got) - } > DRAM + } > IRAM .text : { @@ -35,26 +35,26 @@ SECTIONS *(.entry) *(.text) . = ALIGN(0x4); - } > DRAM + } > IRAM .data : { *(.data) - } > DRAM + } > IRAM .rodata : { *(.rodata) . = ALIGN(0x4); - } > DRAM + } > IRAM .bss : { *(.bss) - } > DRAM + } > IRAM .stack : { *(.stack) - } > DRAM + } > IRAM }