| #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 = . ; | |
| } | |
| } |