2004-11-10 04:58:50

by Yoshinori Sato

[permalink] [raw]
Subject: [PATCH] H8/300 vmlinux.lds update

Signed-off-by: Yoshinori Sato <[email protected]>

diff -Nru a/arch/h8300/kernel/vmlinux.lds.S b/arch/h8300/kernel/vmlinux.lds.S
--- a/arch/h8300/kernel/vmlinux.lds.S 2004-11-10 13:42:15 +09:00
+++ b/arch/h8300/kernel/vmlinux.lds.S 2004-11-10 13:42:15 +09:00
@@ -1,60 +1,48 @@
#define VMLINUX_SYMBOL(_sym_) _##_sym_
#include <asm-generic/vmlinux.lds.h>
-#include <asm/thread_info.h>
#include <linux/config.h>

+/* target memory map */
#ifdef CONFIG_H8300H_GENERIC
-#ifdef CONFIG_ROMKERNEL
-#include "../platform/h8300h/generic/rom.ld"
-#endif
-#ifdef CONFIG_RAMKERNEL
-#include "../platform/h8300h/generic/ram.ld"
-#endif
+#define ROMTOP 0x000000
+#define ROMSIZE 0x200000
+#define RAMTOP 0x200000
+#define RAMSIZE 0x200000
#endif

#ifdef CONFIG_H8300H_AKI3068NET
-#ifdef CONFIG_ROMKERNEL
-#include "../platform/h8300h/aki3068net/rom.ld"
-#endif
-#ifdef CONFIG_RAMKERNEL
-#include "../platform/h8300h/aki3068net/ram.ld"
-#endif
+#define ROMTOP 0x000000
+#define ROMSIZE 0x080000
+#define RAMTOP 0x400000
+#define RAMSIZE 0x200000
#endif

#ifdef CONFIG_H8300H_H8MAX
-#ifdef CONFIG_ROMKERNEL
-#include "../platform/h8300h/h8max/rom.ld"
-#endif
-#ifdef CONFIG_RAMKERNEL
-#include "../platform/h8300h/h8max/ram.ld"
-#endif
+#define ROMTOP 0x000000
+#define ROMSIZE 0x080000
+#define RAMTOP 0x400000
+#define RAMSIZE 0x200000
#endif

#ifdef CONFIG_H8300H_SIM
-#ifdef CONFIG_ROMKERNEL
-#include "../platform/h8300h/generic/rom.ld"
-#endif
-#ifdef CONFIG_RAMKERNEL
-#include "../platform/h8300h/generic/ram.ld"
-#endif
+#define ROMTOP 0x000000
+#define ROMSIZE 0x200000
+#define RAMTOP 0x200000
+#define RAMSIZE 0x200000
#endif

#ifdef CONFIG_H8S_SIM
-#ifdef CONFIG_ROMKERNEL
-#include "../platform/h8s/generic/rom.ld"
-#endif
-#ifdef CONFIG_RAMKERNEL
-#include "../platform/h8s/generic/ram.ld"
-#endif
+#define ROMTOP 0x000000
+#define ROMSIZE 0x200000
+#define RAMTOP 0x200000
+#define RAMSIZE 0x200000
#endif

#ifdef CONFIG_H8S_EDOSK2674
-#ifdef CONFIG_ROMKERNEL
-#include "../platform/h8s/edosk2674/rom.ld"
-#endif
-#ifdef CONFIG_RAMKERNEL
-#include "../platform/h8s/edosk2674/ram.ld"
-#endif
+#define ROMTOP 0x000000
+#define ROMSIZE 0x400000
+#define RAMTOP 0x400000
+#define RAMSIZE 0x800000
#endif

#if defined(CONFIG_H8300H_SIM) || defined(CONFIG_H8S_SIM)
@@ -66,68 +54,45 @@
SECTIONS
{
#if defined(CONFIG_ROMKERNEL)
+ . = ROMTOP;
.vectors :
{
__vector = . ;
*(.vectors*)
- } > vector
-#endif
-#if defined(CONFIG_RAMKERNEL)
- .bootvec :
+ }
+#else
+ . = RAMTOP;
+ .bootvec :
{
*(.bootvec)
- } > ram
+ }
#endif
.text :
{
#if defined(CONFIG_ROMKERNEL)
- *(.int_redirect)
+ *(.int_redirect)
#endif
__stext = . ;
*(.text)
SCHED_TEXT
- . = ALIGN(0x4) ;
- *(.exit.text)
- *(.text.*)
- . = ALIGN(0x4) ;
- *(.exitcall.exit)
- . = ALIGN(0x4) ;
- *(.kstrtab)
- . = ALIGN(0x4) ;
- *(.rodata*)
+ LOCK_TEXT
+ __etext = . ;
. = ALIGN(16); /* Exception table */
___start___ex_table = .;
*(__ex_table)
___stop___ex_table = .;

- ___start___ksymtab = .; /* Kernel symbol table */
- *(__ksymtab)
- ___stop___ksymtab = .;
-
- ___start___ksymtab_gpl = .; /* Kernel symbol table: GPL-only symbols */
-
- *(__ksymtab_gpl)
- ___stop___ksymtab_gpl = .;
-
- ___start___kcrctab = .; /* Kernel symbol table: Normal symbols */
- *(__kcrctab)
- ___stop___kcrctab = .;
-
- ___start___kcrctab_gpl = .; /* Kernel symbol table: GPL-only symbols */
- *(__kcrctab_gpl)
- ___stop___kcrctab_gpl = .;
-
- *(__ksymtab_strings) /* Kernel symbol table: strings */
-
- . = ALIGN(0x4) ;
- __etext = . ;
+ RODATA
#if defined(CONFIG_ROMKERNEL)
- } > rom
+ SECURITY_INIT
#endif
-#if defined(CONFIG_RAMKERNEL)
- } > ram
+ ROEND = .;
+#if defined(CONFIG_ROMKERNEL)
+ . = RAMTOP;
+ .data : AT(ROEND)
+#else
+ .data :
#endif
- .data : AT( ADDR(.text)+SIZEOF(.text))
{
__sdata = . ;
___data_start = . ;
@@ -162,6 +127,8 @@
___con_initcall_start = .;
*(.con_initcall.init)
___con_initcall_end = .;
+ *(.exit.text)
+ *(.exit.data)
. = ALIGN(4);
___initramfs_start = .;
*(.init.ramfs)
@@ -169,13 +136,13 @@
. = ALIGN(0x4) ;
___init_end = .;
__edata = . ;
- } > ram
+ }
+#if defined(CONFIG_RAMKERNEL)
+ SECURITY_INIT
+#endif
__begin_data = LOADADDR(.data) ;
#if defined(CONFIG_ROMKERNEL)
- .erom :
- {
- __erom = . ;
- } > erom
+ __erom = LOADADDR(.data) + SIZEOF(.data) ;
#endif
.bss :
{
@@ -188,15 +155,19 @@
__ebss = . ;
__end = . ;
__ramstart = .;
- } > ram
+ }
+ /DISCARD/ : {
+ *(.exitcall.exit)
+ }
+
.romfs :
{
*(.romfs*)
- } > ram
+ }
+ . = RAMTOP+RAMSIZE;
.dummy :
{
COMMAND_START = . - 0x200 ;
__ramend = . ;
- } > eram
+ }
}
-
diff -Nru a/arch/h8300/platform/h8300h/aki3068net/ram.ld b/arch/h8300/platform/h8300h/aki3068net/ram.ld
--- a/arch/h8300/platform/h8300h/aki3068net/ram.ld 2004-11-10 13:42:15 +09:00
+++ /dev/null Wed Dec 31 16:00:00 196900
@@ -1,11 +0,0 @@
-/* AE-3068 (aka. aki3068net) RAM */
-
-OUTPUT_ARCH(h8300h)
-ENTRY("__start")
-
-MEMORY
- {
- ram : ORIGIN = 0x400000, LENGTH = 0x600000-0x400000
- eram : ORIGIN = 0x600000, LENGTH = 0
- iram : ORIGIN = 0xffbf20, LENGTH = 0x4000
- }
diff -Nru a/arch/h8300/platform/h8300h/generic/ram.ld b/arch/h8300/platform/h8300h/generic/ram.ld
--- a/arch/h8300/platform/h8300h/generic/ram.ld 2004-11-10 13:42:15 +09:00
+++ /dev/null Wed Dec 31 16:00:00 196900
@@ -1,11 +0,0 @@
-/* Generic RAM */
-
-OUTPUT_ARCH(h8300h)
-ENTRY("__start")
-
-MEMORY
- {
- ram : ORIGIN = 0x400000, LENGTH = 0x200000
- eram : ORIGIN = 0x600000, LENGTH = 0
- iram : ORIGIN = 0xffbf20, LENGTH = 0x4000
- }
diff -Nru a/arch/h8300/platform/h8300h/generic/rom.ld b/arch/h8300/platform/h8300h/generic/rom.ld
--- a/arch/h8300/platform/h8300h/generic/rom.ld 2004-11-10 13:42:15 +09:00
+++ /dev/null Wed Dec 31 16:00:00 196900
@@ -1,12 +0,0 @@
-OUTPUT_ARCH(h8300h)
-ENTRY("__start")
-
-MEMORY
- {
- vector : ORIGIN = 0x000000, LENGTH = 0x000100
- rom : ORIGIN = 0x000100, LENGTH = 0x200000-0x000100
- erom : ORIGIN = 0x200000, LENGTH = 0
- ram : ORIGIN = 0x200000, LENGTH = 0x400000
- eram : ORIGIN = 0x600000, LENGTH = 0
- }
-
diff -Nru a/arch/h8300/platform/h8300h/h8max/ram.ld b/arch/h8300/platform/h8300h/h8max/ram.ld
--- a/arch/h8300/platform/h8300h/h8max/ram.ld 2004-11-10 13:42:15 +09:00
+++ /dev/null Wed Dec 31 16:00:00 196900
@@ -1,11 +0,0 @@
-/* H8MAX RAM */
-
-OUTPUT_ARCH(h8300h)
-ENTRY("__start")
-
-MEMORY
- {
- ram : ORIGIN = 0x400000, LENGTH = 0x600000-0x400000
- eram : ORIGIN = 0x600000, LENGTH = 0
- iram : ORIGIN = 0xfffd20, LENGTH = 0x100
- }
diff -Nru a/arch/h8300/platform/h8s/edosk2674/crt0_rom.S b/arch/h8300/platform/h8s/edosk2674/crt0_rom.S
--- a/arch/h8300/platform/h8s/edosk2674/crt0_rom.S 2004-11-10 13:42:15 +09:00
+++ b/arch/h8300/platform/h8s/edosk2674/crt0_rom.S 2004-11-10 13:42:15 +09:00
@@ -181,7 +181,7 @@
.long __start
.long __start
vector = 2
- .rept 126-1
+ .rept 126
.long _interrupt_redirect_table+vector*4
vector = vector + 1
.endr
diff -Nru a/arch/h8300/platform/h8s/edosk2674/ram.ld b/arch/h8300/platform/h8s/edosk2674/ram.ld
--- a/arch/h8300/platform/h8s/edosk2674/ram.ld 2004-11-10 13:42:15 +09:00
+++ /dev/null Wed Dec 31 16:00:00 196900
@@ -1,10 +0,0 @@
-/* EDOSK-2674R RAM */
-
-OUTPUT_ARCH(h8300s)
-ENTRY("__start")
-
-MEMORY
- {
- ram : ORIGIN = 0x400000, LENGTH = 0xc00000-0x400000
- eram : ORIGIN = 0xc00000, LENGTH = 0
- }
diff -Nru a/arch/h8300/platform/h8s/edosk2674/rom.ld b/arch/h8300/platform/h8s/edosk2674/rom.ld
--- a/arch/h8300/platform/h8s/edosk2674/rom.ld 2004-11-10 13:42:15 +09:00
+++ /dev/null Wed Dec 31 16:00:00 196900
@@ -1,11 +0,0 @@
-OUTPUT_ARCH(h8300s)
-ENTRY("__start")
-
-MEMORY
- {
- vector : ORIGIN = 0x000000, LENGTH = 0x000200
- rom : ORIGIN = 0x000200, LENGTH = 0x100000-0x000200
- erom : ORIGIN = 0x100000, LENGTH = 0
- ram : ORIGIN = 0x400000, LENGTH = 0xc00000-0x400000
- eram : ORIGIN = 0xc00000, LENGTH = 0
- }
diff -Nru a/arch/h8300/platform/h8s/generic/ram.ld b/arch/h8300/platform/h8s/generic/ram.ld
--- a/arch/h8300/platform/h8s/generic/ram.ld 2004-11-10 13:42:15 +09:00
+++ /dev/null Wed Dec 31 16:00:00 196900
@@ -1,8 +0,0 @@
-OUTPUT_ARCH(h8300s)
-ENTRY("__start")
-
-MEMORY
- {
- ram : ORIGIN = 0x400000, LENGTH = 0x200000
- eram : ORIGIN = 0x600000, LENGTH = 0
- }
diff -Nru a/arch/h8300/platform/h8s/generic/rom.ld b/arch/h8300/platform/h8s/generic/rom.ld
--- a/arch/h8300/platform/h8s/generic/rom.ld 2004-11-10 13:42:15 +09:00
+++ /dev/null Wed Dec 31 16:00:00 196900
@@ -1,11 +0,0 @@
-OUTPUT_ARCH(h8300s)
-ENTRY("__start")
-
-MEMORY
- {
- vector : ORIGIN = 0x000000, LENGTH = 0x000200
- rom : ORIGIN = 0x000200, LENGTH = 0x200000-0x000200
- erom : ORIGIN = 0x200000, LENGTH = 0
- ram : ORIGIN = 0x200000, LENGTH = 0x400000
- eram : ORIGIN = 0x600000, LENGTH = 0
- }

--
Yoshinori Sato
<[email protected]>