The currently IPI implementation assumes that CLINT exists in the system, however, that might not be the case as IPI can be implemented with PLIC that supports software-triggering as well, such as the Andes NCEPLIC100. Refactor the CLINT-based IPI implementations into `ipi_clint.c`, and create Kconfig that selects the CLINT implementation when `sifive-clint0` exists and enabled, otherwise default to `RISCV_SMP_IPI_CUSTOM` which allows OOT implementation. This also makes way for the upstreaming of non-clint IPI implementation later. Signed-off-by: Yong Cong Sin <ycsin@meta.com>
14 lines
221 B
C
14 lines
221 B
C
/*
|
|
* Copyright (c) 2021 Intel Corporation
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#include <ipi.h>
|
|
|
|
#include <zephyr/kernel.h>
|
|
|
|
void arch_sched_broadcast_ipi(void)
|
|
{
|
|
arch_sched_directed_ipi(IPI_ALL_CPUS_MASK);
|
|
}
|