summaryrefslogtreecommitdiff
path: root/libcpu
diff options
context:
space:
mode:
authorzhujiale <[email protected]>2024-08-29 10:12:47 +0800
committerRbb666 <[email protected]>2024-09-24 09:56:30 +0800
commit512dae84bef1d85f8f7670c24ab774c9afdc0133 (patch)
tree1af654b29619257319091c99d9f8dc738ea3d263 /libcpu
parentee5014d32f7b1ee61b6d00218e6b1ffa8770ae96 (diff)
smp_ipi
Diffstat (limited to 'libcpu')
-rw-r--r--libcpu/aarch64/common/setup.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libcpu/aarch64/common/setup.c b/libcpu/aarch64/common/setup.c
index 304e8565fb..9d6c16b639 100644
--- a/libcpu/aarch64/common/setup.c
+++ b/libcpu/aarch64/common/setup.c
@@ -13,7 +13,7 @@
#define DBG_TAG "cpu.aa64"
#define DBG_LVL DBG_INFO
#include <rtdbg.h>
-
+#include <smp.h>
#include <cpu.h>
#include <mmu.h>
#include <cpuport.h>
@@ -302,11 +302,14 @@ void rt_hw_common_setup(void)
rt_thread_idle_sethook(rt_hw_idle_wfi);
#ifdef RT_USING_SMP
+ smp_init();
/* Install the IPI handle */
rt_hw_ipi_handler_install(RT_SCHEDULE_IPI, rt_scheduler_ipi_handler);
rt_hw_ipi_handler_install(RT_STOP_IPI, rt_scheduler_ipi_handler);
+ rt_hw_ipi_handler_install(RT_IPI_FUNC, rt_smp_call_ipi_handler);
rt_hw_interrupt_umask(RT_SCHEDULE_IPI);
rt_hw_interrupt_umask(RT_STOP_IPI);
+ rt_hw_interrupt_umask(RT_IPI_FUNC);
#endif
}