From 76af9d40da21c4c67efb7730de263f914452fca0 Mon Sep 17 00:00:00 2001 From: Anup Patel Date: Mon, 8 Aug 2022 09:33:45 +0530 Subject: [PATCH] lib: utils/ipi: Use kconfig for enabling/disabling drivers We update ipi drivers makefile to use kconfig for enabling/disabling drivers. To avoid compile errors, we also enable appropriate ipi drivers for each platform. Signed-off-by: Anup Patel Tested-by: Andrew Jones Acked-by: Atish Patra Tested-by: Atish Patra --- include/sbi_utils/ipi/fdt_ipi.h | 9 +++++++++ lib/utils/Kconfig | 2 ++ lib/utils/ipi/Kconfig | 22 ++++++++++++++++++++++ lib/utils/ipi/objects.mk | 10 +++++----- platform/fpga/ariane/Kconfig | 1 + platform/fpga/openpiton/Kconfig | 1 + platform/generic/configs/defconfig | 2 ++ platform/kendryte/k210/Kconfig | 1 + platform/nuclei/ux600/Kconfig | 1 + platform/template/Kconfig | 1 + 10 files changed, 45 insertions(+), 5 deletions(-) create mode 100644 lib/utils/ipi/Kconfig diff --git a/include/sbi_utils/ipi/fdt_ipi.h b/include/sbi_utils/ipi/fdt_ipi.h index 93373532..1dd9062d 100644 --- a/include/sbi_utils/ipi/fdt_ipi.h +++ b/include/sbi_utils/ipi/fdt_ipi.h @@ -12,6 +12,8 @@ #include +#ifdef CONFIG_FDT_IPI + struct fdt_ipi { const struct fdt_match *match_table; int (*cold_init)(void *fdt, int nodeoff, const struct fdt_match *match); @@ -23,4 +25,11 @@ void fdt_ipi_exit(void); int fdt_ipi_init(bool cold_boot); +#else + +static inline void fdt_ipi_exit(void) { } +static inline int fdt_ipi_init(bool cold_boot) { return 0; } + +#endif + #endif diff --git a/lib/utils/Kconfig b/lib/utils/Kconfig index 6561d0b1..50d97704 100644 --- a/lib/utils/Kconfig +++ b/lib/utils/Kconfig @@ -2,6 +2,8 @@ menu "Utils and Drivers Support" +source "$(OPENSBI_SRC_DIR)/lib/utils/ipi/Kconfig" + source "$(OPENSBI_SRC_DIR)/lib/utils/reset/Kconfig" source "$(OPENSBI_SRC_DIR)/lib/utils/serial/Kconfig" diff --git a/lib/utils/ipi/Kconfig b/lib/utils/ipi/Kconfig new file mode 100644 index 00000000..c0634d3a --- /dev/null +++ b/lib/utils/ipi/Kconfig @@ -0,0 +1,22 @@ +# SPDX-License-Identifier: BSD-2-Clause + +menu "IPI Device Support" + +config FDT_IPI + bool "FDT based ipi drivers" + default n + +if FDT_IPI + +config FDT_IPI_MSWI + bool "ACLINT MSWI FDT driver" + select IPI_MSWI + default n + +endif + +config IPI_MSWI + bool "ACLINT MSWI support" + default n + +endmenu diff --git a/lib/utils/ipi/objects.mk b/lib/utils/ipi/objects.mk index 0b0bc2df..0600cac4 100644 --- a/lib/utils/ipi/objects.mk +++ b/lib/utils/ipi/objects.mk @@ -7,10 +7,10 @@ # Anup Patel # -libsbiutils-objs-y += ipi/aclint_mswi.o +libsbiutils-objs-$(CONFIG_IPI_MSWI) += ipi/aclint_mswi.o -libsbiutils-objs-y += ipi/fdt_ipi.o -libsbiutils-objs-y += ipi/fdt_ipi_drivers.o +libsbiutils-objs-$(CONFIG_FDT_IPI) += ipi/fdt_ipi.o +libsbiutils-objs-$(CONFIG_FDT_IPI) += ipi/fdt_ipi_drivers.o -carray-fdt_ipi_drivers-y += fdt_ipi_mswi -libsbiutils-objs-y += ipi/fdt_ipi_mswi.o +carray-fdt_ipi_drivers-$(CONFIG_FDT_IPI_MSWI) += fdt_ipi_mswi +libsbiutils-objs-$(CONFIG_FDT_IPI_MSWI) += ipi/fdt_ipi_mswi.o diff --git a/platform/fpga/ariane/Kconfig b/platform/fpga/ariane/Kconfig index a7fd7585..0bc15976 100644 --- a/platform/fpga/ariane/Kconfig +++ b/platform/fpga/ariane/Kconfig @@ -2,6 +2,7 @@ config PLATFORM_ARIANE_FPGA bool + select IPI_MSWI select SERIAL_UART8250 select TIMER_MTIMER default y diff --git a/platform/fpga/openpiton/Kconfig b/platform/fpga/openpiton/Kconfig index a7f09e44..0e4e3ba6 100644 --- a/platform/fpga/openpiton/Kconfig +++ b/platform/fpga/openpiton/Kconfig @@ -2,6 +2,7 @@ config PLATFORM_OPENPITON_FPGA bool + select IPI_MSWI select SERIAL_UART8250 select TIMER_MTIMER default y diff --git a/platform/generic/configs/defconfig b/platform/generic/configs/defconfig index 9b96a4f1..e218c325 100644 --- a/platform/generic/configs/defconfig +++ b/platform/generic/configs/defconfig @@ -1,3 +1,5 @@ +CONFIG_FDT_IPI=y +CONFIG_FDT_IPI_MSWI=y CONFIG_FDT_RESET=y CONFIG_FDT_RESET_GPIO=y CONFIG_FDT_RESET_HTIF=y diff --git a/platform/kendryte/k210/Kconfig b/platform/kendryte/k210/Kconfig index 90db649d..685a5cdd 100644 --- a/platform/kendryte/k210/Kconfig +++ b/platform/kendryte/k210/Kconfig @@ -2,6 +2,7 @@ config PLATFORM_KENDRYTE_K210 bool + select IPI_MSWI select SERIAL_SIFIVE select TIMER_MTIMER default y diff --git a/platform/nuclei/ux600/Kconfig b/platform/nuclei/ux600/Kconfig index dec26542..cd995a30 100644 --- a/platform/nuclei/ux600/Kconfig +++ b/platform/nuclei/ux600/Kconfig @@ -2,6 +2,7 @@ config PLATFORM_NUCLEI_UX600 bool + select IPI_MSWI select SERIAL_SIFIVE select TIMER_MTIMER default y diff --git a/platform/template/Kconfig b/platform/template/Kconfig index 96d4b9a6..4d9646d4 100644 --- a/platform/template/Kconfig +++ b/platform/template/Kconfig @@ -9,6 +9,7 @@ # config PLATFORM_TEMPLATE bool + select IPI_MSWI select SERIAL_UART8250 select TIMER_MTIMER default y