RISC-V: Add defines for the SBI message proxy extension
Add defines for the new SBI message proxy extension which is part of the SBI v3.0 specification. Reviewed-by: Atish Patra <atishp@rivosinc.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Co-developed-by: Rahul Pathak <rpathak@ventanamicro.com> Signed-off-by: Rahul Pathak <rpathak@ventanamicro.com> Signed-off-by: Anup Patel <apatel@ventanamicro.com> Link: https://lore.kernel.org/r/20250818040920.272664-4-apatel@ventanamicro.com Signed-off-by: Paul Walmsley <pjw@kernel.org>
This commit is contained in:
committed by
Paul Walmsley
parent
581b4da1f7
commit
508da38677
@@ -36,6 +36,7 @@ enum sbi_ext_id {
|
||||
SBI_EXT_STA = 0x535441,
|
||||
SBI_EXT_NACL = 0x4E41434C,
|
||||
SBI_EXT_FWFT = 0x46574654,
|
||||
SBI_EXT_MPXY = 0x4D505859,
|
||||
|
||||
/* Experimentals extensions must lie within this range */
|
||||
SBI_EXT_EXPERIMENTAL_START = 0x08000000,
|
||||
@@ -430,6 +431,67 @@ enum sbi_fwft_feature_t {
|
||||
|
||||
#define SBI_FWFT_SET_FLAG_LOCK BIT(0)
|
||||
|
||||
enum sbi_ext_mpxy_fid {
|
||||
SBI_EXT_MPXY_GET_SHMEM_SIZE,
|
||||
SBI_EXT_MPXY_SET_SHMEM,
|
||||
SBI_EXT_MPXY_GET_CHANNEL_IDS,
|
||||
SBI_EXT_MPXY_READ_ATTRS,
|
||||
SBI_EXT_MPXY_WRITE_ATTRS,
|
||||
SBI_EXT_MPXY_SEND_MSG_WITH_RESP,
|
||||
SBI_EXT_MPXY_SEND_MSG_WITHOUT_RESP,
|
||||
SBI_EXT_MPXY_GET_NOTIFICATION_EVENTS,
|
||||
};
|
||||
|
||||
enum sbi_mpxy_attribute_id {
|
||||
/* Standard channel attributes managed by MPXY framework */
|
||||
SBI_MPXY_ATTR_MSG_PROT_ID = 0x00000000,
|
||||
SBI_MPXY_ATTR_MSG_PROT_VER = 0x00000001,
|
||||
SBI_MPXY_ATTR_MSG_MAX_LEN = 0x00000002,
|
||||
SBI_MPXY_ATTR_MSG_SEND_TIMEOUT = 0x00000003,
|
||||
SBI_MPXY_ATTR_MSG_COMPLETION_TIMEOUT = 0x00000004,
|
||||
SBI_MPXY_ATTR_CHANNEL_CAPABILITY = 0x00000005,
|
||||
SBI_MPXY_ATTR_SSE_EVENT_ID = 0x00000006,
|
||||
SBI_MPXY_ATTR_MSI_CONTROL = 0x00000007,
|
||||
SBI_MPXY_ATTR_MSI_ADDR_LO = 0x00000008,
|
||||
SBI_MPXY_ATTR_MSI_ADDR_HI = 0x00000009,
|
||||
SBI_MPXY_ATTR_MSI_DATA = 0x0000000A,
|
||||
SBI_MPXY_ATTR_EVENTS_STATE_CONTROL = 0x0000000B,
|
||||
SBI_MPXY_ATTR_STD_ATTR_MAX_IDX,
|
||||
/*
|
||||
* Message protocol specific attributes, managed by
|
||||
* the message protocol specification.
|
||||
*/
|
||||
SBI_MPXY_ATTR_MSGPROTO_ATTR_START = 0x80000000,
|
||||
SBI_MPXY_ATTR_MSGPROTO_ATTR_END = 0xffffffff
|
||||
};
|
||||
|
||||
/* Possible values of MSG_PROT_ID attribute as-per SBI v3.0 (or higher) */
|
||||
enum sbi_mpxy_msgproto_id {
|
||||
SBI_MPXY_MSGPROTO_RPMI_ID = 0x0,
|
||||
};
|
||||
|
||||
/* RPMI message protocol specific MPXY attributes */
|
||||
enum sbi_mpxy_rpmi_attribute_id {
|
||||
SBI_MPXY_RPMI_ATTR_SERVICEGROUP_ID = SBI_MPXY_ATTR_MSGPROTO_ATTR_START,
|
||||
SBI_MPXY_RPMI_ATTR_SERVICEGROUP_VERSION,
|
||||
SBI_MPXY_RPMI_ATTR_IMPL_ID,
|
||||
SBI_MPXY_RPMI_ATTR_IMPL_VERSION,
|
||||
SBI_MPXY_RPMI_ATTR_MAX_ID
|
||||
};
|
||||
|
||||
/* Encoding of MSG_PROT_VER attribute */
|
||||
#define SBI_MPXY_MSG_PROT_VER_MAJOR(__ver) upper_16_bits(__ver)
|
||||
#define SBI_MPXY_MSG_PROT_VER_MINOR(__ver) lower_16_bits(__ver)
|
||||
#define SBI_MPXY_MSG_PROT_MKVER(__maj, __min) (((u32)(__maj) << 16) | (u16)(__min))
|
||||
|
||||
/* Capabilities available through CHANNEL_CAPABILITY attribute */
|
||||
#define SBI_MPXY_CHAN_CAP_MSI BIT(0)
|
||||
#define SBI_MPXY_CHAN_CAP_SSE BIT(1)
|
||||
#define SBI_MPXY_CHAN_CAP_EVENTS_STATE BIT(2)
|
||||
#define SBI_MPXY_CHAN_CAP_SEND_WITH_RESP BIT(3)
|
||||
#define SBI_MPXY_CHAN_CAP_SEND_WITHOUT_RESP BIT(4)
|
||||
#define SBI_MPXY_CHAN_CAP_GET_NOTIFICATIONS BIT(5)
|
||||
|
||||
/* SBI spec version fields */
|
||||
#define SBI_SPEC_VERSION_DEFAULT 0x1
|
||||
#define SBI_SPEC_VERSION_MAJOR_SHIFT 24
|
||||
|
||||
Reference in New Issue
Block a user