mirror of
https://github.com/riscv-software-src/opensbi.git
synced 2025-08-24 23:41:23 +01:00
firmware: Improve low-level trap handler for M-mode to M-mode traps
This patch extends our low-level trap handler in fw_base.S for handling M-mode to M-mode traps without overwritting stack. Signed-off-by: Anup Patel <anup.patel@wdc.com>
This commit is contained in:
@@ -30,6 +30,8 @@
|
||||
#define SBI_SCRATCH_HARTID_TO_SCRATCH_OFFSET (7 * __SIZEOF_POINTER__)
|
||||
/** Offset of ipi_type member in sbi_scratch */
|
||||
#define SBI_SCRATCH_IPI_TYPE_OFFSET (8 * __SIZEOF_POINTER__)
|
||||
/** Offset of tmp0 member in sbi_scratch */
|
||||
#define SBI_SCRATCH_TMP0_OFFSET (9 * __SIZEOF_POINTER__)
|
||||
/** Maximum size of sbi_scratch */
|
||||
#define SBI_SCRATCH_SIZE 256
|
||||
|
||||
@@ -57,6 +59,8 @@ struct sbi_scratch {
|
||||
unsigned long hartid_to_scratch;
|
||||
/** IPI type (or flags) */
|
||||
unsigned long ipi_type;
|
||||
/** Temporary storage */
|
||||
unsigned long tmp0;
|
||||
} __packed;
|
||||
|
||||
/** Get pointer to sbi_scratch for current HART */
|
||||
|
Reference in New Issue
Block a user