From: Clément Léger <cleger@rivosinc.com>
To: opensbi@lists.infradead.org
Subject: [PATCH 1/6] lib: sbi: sse: Update SSE event ids
Date: Mon, 17 Mar 2025 11:54:19 +0100 [thread overview]
Message-ID: <20250317105426.631243-2-cleger@rivosinc.com> (raw)
In-Reply-To: <20250317105426.631243-1-cleger@rivosinc.com>
The latest specification added new high priority RAS events and renamed
the PMU to PMU_OVERFLOW.
Signed-off-by: Cl?ment L?ger <cleger@rivosinc.com>
---
include/sbi/sbi_ecall_interface.h | 44 ++++++++++++++++++++++++-------
lib/sbi/sbi_pmu.c | 4 +--
lib/sbi/sbi_sse.c | 8 +++---
3 files changed, 42 insertions(+), 14 deletions(-)
diff --git a/include/sbi/sbi_ecall_interface.h b/include/sbi/sbi_ecall_interface.h
index a7dab8c3..bd694aa8 100644
--- a/include/sbi/sbi_ecall_interface.h
+++ b/include/sbi/sbi_ecall_interface.h
@@ -393,34 +393,60 @@ enum sbi_sse_state {
};
/* SBI SSE Event IDs. */
-#define SBI_SSE_EVENT_LOCAL_RAS 0x00000000
+/* Range 0x00000000 - 0x0000ffff */
+#define SBI_SSE_EVENT_LOCAL_HIGH_PRIO_RAS 0x00000000
#define SBI_SSE_EVENT_LOCAL_DOUBLE_TRAP 0x00000001
+#define SBI_SSE_EVENT_LOCAL_RESERVED_0_START 0x00000002
+#define SBI_SSE_EVENT_LOCAL_RESERVED_0_END 0x00003fff
#define SBI_SSE_EVENT_LOCAL_PLAT_0_START 0x00004000
#define SBI_SSE_EVENT_LOCAL_PLAT_0_END 0x00007fff
-#define SBI_SSE_EVENT_GLOBAL_RAS 0x00008000
+
+#define SBI_SSE_EVENT_GLOBAL_HIGH_PRIO_RAS 0x00008000
+#define SBI_SSE_EVENT_GLOBAL_RESERVED_0_START 0x00008001
+#define SBI_SSE_EVENT_GLOBAL_RESERVED_0_END 0x0000bfff
#define SBI_SSE_EVENT_GLOBAL_PLAT_0_START 0x0000c000
#define SBI_SSE_EVENT_GLOBAL_PLAT_0_END 0x0000ffff
-#define SBI_SSE_EVENT_LOCAL_PMU 0x00010000
+/* Range 0x00010000 - 0x0001ffff */
+#define SBI_SSE_EVENT_LOCAL_PMU_OVERFLOW 0x00010000
+#define SBI_SSE_EVENT_LOCAL_RESERVED_1_START 0x00010001
+#define SBI_SSE_EVENT_LOCAL_RESERVED_1_END 0x00013fff
#define SBI_SSE_EVENT_LOCAL_PLAT_1_START 0x00014000
#define SBI_SSE_EVENT_LOCAL_PLAT_1_END 0x00017fff
+
+#define SBI_SSE_EVENT_GLOBAL_RESERVED_1_START 0x00018000
+#define SBI_SSE_EVENT_GLOBAL_RESERVED_1_END 0x0001bfff
#define SBI_SSE_EVENT_GLOBAL_PLAT_1_START 0x0001c000
#define SBI_SSE_EVENT_GLOBAL_PLAT_1_END 0x0001ffff
-#define SBI_SSE_EVENT_LOCAL_PLAT_2_START 0x00024000
-#define SBI_SSE_EVENT_LOCAL_PLAT_2_END 0x00027fff
-#define SBI_SSE_EVENT_GLOBAL_PLAT_2_START 0x0002c000
-#define SBI_SSE_EVENT_GLOBAL_PLAT_2_END 0x0002ffff
+/* Range 0x00100000 - 0x0010ffff */
+#define SBI_SSE_EVENT_LOCAL_LOW_PRIO_RAS 0x00100000
+#define SBI_SSE_EVENT_LOCAL_RESERVED_2_START 0x00100001
+#define SBI_SSE_EVENT_LOCAL_RESERVED_2_END 0x00103fff
+#define SBI_SSE_EVENT_LOCAL_PLAT_2_START 0x00104000
+#define SBI_SSE_EVENT_LOCAL_PLAT_2_END 0x00107fff
+#define SBI_SSE_EVENT_GLOBAL_LOW_PRIO_RAS 0x00108000
+#define SBI_SSE_EVENT_GLOBAL_RESERVED_2_START 0x00108001
+#define SBI_SSE_EVENT_GLOBAL_RESERVED_2_END 0x0010bfff
+#define SBI_SSE_EVENT_GLOBAL_PLAT_2_START 0x0010c000
+#define SBI_SSE_EVENT_GLOBAL_PLAT_2_END 0x0010ffff
+
+/* Range 0xffff0000 - 0xffffffff */
#define SBI_SSE_EVENT_LOCAL_SOFTWARE 0xffff0000
+#define SBI_SSE_EVENT_LOCAL_RESERVED_3_START 0xffff0001
+#define SBI_SSE_EVENT_LOCAL_RESERVED_3_END 0xffff3fff
#define SBI_SSE_EVENT_LOCAL_PLAT_3_START 0xffff4000
#define SBI_SSE_EVENT_LOCAL_PLAT_3_END 0xffff7fff
+
#define SBI_SSE_EVENT_GLOBAL_SOFTWARE 0xffff8000
+#define SBI_SSE_EVENT_GLOBAL_RESERVED_3_START 0xffff8001
+#define SBI_SSE_EVENT_GLOBAL_RESERVED_3_END 0xffffbfff
#define SBI_SSE_EVENT_GLOBAL_PLAT_3_START 0xffffc000
#define SBI_SSE_EVENT_GLOBAL_PLAT_3_END 0xffffffff
-#define SBI_SSE_EVENT_GLOBAL_BIT (1 << 15)
-#define SBI_SSE_EVENT_PLATFORM_BIT (1 << 14)
+#define SBI_SSE_EVENT_GLOBAL_BIT BIT(15)
+#define SBI_SSE_EVENT_PLATFORM_BIT BIT(14)
/* SBI function IDs for MPXY extension */
#define SBI_EXT_MPXY_GET_SHMEM_SIZE 0x0
diff --git a/lib/sbi/sbi_pmu.c b/lib/sbi/sbi_pmu.c
index 40b898fe..4f113c23 100644
--- a/lib/sbi/sbi_pmu.c
+++ b/lib/sbi/sbi_pmu.c
@@ -313,7 +313,7 @@ void sbi_pmu_ovf_irq()
* on an irq being triggered
*/
csr_clear(CSR_MIE, sbi_pmu_irq_mask());
- sbi_sse_inject_event(SBI_SSE_EVENT_LOCAL_PMU);
+ sbi_sse_inject_event(SBI_SSE_EVENT_LOCAL_PMU_OVERFLOW);
}
static int pmu_ctr_enable_irq_hw(int ctr_idx)
@@ -1166,7 +1166,7 @@ int sbi_pmu_init(struct sbi_scratch *scratch, bool cold_boot)
total_ctrs = num_hw_ctrs + SBI_PMU_FW_CTR_MAX;
if (sbi_pmu_irq_bit() >= 0)
- sbi_sse_add_event(SBI_SSE_EVENT_LOCAL_PMU, &pmu_sse_cb_ops);
+ sbi_sse_add_event(SBI_SSE_EVENT_LOCAL_PMU_OVERFLOW, &pmu_sse_cb_ops);
}
phs = pmu_get_hart_state_ptr(scratch);
diff --git a/lib/sbi/sbi_sse.c b/lib/sbi/sbi_sse.c
index 2f9bdef8..4722ddc4 100644
--- a/lib/sbi/sbi_sse.c
+++ b/lib/sbi/sbi_sse.c
@@ -195,10 +195,12 @@ static SBI_SLIST_HEAD(supported_events, sse_event_info) =
* events in order to return SBI_ERR_NOT_SUPPORTED for them.
*/
static const uint32_t standard_events[] = {
- SBI_SSE_EVENT_LOCAL_RAS,
+ SBI_SSE_EVENT_LOCAL_HIGH_PRIO_RAS,
SBI_SSE_EVENT_LOCAL_DOUBLE_TRAP,
- SBI_SSE_EVENT_GLOBAL_RAS,
- SBI_SSE_EVENT_LOCAL_PMU,
+ SBI_SSE_EVENT_GLOBAL_HIGH_PRIO_RAS,
+ SBI_SSE_EVENT_LOCAL_PMU_OVERFLOW,
+ SBI_SSE_EVENT_LOCAL_LOW_PRIO_RAS,
+ SBI_SSE_EVENT_GLOBAL_LOW_PRIO_RAS,
SBI_SSE_EVENT_LOCAL_SOFTWARE,
SBI_SSE_EVENT_GLOBAL_SOFTWARE,
};
--
2.47.2
next prev parent reply other threads:[~2025-03-17 10:54 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-17 10:54 [PATCH 0/6] lib: sbi: sse: spec update and fixes Clément Léger
2025-03-17 10:54 ` Clément Léger [this message]
2025-03-24 16:15 ` [PATCH 1/6] lib: sbi: sse: Update SSE event ids Andrew Jones
2025-03-17 10:54 ` [PATCH 2/6] lib: sbi: sse: Fix format string for event invalid state Clément Léger
2025-03-24 16:39 ` Andrew Jones
2025-03-24 16:41 ` Clément Léger
2025-03-17 10:54 ` [PATCH 3/6] lib: sbi: sse: Return SBI_EDENIED for read only parameters Clément Léger
2025-03-24 17:01 ` Andrew Jones
2025-03-24 17:02 ` Clément Léger
2025-03-17 10:54 ` [PATCH 4/6] lib: sbi: sse: Rename STATUS* interrupted flags to SSTATUS* Clément Léger
2025-03-24 17:03 ` Andrew Jones
2025-03-17 10:54 ` [PATCH 5/6] lib: sbi: sse: Add support for SSTATUS.SPELP Clément Léger
2025-03-24 17:08 ` Andrew Jones
2025-03-17 10:54 ` [PATCH 6/6] lib: sbi: sse: Add support for SSTATUS.SDT Clément Léger
2025-03-24 17:46 ` Andrew Jones
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=20250317105426.631243-2-cleger@rivosinc.com \
--to=cleger@rivosinc.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.