summaryrefslogtreecommitdiff
path: root/bsp/xuantie/virt64/c906/libcpu
diff options
context:
space:
mode:
authorHaojin Tang <[email protected]>2025-09-02 22:04:10 +0800
committerR b b666 <[email protected]>2025-09-03 09:48:22 +0800
commit893ae7d7ba4daecfe4732cb51db8f140dc7211ff (patch)
tree9ca55a8a25d689f42be6d4f3513a0c36c2dd7b32 /bsp/xuantie/virt64/c906/libcpu
parentc0142c786e127463ba78b9021c263f081c87b9f5 (diff)
fix(risc-v, virt64, plic): use volatile rw for claim and complete
Diffstat (limited to 'bsp/xuantie/virt64/c906/libcpu')
-rw-r--r--bsp/xuantie/virt64/c906/libcpu/plic.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/bsp/xuantie/virt64/c906/libcpu/plic.c b/bsp/xuantie/virt64/c906/libcpu/plic.c
index 8aab8b1292..051e89c5ce 100644
--- a/bsp/xuantie/virt64/c906/libcpu/plic.c
+++ b/bsp/xuantie/virt64/c906/libcpu/plic.c
@@ -93,7 +93,7 @@ void plic_set_threshold(int threshold)
int plic_claim(void)
{
int hart = __raw_hartid();
- int irq = *(uint32_t *)PLIC_CLAIM(hart);
+ int irq = readl((uint32_t *)PLIC_CLAIM(hart));
return irq;
}
@@ -110,7 +110,7 @@ int plic_claim(void)
void plic_complete(int irq)
{
int hart = __raw_hartid();
- *(uint32_t *)PLIC_COMPLETE(hart) = irq;
+ writel(irq, (uint32_t *)PLIC_COMPLETE(hart));
}
void plic_set_ie(rt_uint32_t word_index, rt_uint32_t val)