173 lines
2.8 KiB
ArmAsm
173 lines
2.8 KiB
ArmAsm
|
#define VMLINUX_SYMBOL(_sym_) _##_sym_
|
||
|
#include <asm-generic/vmlinux.lds.h>
|
||
|
#include <linux/config.h>
|
||
|
|
||
|
/* target memory map */
|
||
|
#ifdef CONFIG_H8300H_GENERIC
|
||
|
#define ROMTOP 0x000000
|
||
|
#define ROMSIZE 0x400000
|
||
|
#define RAMTOP 0x400000
|
||
|
#define RAMSIZE 0x400000
|
||
|
#endif
|
||
|
|
||
|
#ifdef CONFIG_H8300H_AKI3068NET
|
||
|
#define ROMTOP 0x000000
|
||
|
#define ROMSIZE 0x080000
|
||
|
#define RAMTOP 0x400000
|
||
|
#define RAMSIZE 0x200000
|
||
|
#endif
|
||
|
|
||
|
#ifdef CONFIG_H8300H_H8MAX
|
||
|
#define ROMTOP 0x000000
|
||
|
#define ROMSIZE 0x080000
|
||
|
#define RAMTOP 0x400000
|
||
|
#define RAMSIZE 0x200000
|
||
|
#endif
|
||
|
|
||
|
#ifdef CONFIG_H8300H_SIM
|
||
|
#define ROMTOP 0x000000
|
||
|
#define ROMSIZE 0x400000
|
||
|
#define RAMTOP 0x400000
|
||
|
#define RAMSIZE 0x400000
|
||
|
#endif
|
||
|
|
||
|
#ifdef CONFIG_H8S_SIM
|
||
|
#define ROMTOP 0x000000
|
||
|
#define ROMSIZE 0x400000
|
||
|
#define RAMTOP 0x400000
|
||
|
#define RAMSIZE 0x800000
|
||
|
#endif
|
||
|
|
||
|
#ifdef CONFIG_H8S_EDOSK2674
|
||
|
#define ROMTOP 0x000000
|
||
|
#define ROMSIZE 0x400000
|
||
|
#define RAMTOP 0x400000
|
||
|
#define RAMSIZE 0x800000
|
||
|
#endif
|
||
|
|
||
|
#if defined(CONFIG_H8300H_SIM) || defined(CONFIG_H8S_SIM)
|
||
|
INPUT(romfs.o)
|
||
|
#endif
|
||
|
|
||
|
_jiffies = _jiffies_64 + 4;
|
||
|
|
||
|
ENTRY(__start)
|
||
|
|
||
|
SECTIONS
|
||
|
{
|
||
|
#if defined(CONFIG_ROMKERNEL)
|
||
|
. = ROMTOP;
|
||
|
.vectors :
|
||
|
{
|
||
|
__vector = . ;
|
||
|
*(.vectors*)
|
||
|
}
|
||
|
#else
|
||
|
. = RAMTOP;
|
||
|
.bootvec :
|
||
|
{
|
||
|
*(.bootvec)
|
||
|
}
|
||
|
#endif
|
||
|
.text :
|
||
|
{
|
||
|
#if defined(CONFIG_ROMKERNEL)
|
||
|
*(.int_redirect)
|
||
|
#endif
|
||
|
__stext = . ;
|
||
|
*(.text)
|
||
|
SCHED_TEXT
|
||
|
LOCK_TEXT
|
||
|
__etext = . ;
|
||
|
. = ALIGN(16); /* Exception table */
|
||
|
___start___ex_table = .;
|
||
|
*(__ex_table)
|
||
|
___stop___ex_table = .;
|
||
|
}
|
||
|
|
||
|
RODATA
|
||
|
#if defined(CONFIG_ROMKERNEL)
|
||
|
SECURITY_INIT
|
||
|
#endif
|
||
|
ROEND = .;
|
||
|
#if defined(CONFIG_ROMKERNEL)
|
||
|
. = RAMTOP;
|
||
|
.data : AT(ROEND)
|
||
|
#else
|
||
|
.data :
|
||
|
#endif
|
||
|
{
|
||
|
__sdata = . ;
|
||
|
___data_start = . ;
|
||
|
|
||
|
. = ALIGN(0x2000) ;
|
||
|
*(.data.init_task)
|
||
|
. = ALIGN(0x4) ;
|
||
|
*(.data)
|
||
|
. = ALIGN(0x4) ;
|
||
|
*(.data.*)
|
||
|
|
||
|
. = ALIGN(0x4) ;
|
||
|
___init_begin = .;
|
||
|
__sinittext = .;
|
||
|
*(.init.text)
|
||
|
__einittext = .;
|
||
|
*(.init.data)
|
||
|
. = ALIGN(0x4) ;
|
||
|
___setup_start = .;
|
||
|
*(.init.setup)
|
||
|
. = ALIGN(0x4) ;
|
||
|
___setup_end = .;
|
||
|
___initcall_start = .;
|
||
|
*(.initcall1.init)
|
||
|
*(.initcall2.init)
|
||
|
*(.initcall3.init)
|
||
|
*(.initcall4.init)
|
||
|
*(.initcall5.init)
|
||
|
*(.initcall6.init)
|
||
|
*(.initcall7.init)
|
||
|
___initcall_end = .;
|
||
|
___con_initcall_start = .;
|
||
|
*(.con_initcall.init)
|
||
|
___con_initcall_end = .;
|
||
|
*(.exit.text)
|
||
|
*(.exit.data)
|
||
|
. = ALIGN(4);
|
||
|
___initramfs_start = .;
|
||
|
*(.init.ramfs)
|
||
|
___initramfs_end = .;
|
||
|
. = ALIGN(0x4) ;
|
||
|
___init_end = .;
|
||
|
__edata = . ;
|
||
|
}
|
||
|
#if defined(CONFIG_RAMKERNEL)
|
||
|
SECURITY_INIT
|
||
|
#endif
|
||
|
__begin_data = LOADADDR(.data);
|
||
|
.bss :
|
||
|
{
|
||
|
. = ALIGN(0x4) ;
|
||
|
__sbss = . ;
|
||
|
*(.bss*)
|
||
|
. = ALIGN(0x4) ;
|
||
|
*(COMMON)
|
||
|
. = ALIGN(0x4) ;
|
||
|
__ebss = . ;
|
||
|
__end = . ;
|
||
|
__ramstart = .;
|
||
|
}
|
||
|
/DISCARD/ : {
|
||
|
*(.exitcall.exit)
|
||
|
}
|
||
|
.romfs :
|
||
|
{
|
||
|
*(.romfs*)
|
||
|
}
|
||
|
. = RAMTOP+RAMSIZE;
|
||
|
.dummy :
|
||
|
{
|
||
|
COMMAND_START = . - 0x200 ;
|
||
|
__ramend = . ;
|
||
|
}
|
||
|
}
|