/* * ld script for the c6x kernel * * Copyright (C) 2010, 2011 Texas Instruments Incorporated * Mark Salter <msalter@redhat.com> */#include <asm-generic/vmlinux.lds.h>#include <asm/thread_info.h>#include <asm/page.h> ENTRY(_c_int00) #if defined(CONFIG_CPU_BIG_ENDIAN)jiffies = jiffies_64 + 4;#elsejiffies = jiffies_64;#endif #define READONLY_SEGMENT_START \ . = PAGE_OFFSET;#define READWRITE_SEGMENT_START \ . = ALIGN(128); \ _data_lma = .; SECTIONS{ /* * Start kernel read only segment */ READONLY_SEGMENT_START .vectors : { _vectors_start = .; *(.vectors) . = ALIGN(0x400); _vectors_end = .; } /* * This section contains data which may be shared with other * cores. It needs to be a fixed offset from PAGE_OFFSET * regardless of kernel configuration. */ .virtio_ipc_dev : { *(.virtio_ipc_dev) } . = ALIGN(PAGE_SIZE); __init_begin = .; .init : { _sinittext = .; HEAD_TEXT INIT_TEXT _einittext = .; } INIT_DATA_SECTION(16) PERCPU_SECTION(128) . = ALIGN(PAGE_SIZE); __init_end = .; .text : { _text = .; _stext = .; TEXT_TEXT SCHED_TEXT LOCK_TEXT IRQENTRY_TEXT KPROBES_TEXT *(.fixup) *(.gnu.warning) } EXCEPTION_TABLE(16) NOTES RO_DATA_SECTION(PAGE_SIZE) .const : { *(.const .const.* .gnu.linkonce.r.*) *(.switch) } . = ALIGN (8) ; __fdt_blob : AT(ADDR(__fdt_blob) - LOAD_OFFSET) { _fdt_start = . ; /* place for fdt blob */ *(__fdt_blob) ; /* Any link-placed DTB */ BYTE(0); /* section always has contents */ . = _fdt_start + 0x4000; /* Pad up to 16kbyte */ _fdt_end = . ; } _etext = .; /* * Start kernel read-write segment. */ READWRITE_SEGMENT_START _sdata = .; .fardata : AT(ADDR(.fardata) - LOAD_OFFSET) { INIT_TASK_DATA(THREAD_SIZE) NOSAVE_DATA PAGE_ALIGNED_DATA(PAGE_SIZE) CACHELINE_ALIGNED_DATA(128) READ_MOSTLY_DATA(128) DATA_DATA CONSTRUCTORS *(.data1) *(.fardata .fardata.*) *(.data.debug_bpt) } .neardata ALIGN(8) : AT(ADDR(.neardata) - LOAD_OFFSET) { *(.neardata2 .neardata2.* .gnu.linkonce.s2.*) *(.neardata .neardata.* .gnu.linkonce.s.*) . = ALIGN(8); } _edata = .; __bss_start = .; SBSS(8) BSS(8) .far : { . = ALIGN(8); *(.dynfar) *(.far .far.* .gnu.linkonce.b.*) . = ALIGN(8); } __bss_stop = .; _end = .; DWARF_DEBUG /DISCARD/ : { EXIT_TEXT EXIT_DATA EXIT_CALL *(.discard) *(.discard.*) *(.interp) }}
/*
* ld script for the c6x kernel
*
* Copyright (C) 2010, 2011 Texas Instruments Incorporated
* Mark Salter <msalter@redhat.com>
*/
#include <asm-generic/vmlinux.lds.h>
#include <asm/thread_info.h>
#include <asm/page.h>
ENTRY(_c_int00)
#if defined(CONFIG_CPU_BIG_ENDIAN)
jiffies = jiffies_64 + 4;
#else
jiffies = jiffies_64;
#endif
#define READONLY_SEGMENT_START \
. = PAGE_OFFSET;
#define READWRITE_SEGMENT_START \
. = ALIGN(128); \
_data_lma = .;
SECTIONS
{
/*
* Start kernel read only segment
*/
READONLY_SEGMENT_START
.vectors :
{
_vectors_start = .;
*(.vectors)
. = ALIGN(0x400);
_vectors_end = .;
}
/*
* This section contains data which may be shared with other
* cores. It needs to be a fixed offset from PAGE_OFFSET
* regardless of kernel configuration.
*/
.virtio_ipc_dev :
{
*(.virtio_ipc_dev)
}
. = ALIGN(PAGE_SIZE);
__init_begin = .;
.init :
{
_sinittext = .;
HEAD_TEXT
INIT_TEXT
_einittext = .;
}
INIT_DATA_SECTION(16)
PERCPU_SECTION(128)
. = ALIGN(PAGE_SIZE);
__init_end = .;
.text :
{
_text = .;
_stext = .;
TEXT_TEXT
SCHED_TEXT
LOCK_TEXT
IRQENTRY_TEXT
KPROBES_TEXT
*(.fixup)
*(.gnu.warning)
}
EXCEPTION_TABLE(16)
NOTES
RO_DATA_SECTION(PAGE_SIZE)
.const :
{
*(.const .const.* .gnu.linkonce.r.*)
*(.switch)
}
. = ALIGN (8) ;
__fdt_blob : AT(ADDR(__fdt_blob) - LOAD_OFFSET)
{
_fdt_start = . ; /* place for fdt blob */
*(__fdt_blob) ; /* Any link-placed DTB */
BYTE(0); /* section always has contents */
. = _fdt_start + 0x4000; /* Pad up to 16kbyte */
_fdt_end = . ;
}
_etext = .;
/*
* Start kernel read-write segment.
*/
READWRITE_SEGMENT_START
_sdata = .;
.fardata : AT(ADDR(.fardata) - LOAD_OFFSET)
{
INIT_TASK_DATA(THREAD_SIZE)
NOSAVE_DATA
PAGE_ALIGNED_DATA(PAGE_SIZE)
CACHELINE_ALIGNED_DATA(128)
READ_MOSTLY_DATA(128)
DATA_DATA
CONSTRUCTORS
*(.data1)
*(.fardata .fardata.*)
*(.data.debug_bpt)
}
.neardata ALIGN(8) : AT(ADDR(.neardata) - LOAD_OFFSET)
{
*(.neardata2 .neardata2.* .gnu.linkonce.s2.*)
*(.neardata .neardata.* .gnu.linkonce.s.*)
. = ALIGN(8);
}
_edata = .;
__bss_start = .;
SBSS(8)
BSS(8)
.far :
{
. = ALIGN(8);
*(.dynfar)
*(.far .far.* .gnu.linkonce.b.*)
. = ALIGN(8);
}
__bss_stop = .;
_end = .;
DWARF_DEBUG
/DISCARD/ :
{
EXIT_TEXT
EXIT_DATA
EXIT_CALL
*(.discard)
*(.discard.*)
*(.interp)
}
}