aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/sbi/sbi_platform.h15
-rw-r--r--lib/utils/sys/clint.c23
-rw-r--r--platform/ariane-fpga/platform.c1
-rw-r--r--platform/kendryte/k210/platform.c1
-rw-r--r--platform/qemu/sifive_u/platform.c1
-rw-r--r--platform/qemu/virt/platform.c1
-rw-r--r--platform/sifive/fu540/platform.c1
-rw-r--r--platform/template/platform.c10
8 files changed, 0 insertions, 53 deletions
diff --git a/include/sbi/sbi_platform.h b/include/sbi/sbi_platform.h
index 34cd732..97195c4 100644
--- a/include/sbi/sbi_platform.h
+++ b/include/sbi/sbi_platform.h
@@ -90,8 +90,6 @@ struct sbi_platform_operations {
/** Send IPI to a target HART */
void (*ipi_send)(u32 target_hart);
- /** Wait for target HART to acknowledge IPI */
- void (*ipi_sync)(u32 target_hart);
/** Clear IPI for a target HART */
void (*ipi_clear)(u32 target_hart);
/** Initialize IPI for current HART */
@@ -371,19 +369,6 @@ static inline void sbi_platform_ipi_send(const struct sbi_platform *plat,
}
/**
- * Wait for target HART to acknowledge IPI
- *
- * @param plat pointer to struct sbi_platform
- * @param target_hart HART ID of IPI target
- */
-static inline void sbi_platform_ipi_sync(const struct sbi_platform *plat,
- u32 target_hart)
-{
- if (plat && sbi_platform_ops(plat)->ipi_sync)
- sbi_platform_ops(plat)->ipi_sync(target_hart);
-}
-
-/**
* Clear IPI for a target HART
*
* @param plat pointer to struct sbi_platform
diff --git a/lib/utils/sys/clint.c b/lib/utils/sys/clint.c
index 055a513..d58e4e6 100644
--- a/lib/utils/sys/clint.c
+++ b/lib/utils/sys/clint.c
@@ -25,29 +25,6 @@ void clint_ipi_send(u32 target_hart)
writel(1, &clint_ipi[target_hart]);
}
-void clint_ipi_sync(u32 target_hart)
-{
- u32 target_ipi, incoming_ipi;
- u32 source_hart = sbi_current_hartid();
-
- if (clint_ipi_hart_count <= target_hart)
- return;
-
- /* Wait until target HART has handled IPI */
- incoming_ipi = 0;
- while (1) {
- target_ipi = readl(&clint_ipi[target_hart]);
- if (!target_ipi)
- break;
-
- incoming_ipi |=
- atomic_raw_xchg_uint(&clint_ipi[source_hart], 0);
- }
-
- if (incoming_ipi)
- writel(incoming_ipi, &clint_ipi[source_hart]);
-}
-
void clint_ipi_clear(u32 target_hart)
{
if (clint_ipi_hart_count <= target_hart)
diff --git a/platform/ariane-fpga/platform.c b/platform/ariane-fpga/platform.c
index 62cee90..daeb9cd 100644
--- a/platform/ariane-fpga/platform.c
+++ b/platform/ariane-fpga/platform.c
@@ -185,7 +185,6 @@ const struct sbi_platform_operations platform_ops = {
.irqchip_init = ariane_irqchip_init,
.ipi_init = ariane_ipi_init,
.ipi_send = clint_ipi_send,
- .ipi_sync = clint_ipi_sync,
.ipi_clear = clint_ipi_clear,
.timer_init = ariane_timer_init,
.timer_value = clint_timer_value,
diff --git a/platform/kendryte/k210/platform.c b/platform/kendryte/k210/platform.c
index 4c31ee9..19c569c 100644
--- a/platform/kendryte/k210/platform.c
+++ b/platform/kendryte/k210/platform.c
@@ -102,7 +102,6 @@ const struct sbi_platform_operations platform_ops = {
.ipi_init = k210_ipi_init,
.ipi_send = clint_ipi_send,
- .ipi_sync = clint_ipi_sync,
.ipi_clear = clint_ipi_clear,
.timer_init = k210_timer_init,
diff --git a/platform/qemu/sifive_u/platform.c b/platform/qemu/sifive_u/platform.c
index d8b586f..40d6584 100644
--- a/platform/qemu/sifive_u/platform.c
+++ b/platform/qemu/sifive_u/platform.c
@@ -136,7 +136,6 @@ const struct sbi_platform_operations platform_ops = {
.console_init = sifive_u_console_init,
.irqchip_init = sifive_u_irqchip_init,
.ipi_send = clint_ipi_send,
- .ipi_sync = clint_ipi_sync,
.ipi_clear = clint_ipi_clear,
.ipi_init = sifive_u_ipi_init,
.timer_value = clint_timer_value,
diff --git a/platform/qemu/virt/platform.c b/platform/qemu/virt/platform.c
index 1cf0b7d..6ef6a19 100644
--- a/platform/qemu/virt/platform.c
+++ b/platform/qemu/virt/platform.c
@@ -141,7 +141,6 @@ const struct sbi_platform_operations platform_ops = {
.console_init = virt_console_init,
.irqchip_init = virt_irqchip_init,
.ipi_send = clint_ipi_send,
- .ipi_sync = clint_ipi_sync,
.ipi_clear = clint_ipi_clear,
.ipi_init = virt_ipi_init,
.timer_value = clint_timer_value,
diff --git a/platform/sifive/fu540/platform.c b/platform/sifive/fu540/platform.c
index 827e294..81e8e8d 100644
--- a/platform/sifive/fu540/platform.c
+++ b/platform/sifive/fu540/platform.c
@@ -199,7 +199,6 @@ const struct sbi_platform_operations platform_ops = {
.console_init = fu540_console_init,
.irqchip_init = fu540_irqchip_init,
.ipi_send = clint_ipi_send,
- .ipi_sync = clint_ipi_sync,
.ipi_clear = clint_ipi_clear,
.ipi_init = fu540_ipi_init,
.timer_value = clint_timer_value,
diff --git a/platform/template/platform.c b/platform/template/platform.c
index 148bfa9..e123f3a 100644
--- a/platform/template/platform.c
+++ b/platform/template/platform.c
@@ -125,15 +125,6 @@ static void platform_ipi_send(u32 target_hart)
}
/*
- * Wait for target HART to acknowledge IPI.
- */
-static void platform_ipi_sync(u32 target_hart)
-{
- /* Example if the generic CLINT driver is used */
- clint_ipi_sync(target_hart);
-}
-
-/*
* Clear IPI for a target HART.
*/
static void platform_ipi_clear(u32 target_hart)
@@ -216,7 +207,6 @@ const struct sbi_platform_operations platform_ops = {
.console_init = platform_console_init,
.irqchip_init = platform_irqchip_init,
.ipi_send = platform_ipi_send,
- .ipi_sync = platform_ipi_sync,
.ipi_clear = platform_ipi_clear,
.ipi_init = platform_ipi_init,
.timer_value = platform_timer_value,