Commit a804401e authored by Greg Ungerer's avatar Greg Ungerer Committed by Linus Torvalds

[PATCH] combine all m68knommu arch linker scripts into one

This pulls all of the m68knommu arch linker scripts into a single new
style linker script.  This patch specifically turns
arch/m68knommu/vmlinux.lds.S into a generic linker script that works
with all m68knommu targets.
parent 3f03b7d9
MEMORY {
ram : ORIGIN = 0x10000, LENGTH = 0x200000
}
jiffies = jiffies_64 + 4;
SECTIONS {
.text : {
_stext = . ;
*(.text)
*(.exit.text)
*(.text.lock)
*(.exitcall.exit)
*(.rodata)
. = ALIGN(0x4) ;
*(.kstrtab)
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
*(__ksymtab)
__stop___ksymtab = .;
__start___gpl_ksymtab = .; /* Kernel symbol table: GPL-only */
*(__gpl_ksymtab)
__stop___gpl_ksymtab = .;
. = ALIGN(4) ;
_etext = . ;
} > ram
.data BLOCK(0x4) : {
_sdata = . ;
__data_start = . ;
*(.data)
*(.data.exit)
. = ALIGN(0x2000) ;
*(.data.init_task)
. = ALIGN(0x2000) ;
_edata = . ;
} > ram
.init BLOCK(4096) : {
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
. = ALIGN(4) ;
__init_end = .;
} > ram
.bss BLOCK(0x4) : {
_sbss = . ;
*(.bss)
*(COMMON)
. = ALIGN(4) ;
_ebss = . ;
_end = . ;
} > ram
}
MEMORY {
ram : ORIGIN = 0x20000, LENGTH = 0x007E0000
}
jiffies = jiffies_64 + 4;
SECTIONS {
.text : {
_stext = . ;
*(.text)
*(.exit/text)
*(.text.lock)
*(.exitcall.exit)
*(.rodata)
. = ALIGN(0x4) ;
*(.kstrtab)
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
*(__ksymtab)
__stop___ksymtab = .;
__start___gpl_ksymtab = .; /* Kernel symbol table: GPL-only */
*(__gpl_ksymtab)
__stop___gpl_ksymtab = .;
. = ALIGN(4) ;
_etext = . ;
} > ram
.data BLOCK(0x4) : {
_sdata = . ;
__data_start = . ;
*(.data)
*(.data.exit)
. = ALIGN(0x2000) ;
*(.data.init_task)
. = ALIGN(0x2000) ;
_edata = . ;
} > ram
.init BLOCK(4096) : {
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
. = ALIGN(4) ;
__init_end = .;
} > ram
.bss BLOCK(0x4) : {
_sbss = . ;
*(.bss)
*(COMMON)
. = ALIGN(4) ;
_ebss = . ;
_end = . ;
} > ram
}
MEMORY {
ram : ORIGIN = 0x30020000, LENGTH = 0xe0000
}
jiffies = jiffies_64 + 4;
SECTIONS {
.text 0x30020000 : {
_stext = . ;
*(.text)
*(.exit.text)
*(.text.lock)
*(.exitcall.exit)
*(.rodata)
. = ALIGN(0x4) ;
*(.kstrtab)
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
*(__ksymtab)
__stop___ksymtab = .;
__start___gpl_ksymtab = .; /* Kernel symbol table: GPL-only */
*(__gpl_ksymtab)
__stop___gpl_ksymtab = .;
. = ALIGN(4) ;
_etext = . ;
} > ram
.data BLOCK(0x4) : {
_sdata = . ;
__data_start = . ;
*(.data)
*(.data.exit)
. = ALIGN(0x2000) ;
*(.data.init_task)
. = ALIGN(0x2000) ;
_edata = . ;
} > ram
.init BLOCK(4096) : {
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
. = ALIGN(4) ;
__init_end = .;
} > ram
.bss BLOCK(0x4) : {
_sbss = . ;
*(.bss)
*(COMMON)
. = ALIGN(4) ;
_ebss = . ;
_end = . ;
} > ram
}
MEMORY {
ram : ORIGIN = 0x20000, LENGTH = 0x3e0000
}
jiffies = jiffies_64 + 4;
SECTIONS {
.text : {
_stext = . ;
*(.text)
*(.exit.text)
*(.text.lock)
*(.exitcall.exit)
*(.rodata)
*(.modinfo)
. = ALIGN(0x4) ;
*(.kstrtab)
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
*(__ksymtab)
__stop___ksymtab = .;
__start___gpl_ksymtab = .; /* Kernel symbol table: GPL-only */
*(__gpl_ksymtab)
__stop___gpl_ksymtab = .;
. = ALIGN(4) ;
_etext = . ;
} > ram
.data BLOCK(0x4) : {
. = ALIGN(4);
_sdata = . ;
__data_start = . ;
*(.data)
*(.data.exit)
. = ALIGN(8192) ;
*(.data.init_task)
. = ALIGN(8192) ;
_edata = . ;
} > ram
.init BLOCK(4096) : {
. = ALIGN(4096);
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
. = ALIGN(4);
__init_end = .;
} > ram
.bss BLOCK(0x4) : {
. = ALIGN(4);
_sbss = . ;
*(.bss)
*(COMMON)
. = ALIGN(4) ;
_ebss = . ;
_end = . ;
} > ram
}
MEMORY {
ram : ORIGIN = 0x20000, LENGTH = 0x3e0000
}
jiffies = jiffies_64 + 4;
SECTIONS {
.text : {
_stext = . ;
*(.text)
*(.exit.text)
*(.text.lock)
*(.exitcall.exit)
*(.rodata)
*(.modinfo)
. = ALIGN(0x4) ;
*(.kstrtab)
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
*(__ksymtab)
__stop___ksymtab = .;
__start___gpl_ksymtab = .; /* Kernel symbol table: GPL-only */
*(__gpl_ksymtab)
__stop___gpl_ksymtab = .;
. = ALIGN(4) ;
_etext = . ;
} > ram
.data BLOCK(0x4) : {
. = ALIGN(4);
_sdata = . ;
__data_start = . ;
*(.data)
*(.data.exit)
. = ALIGN(8192) ;
*(.data.init_task)
. = ALIGN(8192) ;
_edata = . ;
} > ram
.init BLOCK(4096) : {
. = ALIGN(4096);
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
. = ALIGN(4);
__init_end = .;
} > ram
.bss BLOCK(0x4) : {
. = ALIGN(4);
_sbss = . ;
*(.bss)
*(COMMON)
. = ALIGN(4) ;
_ebss = . ;
_end = . ;
} > ram
}
MEMORY {
ram : ORIGIN = 0x400, LENGTH = 0x400000
}
jiffies = jiffies_64 + 4;
SECTIONS {
.text : {
_stext = . ;
*(.text)
*(.exit.text)
*(.text.lock)
*(.exitcall.exit)
*(.rodata)
*(.modinfo)
. = ALIGN(0x4) ;
*(.kstrtab)
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
*(__ksymtab)
__stop___ksymtab = .;
__start___gpl_ksymtab = .; /* Kernel symbol table: GPL-only */
*(__gpl_ksymtab)
__stop___gpl_ksymtab = .;
. = ALIGN(4) ;
_etext = . ;
} > ram
.data BLOCK(0x4) : {
. = ALIGN(4);
_sdata = . ;
__data_start = . ;
*(.data)
*(.data.exit)
. = ALIGN(8192) ;
*(.data.init_task)
. = ALIGN(8192) ;
_edata = . ;
} > ram
.init BLOCK(4096) : {
. = ALIGN(4096);
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
. = ALIGN(4);
__init_end = .;
} > ram
.bss BLOCK(0x4) : {
. = ALIGN(4);
_sbss = . ;
*(.bss)
*(COMMON)
. = ALIGN(4) ;
_ebss = . ;
_end = . ;
} > ram
}
MEMORY {
ram : ORIGIN = 0x20000, LENGTH = 0x007E0000
}
jiffies = jiffies_64 + 4;
SECTIONS {
.text : {
_stext = . ;
*(.text)
*(.exit.text)
*(.text.lock)
*(.exitcall.exit)
*(.rodata)
. = ALIGN(0x4) ;
*(.kstrtab)
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
*(__ksymtab)
__stop___ksymtab = .;
__start___gpl_ksymtab = .; /* Kernel symbol table: GPL-only */
*(__gpl_ksymtab)
__stop___gpl_ksymtab = .;
. = ALIGN(4) ;
_etext = . ;
} > ram
.data BLOCK(0x4) : {
_sdata = . ;
__data_start = . ;
*(.data)
*(.data.exit)
. = ALIGN(0x2000) ;
*(.data.init_task)
. = ALIGN(0x2000) ;
_edata = . ;
} > ram
.init BLOCK(4096) : {
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
. = ALIGN(4) ;
__init_end = .;
} > ram
.bss BLOCK(0x4) : {
_sbss = . ;
*(.bss)
*(COMMON)
. = ALIGN(4) ;
_ebss = . ;
_end = . ;
} > ram
}
MEMORY {
ram : ORIGIN = 0x400, LENGTH = 0x1000000
}
jiffies = jiffies_64 + 4;
SECTIONS {
.text : {
_stext = . ;
*(.text)
*(.exit.text)
*(.text.lock)
*(.exitcall.exit)
*(.rodata)
. = ALIGN(0x4) ;
*(.kstrtab)
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
*(__ksymtab)
__stop___ksymtab = .;
__start___gpl_ksymtab = .; /* Kernel symbol table: GPL-only */
*(__gpl_ksymtab)
__stop___gpl_ksymtab = .;
. = ALIGN(4) ;
_etext = . ;
} > ram
.data BLOCK(0x4) : {
_sdata = . ;
__data_start = . ;
*(.data)
*(.data.exit)
. = ALIGN(0x2000) ;
*(.data.init_task)
. = ALIGN(0x2000) ;
_edata = . ;
} > ram
.init BLOCK(4096) : {
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = . ;
. = ALIGN(4);
__init_end = .;
} > ram
.bss BLOCK(0x4) : {
_sbss = . ;
*(.bss)
*(COMMON)
. = ALIGN(4) ;
_ebss = . ;
_end = . ;
} > ram
}
MEMORY {
ram : ORIGIN = 0x20000, LENGTH = 0x007E0000
}
jiffies = jiffies_64 + 4;
SECTIONS {
.text : {
_stext = . ;
*(.text)
*(.exit.text)
*(.text.lock)
*(.exitcall.exit)
*(.rodata)
. = ALIGN(0x4) ;
*(.kstrtab)
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
*(__ksymtab)
__stop___ksymtab = .;
__start___gpl_ksymtab = .; /* Kernel symbol table: GPL-only */
*(__gpl_ksymtab)
__stop___gpl_ksymtab = .;
. = ALIGN(4) ;
_etext = . ;
} > ram
.data BLOCK(0x4) : {
_sdata = . ;
__data_start = . ;
*(.data)
*(.data.exit)
. = ALIGN(0x2000) ;
*(.data.init_task)
. = ALIGN(0x2000) ;
_edata = . ;
} > ram
.init BLOCK(4096) : {
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
. = ALIGN(4) ;
__init_end = .;
} > ram
.bss BLOCK(0x4) : {
_sbss = . ;
*(.bss)
*(COMMON)
. = ALIGN(4) ;
_ebss = . ;
_end = . ;
} > ram
}
MEMORY {
ram : ORIGIN = 0x400, LENGTH = 0x1000000
}
jiffies = jiffies_64 + 4;
SECTIONS {
.text : {
_stext = . ;
*(.text)
*(.exit.text)
*(.text.lock)
*(.exitcall.exit)
*(.rodata)
. = ALIGN(0x4) ;
*(.kstrtab)
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
*(__ksymtab)
__stop___ksymtab = .;
__start___gpl_ksymtab = .; /* Kernel symbol table: GPL-only */
*(__gpl_ksymtab)
__stop___gpl_ksymtab = .;
. = ALIGN(4) ;
_etext = . ;
} > ram
.data BLOCK(0x4) : {
_sdata = . ;
__data_start = . ;
*(.data)
*(.data.exit)
. = ALIGN(0x2000) ;
*(.data.init_task)
. = ALIGN(0x2000) ;
_edata = . ;
} > ram
.init BLOCK(4096) : {
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = . ;
. = ALIGN(4);
__init_end = .;
} > ram
.bss BLOCK(0x4) : {
_sbss = . ;
*(.bss)
*(COMMON)
. = ALIGN(4) ;
_ebss = . ;
_end = . ;
} > ram
}
MEMORY {
ram : ORIGIN = 0x400, LENGTH = 0x400000
}
jiffies = jiffies_64 + 4;
SECTIONS {
.text : {
_stext = . ;
*(.text)
*(.exit.text)
*(.text.lock)
*(.exitcall.exit)
*(.rodata)
. = ALIGN(0x4) ;
*(.kstrtab)
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
*(__ksymtab)
__stop___ksymtab = .;
__start___gpl_ksymtab = .; /* Kernel symbol table: GPL-only */
*(__gpl_ksymtab)
__stop___gpl_ksymtab = .;
. = ALIGN(4) ;
_etext = . ;
} > ram
.data BLOCK(0x4) : {
_sdata = . ;
__data_start = . ;
*(.data)
*(.data.exit)
. = ALIGN(0x2000) ;
*(.data.init_task)
. = ALIGN(0x2000) ;
_edata = . ;
} > ram
.init BLOCK(4096) : {
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
. = ALIGN(4) ;
__init_end = .;
} > ram
.bss BLOCK(0x4) : {
_sbss = . ;
*(.bss)
*(COMMON)
. = ALIGN(4) ;
_ebss = . ;
_end = . ;
} > ram
}
MEMORY {
ram : ORIGIN = 0x400, LENGTH = 0x800000
}
jiffies = jiffies_64 + 4;
SECTIONS {
.text : {
_stext = . ;
*(.text)
*(.exit.text)
*(.text.lock)
*(.exitcall.exit)
*(.rodata)
. = ALIGN(0x4) ;
*(.kstrtab)
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
*(__ksymtab)
__stop___ksymtab = .;
__start___gpl_ksymtab = .; /* Kernel symbol table: GPL-only */
*(__gpl_ksymtab)
__stop___gpl_ksymtab = .;
. = ALIGN(4) ;
_etext = . ;
} > ram
.data BLOCK(0x4) : {
_sdata = . ;
__data_start = . ;
*(.data)
*(.data.exit)
. = ALIGN(0x2000) ;
*(.data.init_task)
. = ALIGN(0x2000) ;
_edata = . ;
} > ram
.init BLOCK(4096) : {
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = . ;
. = ALIGN(4);
__init_end = .;
} > ram
.bss BLOCK(0x4) : {
_sbss = . ;
*(.bss)
*(COMMON)
. = ALIGN(4) ;
_ebss = . ;
_end = . ;
} > ram
}
MEMORY {
ram : ORIGIN = 0x20000, LENGTH = 0x007E0000
}
jiffies = jiffies_64 + 4;
SECTIONS {
.text : {
_stext = . ;
*(.text)
*(.exit.text)
*(.text.lock)
*(.exitcall.exit)
*(.rodata)
. = ALIGN(0x4) ;
*(.kstrtab)
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
*(__ksymtab)
__stop___ksymtab = .;
__start___gpl_ksymtab = .; /* Kernel symbol table: GPL-only */
*(__gpl_ksymtab)
__stop___gpl_ksymtab = .;
. = ALIGN(4) ;
_etext = . ;
} > ram
.data BLOCK(0x4) : {
_sdata = . ;
__data_start = . ;
*(.data)
*(.data.exit)
. = ALIGN(0x2000) ;
*(.data.init_task)
. = ALIGN(0x2000) ;
_edata = . ;
} > ram
.init BLOCK(4096) : {
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
. = ALIGN(4) ;
__init_end = .;
} > ram
.bss BLOCK(0x4) : {
_sbss = . ;
*(.bss)
*(COMMON)
. = ALIGN(4) ;
_ebss = . ;
_end = . ;
} > ram
}
OUTPUT_ARCH(m68k)
ENTRY(_start)
MEMORY {
romvec : ORIGIN = 0x10c00000, LENGTH = 0x10400
flash : ORIGIN = 0x10c10400, LENGTH = 0xfec00
eflash : ORIGIN = 0x10d00000, LENGTH = 4
ramvec : ORIGIN = 0x00000000, LENGTH = 0x400
ram : ORIGIN = 0x10000400, LENGTH = 0x100000-0x400
eram : ORIGIN = 0x10100000, LENGTH = 4
}
jiffies = jiffies_64 + 4;
SECTIONS {
. = 0x10c00000 ;
.romvec : {
_flashstart = . ;
_romvec = . ;
} > romvec
. = 0x10c10400 ;
.text : {
_text = .; /* Text and read-only data */
text_start = . ;
*(.text)
*(.text.*)
*(.rodata)
*(.fixup)
*(__ex_table)
. = ALIGN(4) ;
_etext = . ;
__data_rom_start = . ;
} > flash
. = 0x10d00000 ;
.eflash :
{
_flashend = . ;
} > eflash
. = 0 ;
.ramvec :
{
__ramvec = . ;
} > ramvec
/* . = 0x10000400 ; */
.data 0x10000400 :
{
_sdata = . ;
__data_start = . ;
. = ALIGN(0x2000) ;
*(.data.init_task)
. = ALIGN(0x2000) ;
*(.data)
*(.data.*)
*(.setup.init)
*(.exitcall.exit)
. = ALIGN(4096) ;
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
. = ALIGN(4) ;
__init_end = .;
_edata = . ;
edata = . ;
} > ram
.bss :
{
. = ALIGN(16) ;
_sbss = . ;
__bss_start = . ;
__data_end = . ;
*(.bss)
*(COMMON)
. = ALIGN(16) ;
end = . ;
_ebss = . ;
_end = . ;
} > ram
. = 0x10100000 ;
.eram :
{
__ramend = . ;
} > eram
}
MEMORY
{
romvec : ORIGIN = 0x00000000, LENGTH = 1028
flash : ORIGIN = 1028, LENGTH = 0x00080000 - 1028
eflash : ORIGIN = 0x00000000 + 0x00100000, LENGTH = 1
ramvec : ORIGIN = 0x00200000, LENGTH = 1028
ram : ORIGIN = 0x00200000 + 1028, LENGTH = 0x00080000 - 1028
eram : ORIGIN = 0x00200000 + 0x00080000, LENGTH = 1
dpram : ORIGIN = 0xffffe000, LENGTH = 0x00002000
}
jiffies = jiffies_64 + 4;
SECTIONS
{
.dpram :
{
_dprbase = . ;
} > dpram
.romvec :
{
_romvec = . ;
__flashstart = . ;
*(.data.initvect)
. = ALIGN(4);
} > romvec
.text :
{
text_start = . ;
*(.text)
*(.exit.text)
*(.text.*)
*(.rodata)
*(.fixup)
*(.kstrtab)
__start___ksymtab = . ;
*(__ksymtab)
__stop___ksymtab = . ;
__start___gpl_ksymtab = . ;
*(__gpl_ksymtab)
__stop___gpl_ksymtab = . ;
__start___ex_table = . ;
*(___ex_table)
__stop___ex_table = . ;
. = ALIGN(4) ;_etext = . ;
__data_rom_start = ALIGN ( 4 ) ;
} > flash
.eflash :
{
__flashend = . ;
} > eflash
.ramvec :
{
__ramstart = . ;
_ramvec = . ;
} > ramvec
.data :
{
_sdata = . ;
__data_start = . ;
. = ALIGN(0x2000) ;
*(.data.init_task)
. = ALIGN(0x2000) ;
*(.data)
*(.data.*)
*(.setup.init)
*(.exitcall.exit)
. = ALIGN(4096) ;
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
. = ALIGN(4) ;
__init_end = .;
_edata = . ;
edata = .;
} > ram
.bss :
{
_sbss = ALIGN( 0x10 ) ;
__bss_start = ALIGN( 0x10 ) ;
__data_end = ALIGN( 0x10 ) ;
*(.bss)
*(COMMON)
_ebss = . ;
__bss_end = . ;
end = ALIGN( 0x10 ) ;
_end = ALIGN( 0x10 ) ;
} > ram
.eram :
{
_boot_stack = . - 4;
__ramend = . ;
} > eram
}
MEMORY
{
romvec : ORIGIN = 0x00000000, LENGTH = 1028
flash : ORIGIN = 1028, LENGTH = 0x00200000 - 1028
eflash : ORIGIN = 0x00000000 + 0x00200000, LENGTH = 1
ramvec : ORIGIN = 0x00200000, LENGTH = 1028
ram : ORIGIN = 0x00200000 + 1028, LENGTH = 0x00200000 - 1028
eram : ORIGIN = 0x00200000 + 0x00200000, LENGTH = 1
dpram : ORIGIN = 0xffffe000, LENGTH = 0x00002000
}
jiffies = jiffies_64 + 4;
SECTIONS
{
.dpram :
{
_dprbase = . ;
} > dpram
.romvec :
{
_romvec = . ;
__flashstart = . ;
*(.data.initvect)
. = ALIGN(4);
} > romvec
.text :
{
text_start = . ;
*(.text)
*(.exit.text)
*(.text.*)
*(.rodata)
*(.fixup)
*(.kstrtab)
__start___ksymtab = . ;
*(__ksymtab)
__stop___ksymtab = . ;
__start___gpl_ksymtab = . ;
*(__gpl_ksymtab)
__stop___gpl_ksymtab = . ;
__start___ex_table = . ;
*(___ex_table)
__stop___ex_table = . ;
. = ALIGN(4) ;_etext = . ;
__data_rom_start = ALIGN ( 4 ) ;
} > flash
.eflash :
{
__flashend = . ;
} > eflash
.ramvec :
{
__ramstart = . ;
_ramvec = . ;
} > ramvec
.data :
{
_sdata = . ;
__data_start = . ;
. = ALIGN(0x2000) ;
*(.data.init_task)
. = ALIGN(0x2000) ;
*(.data)
*(.data.*)
*(.setup.init)
*(.exitcall.exit)
. = ALIGN(4096) ;
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
. = ALIGN(4) ;
__init_end = .;
_edata = . ;
edata = .;
} > ram
.bss :
{
_sbss = ALIGN( 0x10 ) ;
__bss_start = ALIGN( 0x10 ) ;
__data_end = ALIGN( 0x10 ) ;
*(.bss)
*(COMMON)
_ebss = . ;
__bss_end = . ;
end = ALIGN( 0x10 ) ;
_end = ALIGN( 0x10 ) ;
} > ram
.eram :
{
_boot_stack = . - 4;
__ramend = . ;
} > eram
}
jiffies = jiffies_64 + 4;
SECTIONS
{
.romvec :
{
_flashstart = . ;
_romvec = . ;
__rom_start = . ;
} > romvec
.text :
{
_stext = . ;
*(.text)
*(.exit.text)
. = ALIGN(0x4) ;
*(.text.*)
. = ALIGN(0x4) ;
*(.exitcall.exit)
. = ALIGN(0x4) ;
*(.kstrtab)
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
*(__ksymtab)
__stop___ksymtab = .;
__start___gpl_ksymtab = .; /* Kernel symbol table: GPL-only */
*(__gpl_ksymtab)
__stop___gpl_ksymtab = .;
. = ALIGN(0x4) ;
_etext = . ;
__data_rom_start = . ;
} > flash
.eflash :
{
_flashend = . ;
} > eflash
.ramvec :
{
__ram_start = . ;
__ramvec = . ;
} > ramvec
.data :
{
. = ALIGN(0x4) ;
_sdata = . ;
__data_start = . ;
. = ALIGN(0x4) ;
*(.rodata)
. = ALIGN(0x4) ;
*(.data)
. = ALIGN(0x4) ;
*(.data.*)
. = ALIGN(0x4) ;
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(0x4) ;
__setup_start = .;
*(.init.setup)
. = ALIGN(0x4) ;
__setup_end = .;
. = ALIGN(0x4) ;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
. = ALIGN(0x4) ;
. = ALIGN(0x2000) ;
*(.data.init_task)
. = ALIGN(0x2000) ;
_edata = . ;
} > ram
.bss :
{
. = ALIGN(0x4) ;
_sbss = . ;
*(.bss)
. = ALIGN(0x4) ;
*(COMMON)
. = ALIGN(0x4) ;
_ebss = . ;
_end = . ;
} > ram
.eram :
{
__ramend = . ;
} > eram
}
MEMORY
{
romvec : ORIGIN = 0x00600000, LENGTH = 0x00000400
flash : ORIGIN = 0x00600400, LENGTH = 0x00200000 - 0x00010400
eflash : ORIGIN = 0x007f0000, LENGTH = 0
ramvec : ORIGIN = 0x00000000, LENGTH = 0x00000400
ram : ORIGIN = 0x00020000, LENGTH = 0x00600000 - 0x00020000
eram : ORIGIN = 0x00600000, LENGTH = 0
}
INCLUDE arch/m68knommu/platform/68EZ328/ucsimm/fixed.ld
MEMORY
{
romvec : ORIGIN = 0x10c10000, LENGTH = 0x00000400
flash : ORIGIN = 0x10c10400, LENGTH = 0x00200000 - 0x00010400
eflash : ORIGIN = 0x10e00000, LENGTH = 0
ramvec : ORIGIN = 0x00000000, LENGTH = 0x00000400
bvec : ORIGIN = 0x00020000, LENGTH = 0x00000400
ram : ORIGIN = 0x00020400, LENGTH = 0x00800000 - 0x00020400
eram : ORIGIN = 0x00800000, LENGTH = 0
}
jiffies = jiffies_64 + 4;
SECTIONS
{
.fakevec :
{
} > romvec
.rom :
{
__rom_start = . ;
} > flash
.eflash :
{
_flashend = . ;
} > eflash
.realvec :
{
_ramvec = . ;
} > ramvec
.romvec :
{
_romvec = . ;
} > bvec
.text :
{
__ram_start = . ;
text_start = . ;
*(.text)
*(.exit.text)
*(.text.*)
*(.rodata)
. = ALIGN(0x4) ;
*(.kstrtab)
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
*(__ksymtab)
__stop___ksymtab = .;
__start___gpl_ksymtab = .; /* Kernel symbol table: GPL-only */
*(__gpl_ksymtab)
__stop___gpl_ksymtab = .;
_etext = . ;
__data_rom_start = ALIGN ( 4 ) ;
} > ram
.data :
{
_sdata = . ;
__data_start = . ;
. = ALIGN(0x2000) ;
*(.data.init_task)
. = ALIGN(0x2000) ;
*(.data)
*(.data.*)
*(.exitcall.exit)
. = ALIGN(4096) ;
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
. = ALIGN(4) ;
__init_end = .;
_edata = . ;
edata = ALIGN( 0x10 ) ;
} > ram
.bss :
{
_sbss = ALIGN( 0x10 ) ;
__bss_start = ALIGN( 0x10 ) ;
__data_end = ALIGN( 0x10 ) ;
*(.bss)
*(COMMON)
_ebss = . ;
__bss_end = . ;
end = ALIGN( 0x10 ) ;
_end = ALIGN( 0x10 ) ;
} > ram
.eram :
{
__ramend = . ;
_ramend = . ;
} > eram
}
MEMORY
{
romvec : ORIGIN = 0x10c10000, LENGTH = 0x00000400
flash : ORIGIN = 0x10c10400, LENGTH = 0x001fec00
eflash : ORIGIN = 0x10d00000, LENGTH = 0
ramvec : ORIGIN = 0x00000000, LENGTH = 1024
ram : ORIGIN = 0x00020000, LENGTH = 0x00800000 - 0x00020000
eram : ORIGIN = 0x00800000, LENGTH = 0
}
INCLUDE arch/m68knommu/platform/68EZ328/ucsimm/fixed.ld
jiffies = jiffies_64 + 4;
SECTIONS
{
.romvec :
{
_flashstart = . ;
_romvec = . ;
__rom_start = . ;
} > romvec
.text :
{
_stext = . ;
*(.text)
. = ALIGN(0x4) ;
*(.text.*)
. = ALIGN(0x4) ;
*(.exitcall.exit)
. = ALIGN(0x4) ;
*(.kstrtab)
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
*(__ksymtab)
__stop___ksymtab = .;
__start___gpl_ksymtab = .; /* Kernel symbol table: GPL-only */
*(__gpl_ksymtab)
__stop___gpl_ksymtab = .;
. = ALIGN(0x4) ;
_etext = . ;
__data_rom_start = . ;
} > flash
.eflash :
{
_flashend = . ;
} > eflash
.ramvec :
{
__ram_start = . ;
__ramvec = . ;
} > ramvec
.data :
{
. = ALIGN(0x4) ;
_sdata = . ;
__data_start = . ;
. = ALIGN(0x4) ;
*(.rodata)
. = ALIGN(0x4) ;
*(.data)
. = ALIGN(0x4) ;
*(.data.*)
. = ALIGN(0x4) ;
__setup_start = .;
*(.init.setup)
. = ALIGN(0x4) ;
__setup_end = .;
. = ALIGN(0x4) ;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
. = ALIGN(0x4) ;
. = ALIGN(0x2000) ;
*(.data.init_task)
. = ALIGN(0x2000) ;
_edata = . ;
} > ram
.bss :
{
. = ALIGN(0x4) ;
_sbss = . ;
*(.bss)
. = ALIGN(0x4) ;
*(COMMON)
. = ALIGN(0x4) ;
_ebss = . ;
_end = . ;
} > ram
.eram :
{
__ramend = . ;
} > eram
}
MEMORY
{
romvec : ORIGIN = 0x04030000, LENGTH = 1k
flash : ORIGIN = 0x04030400, LENGTH = 2M - 197k
eflash : ORIGIN = 0x04200000, LENGTH = 0
ramvec : ORIGIN = 0x00000000, LENGTH = 1k
bvec : ORIGIN = 0x00010000, LENGTH = 1k
ram : ORIGIN = 0x00010400, LENGTH = 32M - 65k
eram : ORIGIN = 0x02000000, LENGTH = 0
}
jiffies = jiffies_64 + 4;
SECTIONS
{
.fakevec :
{
} > romvec
.rom :
{
__rom_start = . ;
} > flash
.eflash :
{
_flashend = . ;
} > eflash
.realvec :
{
__ramvec = . ;
} > ramvec
.romvec :
{
_romvec = . ;
} > bvec
.text :
{
__ram_start = . ;
text_start = . ;
*(.text)
*(.text.*)
*(.rodata)
. = ALIGN(0x4) ;
*(.kstrtab)
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
*(__ksymtab)
__stop___ksymtab = .;
__start___gpl_ksymtab = .; /* Kernel symbol table: GPL-only */
*(__gpl_ksymtab)
__stop___gpl_ksymtab = .;
_etext = . ;
__data_rom_start = ALIGN ( 4 ) ;
} > ram
.data :
{
_sdata = . ;
__data_start = . ;
. = ALIGN(0x2000) ;
*(.data.init_task)
. = ALIGN(0x2000) ;
*(.data)
*(.data.*)
*(.exitcall.exit)
. = ALIGN(4096) ;
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
. = ALIGN(4) ;
__init_end = .;
_edata = . ;
edata = ALIGN( 0x10 ) ;
} > ram
.bss :
{
_sbss = ALIGN( 0x10 ) ;
__bss_start = ALIGN( 0x10 ) ;
__data_end = ALIGN( 0x10 ) ;
*(.bss)
*(COMMON)
_ebss = . ;
__bss_end = . ;
end = ALIGN( 0x10 ) ;
_end = ALIGN( 0x10 ) ;
} > ram
.eram :
{
__ramend = . ;
_ramend = . ;
} > eram
}
MEMORY
{
romvec : ORIGIN = 0x04030000, LENGTH = 1k
flash : ORIGIN = 0x04030400, LENGTH = 2M - 197k
eflash : ORIGIN = 0x04200000, LENGTH = 0
ramvec : ORIGIN = 0x00000000, LENGTH = 1k
ram : ORIGIN = 0x00010000, LENGTH = 32M - 64k
eram : ORIGIN = 0x02000000, LENGTH = 0
}
INCLUDE arch/m68knommu/platform/68VZ328/de2/fixed.ld
jiffies = jiffies_64 + 4;
SECTIONS
{
.romvec :
{
_flashstart = . ;
_romvec = . ;
__rom_start = . ;
} > romvec
.text :
{
_stext = . ;
*(.text)
. = ALIGN(0x4) ;
*(.text.*)
. = ALIGN(0x4) ;
*(.exitcall.exit)
. = ALIGN(0x4) ;
*(.kstrtab)
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
*(__ksymtab)
__stop___ksymtab = .;
__start___gpl_ksymtab = .; /* Kernel symbol table: GPL-only */
*(__gpl_ksymtab)
__stop___gpl_ksymtab = .;
. = ALIGN(0x4) ;
_etext = . ;
__data_rom_start = . ;
} > flash
.eflash :
{
_flashend = . ;
} > eflash
.ramvec :
{
__ram_start = . ;
__ramvec = . ;
} > ramvec
.data :
{
. = ALIGN(0x4) ;
_sdata = . ;
__data_start = . ;
. = ALIGN(0x4) ;
*(.rodata)
. = ALIGN(0x4) ;
*(.data)
. = ALIGN(0x4) ;
*(.data.*)
. = ALIGN(0x4) ;
__setup_start = .;
*(.init.setup)
. = ALIGN(0x4) ;
__setup_end = .;
. = ALIGN(0x4) ;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
. = ALIGN(0x4) ;
. = ALIGN(0x2000) ;
*(.data.init_task)
. = ALIGN(0x2000) ;
_edata = . ;
} > ram
.bss :
{
. = ALIGN(0x4) ;
_sbss = . ;
*(.bss)
. = ALIGN(0x4) ;
*(COMMON)
. = ALIGN(0x4) ;
_ebss = . ;
_end = . ;
} > ram
.eram :
{
__ramend = . ;
} > eram
}
MEMORY
{
romvec : ORIGIN = 0x00600000, LENGTH = 0x00000400
flash : ORIGIN = 0x00600400, LENGTH = 0x00200000 - 0x00010400
eflash : ORIGIN = 0x007f0000, LENGTH = 0
ramvec : ORIGIN = 0x00000000, LENGTH = 0x00000400
ram : ORIGIN = 0x00020000, LENGTH = 0x00600000 - 0x00020000
eram : ORIGIN = 0x00600000, LENGTH = 0
}
INCLUDE arch/m68knommu/platform/68VZ328/ucdimm/fixed.ld
MEMORY
{
romvec : ORIGIN = 0x10c10000, LENGTH = 0x00000400
flash : ORIGIN = 0x10c10400, LENGTH = 0x00200000 - 0x00010400
eflash : ORIGIN = 0x10e00000, LENGTH = 0
ramvec : ORIGIN = 0x00000000, LENGTH = 0x00000400
bvec : ORIGIN = 0x00020000, LENGTH = 0x00000400
ram : ORIGIN = 0x00020400, LENGTH = 0x00800000 - 0x00020400
eram : ORIGIN = 0x00800000, LENGTH = 0
}
jiffies = jiffies_64 + 4;
SECTIONS
{
.fakevec :
{
} > romvec
.rom :
{
__rom_start = . ;
} > flash
.eflash :
{
_flashend = . ;
} > eflash
.realvec :
{
_ramvec = . ;
} > ramvec
.romvec :
{
_romvec = . ;
} > bvec
.text :
{
__ram_start = . ;
text_start = . ;
*(.text)
*(.text.*)
*(.rodata)
. = ALIGN(0x4) ;
*(.kstrtab)
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
*(__ksymtab)
__stop___ksymtab = .;
__start___gpl_ksymtab = .; /* Kernel symbol table: GPL-only */
*(__gpl_ksymtab)
__stop___gpl_ksymtab = .;
_etext = . ;
__data_rom_start = ALIGN ( 4 ) ;
} > ram
.data :
{
_sdata = . ;
__data_start = . ;
. = ALIGN(0x2000) ;
*(.data.init_task)
. = ALIGN(0x2000) ;
*(.data)
*(.data.*)
*(.exitcall.exit)
. = ALIGN(4096) ;
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
. = ALIGN(4) ;
__init_end = .;
_edata = . ;
edata = ALIGN( 0x10 ) ;
} > ram
.bss :
{
_sbss = ALIGN( 0x10 ) ;
__bss_start = ALIGN( 0x10 ) ;
__data_end = ALIGN( 0x10 ) ;
*(.bss)
*(COMMON)
_ebss = . ;
__bss_end = . ;
end = ALIGN( 0x10 ) ;
_end = ALIGN( 0x10 ) ;
} > ram
.eram :
{
__ramend = . ;
_ramend = . ;
} > eram
}
MEMORY
{
romvec : ORIGIN = 0x10c10000, LENGTH = 0x00000400
flash : ORIGIN = 0x10c10400, LENGTH = 0x001fec00
eflash : ORIGIN = 0x10d00000, LENGTH = 0
ramvec : ORIGIN = 0x00000000, LENGTH = 1024
ram : ORIGIN = 0x00020000, LENGTH = 0x00800000 - 0x00020000
eram : ORIGIN = 0x00800000, LENGTH = 0
}
INCLUDE arch/m68knommu/platform/68VZ328/ucdimm/fixed.ld
/*
* vmlinux.lds.S -- master linker script for m68knommu arch
*
* (C) Copyright 2002, Greg Ungerer <gerg@snapgear.com>
*
* This ends up looking compilcated, because of the number of
* address variations for ram and rom/flash layouts. The real
* work of the linker script is all at the end, and reasonably
* strait forward.
*/
#include <linux/config.h>
/*
* Original Palm pilot (same for Xcopilot).
* There is really only a rom target for this.
*/
#ifdef CONFIG_PILOT3
#ifdef CONFIG_ROMKERNEL
#include "platform/68328/pilot/rom.ld"
#endif
#ifdef CONFIG_RAMKERNEL
#include "platform/68328/pilot/ram.ld"
#endif
#define ROMVEC_START 0x10c00000
#define ROMVEC_LENGTH 0x10400
#define ROM_START 0x10c10400
#define ROM_LENGTH 0xfec00
#define ROM_END 0x10d00000
#define RAMVEC_START 0x00000000
#define RAMVEC_LENGTH 0x400
#define RAM_START 0x10000400
#define RAM_LENGTH 0xffc00
#define RAM_END 0x10100000
#define DATA_ADDR RAM_START
#endif
#ifdef CONFIG_UCSIMM
/*
* Same setup on both the uCsimm and uCdimm.
*/
#if defined(CONFIG_UCSIMM) || defined(CONFIG_UCDIMM)
#ifdef CONFIG_RAMKERNEL
#include "platform/68EZ328/ucsimm/ram.ld"
#define ROMVEC_START 0x10c10000
#define ROMVEC_LENGTH 0x400
#define ROM_START 0x10c10400
#define ROM_LENGTH 0x1efc00
#define ROM_END 0x10e00000
#define RAMVEC_START 0x00000000
#define RAMVEC_LENGTH 0x400
#define RAM_START 0x00020400
#define RAM_LENGTH 0x7dfc00
#define RAM_END 0x00800000
#endif
#ifdef CONFIG_ROMKERNEL
#include "platform/68EZ328/ucsimm/rom.ld"
#define ROMVEC_START 0x10c10000
#define ROMVEC_LENGTH 0x400
#define ROM_START 0x10c10400
#define ROM_LENGTH 0x1efc00
#define ROM_END 0x10e00000
#define RAMVEC_START 0x00000000
#define RAMVEC_LENGTH 0x400
#define RAM_START 0x00020000
#define RAM_LENGTH 0x600000
#define RAM_END 0x00800000
#endif
#ifdef CONFIG_HIMEMKERNEL
#include "platform/68EZ328/ucsimm/himem.ld"
#define ROMVEC_START 0x00600000
#define ROMVEC_LENGTH 0x400
#define ROM_START 0x00600400
#define ROM_LENGTH 0x1efc00
#define ROM_END 0x007f0000
#define RAMVEC_START 0x00000000
#define RAMVEC_LENGTH 0x400
#define RAM_START 0x00020000
#define RAM_LENGTH 0x5e0000
#define RAM_END 0x00600000
#endif
#endif
#ifdef CONFIG_UCDIMM
#ifdef CONFIG_RAMKERNEL
#include "platform/68VZ328/ucdimm/ram.ld"
#endif
#ifdef CONFIG_ROMKERNEL
#include "platform/68VZ328/ucdimm/rom.ld"
#endif
#ifdef CONFIG_HIMEMKERNEL
#include "platform/68VZ328/ucdimm/himem.ld"
#endif
#endif
#ifdef CONFIG_DRAGEN2
#ifdef CONFIG_RAMKERNEL
#include "platform/68VZ328/de2/ram.ld"
#define ROMVEC_START 0x04030000
#define ROMVEC_LENGTH 0x400
#define ROM_START 0x04030400
#define ROM_LENGTH 0x1cec00
#define ROM_END 0x04200000
#define RAMVEC_START 0x00000000
#define RAMVEC_LENGTH 0x400
#define RAM_START 0x00010400
#define RAM_LENGTH 0x1ff0000
#define RAM_END 0x02000000
#endif
#ifdef CONFIG_ROMKERNEL
#include "platform/68VZ328/de2/rom.ld"
#define ROMVEC_START 0x04030000
#define ROMVEC_LENGTH 0x400
#define ROM_START 0x04030400
#define ROM_LENGTH 0x1cec00
#define ROM_END 0x04200000
#define RAMVEC_START 0x00000000
#define RAMVEC_LENGTH 0x400
#define RAM_START 0x00010000
#define RAM_LENGTH 0x1ff0000
#define RAM_END 0x02000000
#endif
#ifdef CONFIG_HIMEMKERNEL
#include "platform/68VZ328/de2/himem.ld"
#define ROMVEC_START 0x01e00000
#define ROMVEC_LENGTH 0x400
#define ROM_START 0x01e00400
#define ROM_LENGTH 0x1ffc00
#define ROM_END 0x02000000
#define RAMVEC_START 0x00000000
#define RAMVEC_LENGTH 0x400
#define RAM_START 0x00010000
#define RAM_LENGTH 0x1df0000
#define RAM_END 0x01e00000
#endif
#endif
#ifdef CONFIG_UCQUICC
#ifdef CONFIG_RAMKERNEL
#include "platform/68360/uCquicc/ram.ld"
#endif
#ifdef CONFIG_ROMKERNEL
#include "platform/68360/uCquicc/rom.ld"
#endif
#define ROMVEC_START 0x00000000
#define ROMVEC_LENGTH 0x404
#define ROM_START 0x00000404
#define ROM_LENGTH 0x1ff6fc
#define ROM_END 0x00200000
#define RAMVEC_START 0x00200000
#define RAMVEC_LENGTH 0x404
#define RAM_START 0x00200404
#define RAM_LENGTH 0x1ff6fc
#define RAM_END 0x00400000
#endif
#ifdef CONFIG_ARN5206
#include "platform/5206/ARNEWSH/ram.ld"
/*
* The standard Arnewsh 5206 board only has 1MiB of ram. Not normally
* enough to be usefull. Assume the user has fitted something larger,
* at least 4MiB in size. No point in not letting the kernel completely
* link, it will be obvious if it is too big when they go to load it.
*/
#if defined(CONFIG_ARN5206)
#define RAM_START 0x10000
#define RAM_LENGTH 0x3f0000
#endif
#ifdef CONFIG_M5206eC3
#include "platform/5206e/MOTOROLA/ram.ld"
#endif
#ifdef CONFIG_ELITE
#include "platform/5206e/eLITE/ram.ld"
/*
* The Motorola 5206eLITE board only has 1MiB of static RAM.
*/
#if defined(CONFIG_ELITE)
#define RAM_START 0x30020000
#define RAM_END 0xe0000
#endif
#ifdef CONFIG_M5249C3
#include "platform/5249/MOTOROLA/ram.ld"
/*
* All the Motorola eval boards have the same basic arrangement.
* The end of RAM will vary depending on how much ram is fitted,
* but this isn't important here, we assume at least 4MiB.
*/
#if defined(CONFIG_M5206eC3) || defined(CONFIG_M5249C3) || \
defined(CONFIG_M5272C3) || defined(CONFIG_M5306C3) || \
defined(CONFIG_ARN5307) || defined(CONFIG_M5407C3)
#define RAM_START 0x20000
#define RAM_LENGTH 0x3e0000
#endif
#ifdef CONFIG_M5272C3
#include "platform/5272/MOTOROLA/ram.ld"
/*
* These flash boot boards use all of ram for operation. Again the
* actual memory size is not important here, assume at least 4MiB.
* They currently have no support for running in flash.
*/
#if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || \
defined(CONFIG_DISKtel) || defined(CONFIG_SECUREEDGEMP3) || \
defined(CONFIG_CLEOPATRA)
#define RAM_START 0x400
#define RAM_LENGTH 0x3ffc00
#endif
#ifdef CONFIG_ARN5307
#include "platform/5307/ARNEWSH/ram.ld"
#endif
#ifdef CONFIG_M5307C3
#include "platform/5307/MOTOROLA/ram.ld"
#endif
#ifdef CONFIG_eLIA
#include "platform/5307/eLIA/ram.ld"
#endif
#ifdef CONFIG_DISKtel
#include "platform/5307/DISKtel/ram.ld"
#ifdef CONFIG_RAMKERNEL
#define TEXT ram
#define DATA ram
#define INIT ram
#define BSS ram
#endif
#ifdef CONFIG_SECUREEDGEMP3
#include "platform/5307/MP3/ram.ld"
#ifdef CONFIG_ROMKERNEL
#define TEXT rom
#define DATA ram
#define INIT ram
#define BSS ram
#endif
#ifdef CONFIG_M5407
#include "platform/5407/MOTOROLA/ram.ld"
#ifndef DATA_ADDR
#define DATA_ADDR
#endif
#ifdef CONFIG_CLEOPATRA
#ifdef CONFIG_M5307
#include "platform/5307/CLEOPATRA/ram.ld"
OUTPUT_ARCH(m68k)
ENTRY(_start)
MEMORY {
#ifdef RAMVEC_START
ramvec : ORIGIN = RAMVEC_START, LENGTH = RAMVEC_LENGTH
#endif
#ifdef CONFIG_M5407
#include "platform/5407/CLEOPATRA/ram.ld"
ram : ORIGIN = RAM_START, LENGTH = RAM_LENGTH
#ifdef RAM_END
eram : ORIGIN = RAM_END, LENGTH = 0
#endif
#ifdef ROM_START
romvec : ORIGIN = ROMVEC_START, LENGTH = ROMVEC_LENGTH
rom : ORIGIN = ROM_START, LENGTH = ROM_LENGTH
erom : ORIGIN = ROM_END, LENGTH = 0
#endif
}
#ifdef CONFIG_NETtel
#ifdef CONFIG_M5206e
#include "platform/5206e/NETtel/ram.ld"
#endif
#ifdef CONFIG_M5272
#include "platform/5272/NETtel/ram.ld"
#endif
#ifdef CONFIG_M5307
#include "platform/5307/NETtel/ram.ld"
jiffies = jiffies_64 + 4;
SECTIONS {
#ifdef ROMVEC_START
. = ROMVEC_START ;
.romvec : {
__rom_start = . ;
_romvec = .;
*(.data.initvect)
} > romvec
#endif
.text : {
_stext = . ;
*(.text)
*(.text.lock)
*(.rodata)
*(.rodata.*)
. = ALIGN(0x4) ;
*(.kstrtab)
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
*(__ksymtab)
__stop___ksymtab = .;
. = ALIGN(4) ;
_etext = . ;
} > TEXT
#ifdef ROM_END
. = ROM_END ;
.erom : {
__rom_end = . ;
} > erom
#endif
#ifdef RAMVEC_START
. = RAMVEC_START ;
.ramvec : {
__ramvec = .;
} > ramvec
#endif
.data DATA_ADDR : {
. = ALIGN(4);
_sdata = . ;
*(.data)
. = ALIGN(8192) ;
*(.data.init_task)
_edata = . ;
} > DATA
.init : {
. = ALIGN(4096);
__init_begin = .;
*(.init.text)
*(.init.data)
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__start___param = .;
*(__param)
__stop___param = .;
__initcall_start = .;
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
__initcall_end = .;
. = ALIGN(4);
__initramfs_start = .;
*(.init.ramfs)
__initramfs_end = .;
. = ALIGN(4);
__init_end = .;
} > INIT
/DISCARD/ : {
*(.exit.text)
*(.exit.data)
*(.exitcall.exit)
}
.bss : {
. = ALIGN(4);
_sbss = . ;
*(.bss)
*(COMMON)
. = ALIGN(4) ;
_ebss = . ;
} > BSS
#ifdef RAM_END
. = RAM_END ;
.eram : {
__ramend = . ;
_ramend = . ;
} > eram
#endif
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment