aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/sbi/sbi_domain.h6
-rw-r--r--include/sbi/sbi_ecall_interface.h2
2 files changed, 5 insertions, 3 deletions
diff --git a/include/sbi/sbi_domain.h b/include/sbi/sbi_domain.h
index c8a6da9..16edd4c 100644
--- a/include/sbi/sbi_domain.h
+++ b/include/sbi/sbi_domain.h
@@ -170,9 +170,11 @@ static inline bool sbi_domain_memregion_is_subset(
const struct sbi_domain_memregion *regB)
{
ulong regA_start = regA->base;
- ulong regA_end = regA->base + (BIT(regA->order) - 1);
+ ulong regA_mask = (regA->order >= __riscv_xlen) ? ~0UL : (BIT(regA->order) - 1);
+ ulong regA_end = regA_start + regA_mask;
ulong regB_start = regB->base;
- ulong regB_end = regB->base + (BIT(regB->order) - 1);
+ ulong regB_mask = (regB->order >= __riscv_xlen) ? ~0UL : (BIT(regB->order) - 1);
+ ulong regB_end = regB_start + regB_mask;
if ((regB_start <= regA_start) &&
(regA_start < regB_end) &&
diff --git a/include/sbi/sbi_ecall_interface.h b/include/sbi/sbi_ecall_interface.h
index 76624e3..9a776f7 100644
--- a/include/sbi/sbi_ecall_interface.h
+++ b/include/sbi/sbi_ecall_interface.h
@@ -144,7 +144,7 @@ enum sbi_fwft_feature_t {
SBI_FWFT_GLOBAL_PLATFORM_END = 0xffffffff,
};
-#define SBI_FWFT_GLOBAL_FEATURE_BIT (1 << 31)
+#define SBI_FWFT_GLOBAL_FEATURE_BIT (1UL << 31)
#define SBI_FWFT_PLATFORM_FEATURE_BIT (1 << 30)
#define SBI_FWFT_SET_FLAG_LOCK (1 << 0)