forked from Mirrors/opensbi
lib: sbi: Fix SHMEM_PHYS_ADDR for RV32
Obtaining a 64-bit address under rv32 does not require combining two 32-bit registers because we ignore upper 32-bits on rv32. Signed-off-by: Xiang W <wxjstz@126.com> Reviewed-by: Anup Patel <anup@brainfault.org> Link: https://lore.kernel.org/r/20250319123832.505033-1-wxjstz@126.com Signed-off-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
@@ -66,13 +66,7 @@ static SBI_LIST_HEAD(mpxy_channel_list);
|
|||||||
#define CAP_DISABLE(_c, _m) INSERT_FIELD(_c, _m, 0)
|
#define CAP_DISABLE(_c, _m) INSERT_FIELD(_c, _m, 0)
|
||||||
#define CAP_GET(_c, _m) EXTRACT_FIELD(_c, _m)
|
#define CAP_GET(_c, _m) EXTRACT_FIELD(_c, _m)
|
||||||
|
|
||||||
#if __riscv_xlen == 64
|
|
||||||
#define SHMEM_PHYS_ADDR(_hi, _lo) (_lo)
|
#define SHMEM_PHYS_ADDR(_hi, _lo) (_lo)
|
||||||
#elif __riscv_xlen == 32
|
|
||||||
#define SHMEM_PHYS_ADDR(_hi, _lo) (((u64)(_hi) << 32) | (_lo))
|
|
||||||
#else
|
|
||||||
#error "Undefined XLEN"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Per hart shared memory */
|
/** Per hart shared memory */
|
||||||
struct mpxy_shmem {
|
struct mpxy_shmem {
|
||||||
|
Reference in New Issue
Block a user