Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dcf33beb authored by Russell King (Oracle)'s avatar Russell King (Oracle) Committed by Greg Kroah-Hartman
Browse files

ARM: use LOADADDR() to get load address of sections



commit 8d9d651ff2270a632e9dc497b142db31e8911315 upstream.

Use the linker's LOADADDR() macro to get the load address of the
sections, and provide a macro to set the start and end symbols.

Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Signed-off-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 31814db6
Loading
Loading
Loading
Loading
+12 −7
Original line number Original line Diff line number Diff line
@@ -25,6 +25,11 @@
#define ARM_MMU_DISCARD(x)	x
#define ARM_MMU_DISCARD(x)	x
#endif
#endif


/* Set start/end symbol names to the LMA for the section */
#define ARM_LMA(sym, section)						\
	sym##_start = LOADADDR(section);				\
	sym##_end = LOADADDR(section) + SIZEOF(section)

#define PROC_INFO							\
#define PROC_INFO							\
		. = ALIGN(4);						\
		. = ALIGN(4);						\
		__proc_info_begin = .;					\
		__proc_info_begin = .;					\
@@ -100,19 +105,19 @@
 * only thing that matters is their relative offsets
 * only thing that matters is their relative offsets
 */
 */
#define ARM_VECTORS							\
#define ARM_VECTORS							\
	__vectors_start = .;						\
	__vectors_lma = .;						\
	.vectors 0xffff0000 : AT(__vectors_start) {			\
	.vectors 0xffff0000 : AT(__vectors_start) {			\
		*(.vectors)						\
		*(.vectors)						\
	}								\
	}								\
	. = __vectors_start + SIZEOF(.vectors);				\
	ARM_LMA(__vectors, .vectors);					\
	__vectors_end = .;						\
	. = __vectors_lma + SIZEOF(.vectors);				\
									\
									\
	__stubs_start = .;						\
	__stubs_lma = .;						\
	.stubs ADDR(.vectors) + 0x1000 : AT(__stubs_start) {		\
	.stubs ADDR(.vectors) + 0x1000 : AT(__stubs_lma) {		\
		*(.stubs)						\
		*(.stubs)						\
	}								\
	}								\
	. = __stubs_start + SIZEOF(.stubs);				\
	ARM_LMA(__stubs, .stubs);					\
	__stubs_end = .;						\
	. = __stubs_lma + SIZEOF(.stubs);				\
									\
									\
	PROVIDE(vector_fiq_offset = vector_fiq - ADDR(.vectors));
	PROVIDE(vector_fiq_offset = vector_fiq - ADDR(.vectors));