vserver 1.9.5.x5
[linux-2.6.git] / arch / h8300 / kernel / vmlinux.lds.S
index 427f189..17fa11d 100644 (file)
@@ -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 0x400000
+#define RAMTOP  0x400000
+#define RAMSIZE 0x400000
 #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 0x400000
+#define RAMTOP  0x400000
+#define RAMSIZE 0x400000
 #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 0x400000
+#define RAMTOP  0x400000
+#define RAMSIZE 0x800000
 #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)
@@ -63,71 +51,51 @@ INPUT(romfs.o)
 
 _jiffies = _jiffies_64 + 4;
 
+ENTRY(__start)
+
 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 +130,8 @@ SECTIONS
        ___con_initcall_start = .;
                *(.con_initcall.init)
        ___con_initcall_end = .;
+               *(.exit.text)
+               *(.exit.data)
                . = ALIGN(4);
        ___initramfs_start = .;
                *(.init.ramfs)
@@ -169,14 +139,11 @@ SECTIONS
        . = ALIGN(0x4) ;
        ___init_end = .;
        __edata = . ;
-       } > ram
-       __begin_data = LOADADDR(.data) ;
-#if defined(CONFIG_ROMKERNEL)
-       .erom :
-       {
-       __erom = . ;
-       } > erom
+       }
+#if defined(CONFIG_RAMKERNEL)
+       SECURITY_INIT
 #endif
+       __begin_data = LOADADDR(.data);
         .bss : 
         {
        . = ALIGN(0x4) ;
@@ -188,15 +155,18 @@ SECTIONS
        __ebss = . ;
        __end = . ;
        __ramstart = .;
-       } > ram
+       }
+       /DISCARD/ : {
+               *(.exitcall.exit)
+       }
         .romfs :       
        {
                *(.romfs*)
-       } > ram
+       }
+       . = RAMTOP+RAMSIZE;
         .dummy :
         {
        COMMAND_START = . - 0x200 ;
        __ramend = . ;
-       } > eram
+       }
 }
-