Skip to content

Commit 893ae7d

Browse files
Tang-HaojinRbb666
authored andcommitted
fix(risc-v, virt64, plic): use volatile rw for claim and complete
1 parent c0142c7 commit 893ae7d

File tree

2 files changed

+4
-4
lines changed
  • bsp/xuantie/virt64/c906/libcpu
  • libcpu/risc-v/virt64

2 files changed

+4
-4
lines changed

bsp/xuantie/virt64/c906/libcpu/plic.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ void plic_set_threshold(int threshold)
9393
int plic_claim(void)
9494
{
9595
int hart = __raw_hartid();
96-
int irq = *(uint32_t *)PLIC_CLAIM(hart);
96+
int irq = readl((uint32_t *)PLIC_CLAIM(hart));
9797
return irq;
9898
}
9999

@@ -110,7 +110,7 @@ int plic_claim(void)
110110
void plic_complete(int irq)
111111
{
112112
int hart = __raw_hartid();
113-
*(uint32_t *)PLIC_COMPLETE(hart) = irq;
113+
writel(irq, (uint32_t *)PLIC_COMPLETE(hart));
114114
}
115115

116116
void plic_set_ie(rt_uint32_t word_index, rt_uint32_t val)

libcpu/risc-v/virt64/plic.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ void plic_set_threshold(int threshold)
9393
int plic_claim(void)
9494
{
9595
int hart = __raw_hartid();
96-
int irq = *(uint32_t *)PLIC_CLAIM(hart);
96+
int irq = readl((uint32_t *)PLIC_CLAIM(hart));
9797
return irq;
9898
}
9999

@@ -110,7 +110,7 @@ int plic_claim(void)
110110
void plic_complete(int irq)
111111
{
112112
int hart = __raw_hartid();
113-
*(uint32_t *)PLIC_COMPLETE(hart) = irq;
113+
writel(irq, (uint32_t *)PLIC_COMPLETE(hart));
114114
}
115115

116116
void plic_set_ie(rt_uint32_t word_index, rt_uint32_t val)

0 commit comments

Comments
 (0)