From: Anup Patel <apatel@ventanamicro.com>
To: opensbi@lists.infradead.org
Subject: [PATCH 1/9] lib: sbi: Remove sbi_trap_exit() and related code
Date: Mon, 11 Mar 2024 21:39:36 +0530 [thread overview]
Message-ID: <20240311160944.1233523-2-apatel@ventanamicro.com> (raw)
In-Reply-To: <20240311160944.1233523-1-apatel@ventanamicro.com>
Over the years, no uses of sbi_trap_exit() have been found so remove
it and also remove related code from fw_base.S and sbi_scratch.h.
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
---
firmware/fw_base.S | 11 -----------
include/sbi/sbi_scratch.h | 15 +++------------
include/sbi/sbi_trap.h | 2 --
lib/sbi/sbi_trap.c | 19 -------------------
4 files changed, 3 insertions(+), 44 deletions(-)
diff --git a/firmware/fw_base.S b/firmware/fw_base.S
index 126b067..c404d8b 100644
--- a/firmware/fw_base.S
+++ b/firmware/fw_base.S
@@ -298,9 +298,6 @@ _scratch_init:
/* Store hartid-to-scratch function address in scratch space */
lla a4, _hartid_to_scratch
REG_S a4, SBI_SCRATCH_HARTID_TO_SCRATCH_OFFSET(tp)
- /* Store trap-exit function address in scratch space */
- lla a4, _trap_exit
- REG_S a4, SBI_SCRATCH_TRAP_EXIT_OFFSET(tp)
/* Clear tmp0 in scratch space */
REG_S zero, SBI_SCRATCH_TMP0_OFFSET(tp)
/* Store firmware options in scratch space */
@@ -453,10 +450,6 @@ _start_warm:
srli a5, a5, ('H' - 'A')
andi a5, a5, 0x1
beq a5, zero, _skip_trap_handler_rv32_hyp
- /* Override trap exit for H-extension */
- csrr a5, CSR_MSCRATCH
- lla a4, _trap_exit_rv32_hyp
- REG_S a4, SBI_SCRATCH_TRAP_EXIT_OFFSET(a5)
lla a4, _trap_handler_rv32_hyp
_skip_trap_handler_rv32_hyp:
#endif
@@ -695,7 +688,6 @@ memcmp:
.section .entry, "ax", %progbits
.align 3
.globl _trap_handler
- .globl _trap_exit
_trap_handler:
TRAP_SAVE_AND_SETUP_SP_T0
@@ -705,7 +697,6 @@ _trap_handler:
TRAP_CALL_C_ROUTINE
-_trap_exit:
TRAP_RESTORE_GENERAL_REGS_EXCEPT_A0_T0
TRAP_RESTORE_MEPC_MSTATUS 0
@@ -718,7 +709,6 @@ _trap_exit:
.section .entry, "ax", %progbits
.align 3
.globl _trap_handler_rv32_hyp
- .globl _trap_exit_rv32_hyp
_trap_handler_rv32_hyp:
TRAP_SAVE_AND_SETUP_SP_T0
@@ -728,7 +718,6 @@ _trap_handler_rv32_hyp:
TRAP_CALL_C_ROUTINE
-_trap_exit_rv32_hyp:
TRAP_RESTORE_GENERAL_REGS_EXCEPT_A0_T0
TRAP_RESTORE_MEPC_MSTATUS 1
diff --git a/include/sbi/sbi_scratch.h b/include/sbi/sbi_scratch.h
index e6a33ba..55b937f 100644
--- a/include/sbi/sbi_scratch.h
+++ b/include/sbi/sbi_scratch.h
@@ -36,14 +36,12 @@
#define SBI_SCRATCH_PLATFORM_ADDR_OFFSET (9 * __SIZEOF_POINTER__)
/** Offset of hartid_to_scratch member in sbi_scratch */
#define SBI_SCRATCH_HARTID_TO_SCRATCH_OFFSET (10 * __SIZEOF_POINTER__)
-/** Offset of trap_exit member in sbi_scratch */
-#define SBI_SCRATCH_TRAP_EXIT_OFFSET (11 * __SIZEOF_POINTER__)
/** Offset of tmp0 member in sbi_scratch */
-#define SBI_SCRATCH_TMP0_OFFSET (12 * __SIZEOF_POINTER__)
+#define SBI_SCRATCH_TMP0_OFFSET (11 * __SIZEOF_POINTER__)
/** Offset of options member in sbi_scratch */
-#define SBI_SCRATCH_OPTIONS_OFFSET (13 * __SIZEOF_POINTER__)
+#define SBI_SCRATCH_OPTIONS_OFFSET (12 * __SIZEOF_POINTER__)
/** Offset of extra space in sbi_scratch */
-#define SBI_SCRATCH_EXTRA_SPACE_OFFSET (14 * __SIZEOF_POINTER__)
+#define SBI_SCRATCH_EXTRA_SPACE_OFFSET (13 * __SIZEOF_POINTER__)
/** Maximum size of sbi_scratch (4KB) */
#define SBI_SCRATCH_SIZE (0x1000)
@@ -77,8 +75,6 @@ struct sbi_scratch {
unsigned long platform_addr;
/** Address of HART ID to sbi_scratch conversion function */
unsigned long hartid_to_scratch;
- /** Address of trap exit function */
- unsigned long trap_exit;
/** Temporary storage */
unsigned long tmp0;
/** Options for OpenSBI library */
@@ -129,11 +125,6 @@ _Static_assert(
== SBI_SCRATCH_HARTID_TO_SCRATCH_OFFSET,
"struct sbi_scratch definition has changed, please redefine "
"SBI_SCRATCH_HARTID_TO_SCRATCH_OFFSET");
-_Static_assert(
- offsetof(struct sbi_scratch, trap_exit)
- == SBI_SCRATCH_TRAP_EXIT_OFFSET,
- "struct sbi_scratch definition has changed, please redefine "
- "SBI_SCRATCH_TRAP_EXIT_OFFSET");
_Static_assert(
offsetof(struct sbi_scratch, tmp0)
== SBI_SCRATCH_TMP0_OFFSET,
diff --git a/include/sbi/sbi_trap.h b/include/sbi/sbi_trap.h
index 2727bdb..15ccd0b 100644
--- a/include/sbi/sbi_trap.h
+++ b/include/sbi/sbi_trap.h
@@ -229,8 +229,6 @@ int sbi_trap_redirect(struct sbi_trap_regs *regs,
struct sbi_trap_regs *sbi_trap_handler(struct sbi_trap_regs *regs);
-void __noreturn sbi_trap_exit(const struct sbi_trap_regs *regs);
-
#endif
#endif
diff --git a/lib/sbi/sbi_trap.c b/lib/sbi/sbi_trap.c
index c665013..e514066 100644
--- a/lib/sbi/sbi_trap.c
+++ b/lib/sbi/sbi_trap.c
@@ -335,22 +335,3 @@ trap_error:
sbi_trap_error(msg, rc, mcause, mtval, mtval2, mtinst, regs);
return regs;
}
-
-typedef void (*trap_exit_t)(const struct sbi_trap_regs *regs);
-
-/**
- * Exit trap/interrupt handling
- *
- * This function is called by non-firmware code to abruptly exit
- * trap/interrupt handling and resume execution at context pointed
- * by given register state.
- *
- * @param regs pointer to register state
- */
-void __noreturn sbi_trap_exit(const struct sbi_trap_regs *regs)
-{
- struct sbi_scratch *scratch = sbi_scratch_thishart_ptr();
-
- ((trap_exit_t)scratch->trap_exit)(regs);
- __builtin_unreachable();
-}
--
2.34.1
next prev parent reply other threads:[~2024-03-11 16:09 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-11 16:09 [PATCH 0/9] Improve trap handling for nested traps Anup Patel
2024-03-11 16:09 ` Anup Patel [this message]
2024-03-11 17:12 ` [PATCH 1/9] lib: sbi: Remove sbi_trap_exit() and related code Samuel Holland
2024-03-11 16:09 ` [PATCH 2/9] include: sbi: Add trap_context pointer in struct sbi_scratch Anup Patel
2024-03-11 16:09 ` [PATCH 3/9] lib: sbi: Introduce trap context Anup Patel
2024-03-11 17:32 ` Samuel Holland
2024-03-12 5:25 ` Anup Patel
2024-03-11 16:09 ` [PATCH 4/9] lib: sbi: Simplify parameters of misaligned and access fault handlers Anup Patel
2024-03-11 16:09 ` [PATCH 5/9] lib: sbi: Simplify parameters of sbi_illegal_insn_handler() Anup Patel
2024-03-11 16:09 ` [PATCH 6/9] lib: sbi: Remove regs paramter of sbi_irqchip_process() Anup Patel
2024-03-11 16:09 ` [PATCH 7/9] lib: sbi: Remove regs parameter from trap irq handling functions Anup Patel
2024-03-11 19:47 ` Samuel Holland
2024-03-12 5:20 ` Anup Patel
2024-03-11 16:09 ` [PATCH 8/9] lib: sbi: Pass trap context pointer to sbi_ecall_handler() Anup Patel
2024-03-11 16:09 ` [PATCH 9/9] lib: sbi: Extend sbi_trap_error() to dump state in a nested trap Anup Patel
2024-03-12 1:01 ` [PATCH 0/9] Improve trap handling for nested traps Bo Gan
2024-03-12 3:43 ` Anup Patel
2024-03-12 4:33 ` Bo Gan
2024-03-12 5:18 ` Anup Patel
2024-03-12 5:41 ` Bo Gan
2024-03-12 7:43 ` Anup Patel
2024-03-12 7:59 ` Bo Gan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240311160944.1233523-2-apatel@ventanamicro.com \
--to=apatel@ventanamicro.com \
--cc=opensbi@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.