|
@@ -188,26 +188,34 @@ int aclint_mtimer_cold_init(struct aclint_mtimer_data *mt,
|
|
|
rc = sbi_domain_root_add_memrange(mt->mtimecmp_addr,
|
|
|
mt->mtime_size + mt->mtimecmp_size,
|
|
|
MTIMER_REGION_ALIGN,
|
|
|
- SBI_DOMAIN_MEMREGION_MMIO);
|
|
|
+ (SBI_DOMAIN_MEMREGION_MMIO |
|
|
|
+ SBI_DOMAIN_MEMREGION_M_READABLE |
|
|
|
+ SBI_DOMAIN_MEMREGION_M_WRITABLE));
|
|
|
if (rc)
|
|
|
return rc;
|
|
|
} else if (mt->mtimecmp_addr == (mt->mtime_addr + mt->mtime_size)) {
|
|
|
rc = sbi_domain_root_add_memrange(mt->mtime_addr,
|
|
|
mt->mtime_size + mt->mtimecmp_size,
|
|
|
MTIMER_REGION_ALIGN,
|
|
|
- SBI_DOMAIN_MEMREGION_MMIO);
|
|
|
+ (SBI_DOMAIN_MEMREGION_MMIO |
|
|
|
+ SBI_DOMAIN_MEMREGION_M_READABLE |
|
|
|
+ SBI_DOMAIN_MEMREGION_M_WRITABLE));
|
|
|
if (rc)
|
|
|
return rc;
|
|
|
} else {
|
|
|
rc = sbi_domain_root_add_memrange(mt->mtime_addr,
|
|
|
mt->mtime_size, MTIMER_REGION_ALIGN,
|
|
|
- SBI_DOMAIN_MEMREGION_MMIO);
|
|
|
+ (SBI_DOMAIN_MEMREGION_MMIO |
|
|
|
+ SBI_DOMAIN_MEMREGION_M_READABLE |
|
|
|
+ SBI_DOMAIN_MEMREGION_M_WRITABLE));
|
|
|
if (rc)
|
|
|
return rc;
|
|
|
|
|
|
rc = sbi_domain_root_add_memrange(mt->mtimecmp_addr,
|
|
|
mt->mtimecmp_size, MTIMER_REGION_ALIGN,
|
|
|
- SBI_DOMAIN_MEMREGION_MMIO);
|
|
|
+ (SBI_DOMAIN_MEMREGION_MMIO |
|
|
|
+ SBI_DOMAIN_MEMREGION_M_READABLE |
|
|
|
+ SBI_DOMAIN_MEMREGION_M_WRITABLE));
|
|
|
if (rc)
|
|
|
return rc;
|
|
|
}
|