Blackfin arch: vmlinux.lds.S, break up our .init into separate sections
Break up our .init into separate section like all other ports do and so that we dont mix text and data (causes disassembly headaches as pointed out by Robin) Cc: Robin Getz <robin.getz@analog.com> Signed-off-by: Mike Frysinger <michael.frysinger@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
This commit is contained in:
@@ -46,11 +46,11 @@ SECTIONS
|
|||||||
__text = .;
|
__text = .;
|
||||||
_text = .;
|
_text = .;
|
||||||
__stext = .;
|
__stext = .;
|
||||||
*(.text.*)
|
|
||||||
TEXT_TEXT
|
TEXT_TEXT
|
||||||
SCHED_TEXT
|
SCHED_TEXT
|
||||||
LOCK_TEXT
|
LOCK_TEXT
|
||||||
*(.text.lock)
|
KPROBES_TEXT
|
||||||
|
*(.text.*)
|
||||||
*(.fixup)
|
*(.fixup)
|
||||||
|
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
@@ -62,7 +62,7 @@ SECTIONS
|
|||||||
__etext = .;
|
__etext = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
RODATA
|
RO_DATA(PAGE_SIZE)
|
||||||
|
|
||||||
.data :
|
.data :
|
||||||
{
|
{
|
||||||
@@ -73,51 +73,63 @@ SECTIONS
|
|||||||
__sdata = .;
|
__sdata = .;
|
||||||
. = ALIGN(THREAD_SIZE);
|
. = ALIGN(THREAD_SIZE);
|
||||||
*(.data.init_task)
|
*(.data.init_task)
|
||||||
DATA_DATA
|
|
||||||
*(.data.*)
|
|
||||||
CONSTRUCTORS
|
|
||||||
|
|
||||||
. = ALIGN(32);
|
. = ALIGN(32);
|
||||||
*(.data.cacheline_aligned)
|
*(.data.cacheline_aligned)
|
||||||
|
|
||||||
|
DATA_DATA
|
||||||
|
*(.data.*)
|
||||||
|
CONSTRUCTORS
|
||||||
|
|
||||||
. = ALIGN(THREAD_SIZE);
|
. = ALIGN(THREAD_SIZE);
|
||||||
__edata = .;
|
__edata = .;
|
||||||
}
|
}
|
||||||
|
|
||||||
___init_begin = .;
|
___init_begin = .;
|
||||||
.init :
|
|
||||||
|
.init.text :
|
||||||
{
|
{
|
||||||
. = ALIGN(PAGE_SIZE);
|
. = ALIGN(PAGE_SIZE);
|
||||||
__sinittext = .;
|
__sinittext = .;
|
||||||
*(.init.text)
|
*(.init.text)
|
||||||
__einittext = .;
|
__einittext = .;
|
||||||
|
}
|
||||||
|
.init.data :
|
||||||
|
{
|
||||||
|
. = ALIGN(16);
|
||||||
*(.init.data)
|
*(.init.data)
|
||||||
|
}
|
||||||
|
.init.setup :
|
||||||
|
{
|
||||||
. = ALIGN(16);
|
. = ALIGN(16);
|
||||||
___setup_start = .;
|
___setup_start = .;
|
||||||
*(.init.setup)
|
*(.init.setup)
|
||||||
___setup_end = .;
|
___setup_end = .;
|
||||||
___start___param = .;
|
}
|
||||||
*(__param)
|
.initcall.init :
|
||||||
___stop___param = .;
|
{
|
||||||
___initcall_start = .;
|
___initcall_start = .;
|
||||||
INITCALLS
|
INITCALLS
|
||||||
___initcall_end = .;
|
___initcall_end = .;
|
||||||
|
}
|
||||||
|
.con_initcall.init :
|
||||||
|
{
|
||||||
___con_initcall_start = .;
|
___con_initcall_start = .;
|
||||||
*(.con_initcall.init)
|
*(.con_initcall.init)
|
||||||
___con_initcall_end = .;
|
___con_initcall_end = .;
|
||||||
___security_initcall_start = .;
|
}
|
||||||
*(.security_initcall.init)
|
SECURITY_INIT
|
||||||
___security_initcall_end = .;
|
.init.ramfs :
|
||||||
|
{
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
___initramfs_start = .;
|
___initramfs_start = .;
|
||||||
*(.init.ramfs)
|
*(.init.ramfs)
|
||||||
___initramfs_end = .;
|
___initramfs_end = .;
|
||||||
. = ALIGN(4);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
__l1_lma_start = .;
|
__l1_lma_start = .;
|
||||||
|
|
||||||
.text_l1 L1_CODE_START : AT(LOADADDR(.init) + SIZEOF(.init))
|
.text_l1 L1_CODE_START : AT(LOADADDR(.init.ramfs) + SIZEOF(.init.ramfs))
|
||||||
{
|
{
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
__stext_l1 = .;
|
__stext_l1 = .;
|
||||||
|
Reference in New Issue
Block a user