rockbox/utils/mks5lboot/dualboot/dualboot.lds

60 lines
1.1 KiB
Text
Raw Normal View History

#define ASM
#include "config.h"
#include "cpu.h"
#include "mks5lboot.h"
ENTRY(_start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
#define BIN_ORIG DFU_LOADADDR + BIN_OFFSET
#define BIN_SIZE MAX_PAYLOAD
MEMORY
{
IRAM : ORIGIN = BIN_ORIG, LENGTH = BIN_SIZE
}
SECTIONS
{
.text : {
*(.init.text*)
*(.text*)
*(.icode*)
. = ALIGN(4);
} > IRAM
/* include initialized BSS (if any) into DFU image */
.bss : {
*(.bss*)
*(.ibss*)
*(COMMON)
. = ALIGN(4);
} > IRAM
#if 1
/* reuse pwnage as stack, 0x30c bytes available */
_exception_stack = BIN_ORIG;
_supervisor_stack = _exception_stack;
#else
/* include stack into DFU image */
.stack : {
. += 0x400;
_supervisor_stack = .;
. += 0x200;
_exception_stack = .;
} > IRAM
#endif
.data : {
*(.data*)
*(.rodata*)
*(.idata*)
*(.irodata*)
/* place bootloader IM3 header at the end, mkdfu
will concatenate the bootloader binary here */
. = ALIGN(16);
*(.im3info.data*)
} > IRAM
}