|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 2/3] xen/ppc: Add .text.exceptions section for exception vectors
On Power, the exception vectors must lie at a fixed address, depending
on the state of the Alternate Interrupt Location (AIL) field of the
Logical Partition Control Register (LPCR). Create a .text.exceptions
section in the linker script at an address suitable for AIL=3 plus an
accompanying assertion to pave the way for implementing exception
support.
Signed-off-by: Shawn Anastasio <sanastasio@xxxxxxxxxxxxxxxxxxxxx>
---
xen/arch/ppc/include/asm/config.h | 3 +++
xen/arch/ppc/xen.lds.S | 7 +++++++
2 files changed, 10 insertions(+)
diff --git a/xen/arch/ppc/include/asm/config.h
b/xen/arch/ppc/include/asm/config.h
index a11a09c570..e012b75beb 100644
--- a/xen/arch/ppc/include/asm/config.h
+++ b/xen/arch/ppc/include/asm/config.h
@@ -42,6 +42,9 @@
#define XEN_VIRT_START _AC(0xc000000000000000, UL)
+/* Fixed address for start of the section containing exception vectors */
+#define EXCEPTION_VECTORS_START _AC(0xc000000000000100, UL)
+
#define VMAP_VIRT_START (XEN_VIRT_START + GB(1))
#define VMAP_VIRT_SIZE GB(1)
diff --git a/xen/arch/ppc/xen.lds.S b/xen/arch/ppc/xen.lds.S
index 9e46035155..9e888d7383 100644
--- a/xen/arch/ppc/xen.lds.S
+++ b/xen/arch/ppc/xen.lds.S
@@ -24,6 +24,10 @@ SECTIONS
_stext = .; /* Text section */
*(.text.header)
+ . = ALIGN(256);
+ _stext_exceptions = .;
+ *(.text.exceptions)
+
*(.text.cold)
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
@@ -184,3 +188,6 @@ ASSERT(IS_ALIGNED(__bss_end, POINTER_ALIGN),
"__bss_end is misaligned")
ASSERT(!SIZEOF(.got), ".got non-empty")
ASSERT(!SIZEOF(.got.plt), ".got.plt non-empty")
+
+ASSERT(_stext_exceptions == EXCEPTION_VECTORS_START, \
+ ".text.exceptions not at expected location -- .text.header too big?");
--
2.30.2
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |