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@raptorengineering.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
Shawn Anastasio authored and Jan Beulich committed 2023-11-02 10:51:31 +01:00
1 parent 87f37449d5
commit abb8a88d59
2 files changed
+10

No files matched your search

+3
View File
@@ -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)
+7
View File
@@ -24,6 +24,10 @@ SECTIONS
_stext = .; /* Text section */
*(.text.header)
. = ALIGN(256);
HIDDEN(_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?");
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.