xref: /linux/arch/xtensa/boot/boot-elf/boot.lds.S (revision 3932b9ca55b0be314a36d3e84faff3e823c081f5)
1/*
2 *  linux/arch/xtensa/boot/boot-elf/boot.lds.S
3 *
4 *  Copyright (C) 2008 - 2013 by Tensilica Inc.
5 *
6 *  Chris Zankel <chris@zankel.net>
7 *  Marc Gauthier <marc@tensilica.com
8 *  Pete Delaney <piet@tensilica.com>
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2 as
12 * published by the Free Software Foundation.
13 */
14
15#include <asm/vectors.h>
16OUTPUT_ARCH(xtensa)
17ENTRY(_ResetVector)
18
19SECTIONS
20{
21	.ResetVector.text XCHAL_RESET_VECTOR_VADDR :
22	{
23		*(.ResetVector.text)
24	}
25
26	.image KERNELOFFSET: AT (LOAD_MEMORY_ADDRESS)
27	{
28		_image_start = .;
29		*(image)
30		. = (. + 3) & ~ 3;
31		_image_end = .	;
32	}
33
34	.bss ((LOADADDR(.image) + SIZEOF(.image) + 3) & ~ 3):
35	{
36		__bss_start = .;
37		*(.sbss)
38		*(.scommon)
39		*(.dynbss)
40		*(.bss)
41		__bss_end = .;
42	}
43
44#ifdef CONFIG_MMU
45	/*
46	 * This is a remapped copy of the Reset Vector Code.
47	 * It keeps gdb in sync with the PC after switching
48	 * to the temporary mapping used while setting up
49	 * the V2 MMU mappings for Linux.
50	 */
51	.ResetVector.remapped_text 0x46000000 (INFO):
52	{
53		*(.ResetVector.remapped_text)
54	}
55#endif
56}
57