diff --git a/bsp/qemu-vexpress-gemini/.config b/bsp/qemu-vexpress-gemini/.config index 5f6c9aae9e..956d7e5c4d 100644 --- a/bsp/qemu-vexpress-gemini/.config +++ b/bsp/qemu-vexpress-gemini/.config @@ -82,7 +82,9 @@ CONFIG_RT_VER_NUM=0x40100 CONFIG_ARCH_ARM=y CONFIG_RT_USING_CPU_FFS=y CONFIG_ARCH_ARM_CORTEX_A=y -CONFIG_RT_NO_USING_GIC=y +# CONFIG_RT_SMP_AUTO_BOOT is not set +CONFIG_RT_USING_GIC_V2=y +# CONFIG_RT_USING_GIC_V3 is not set CONFIG_ARCH_ARM_CORTEX_A9=y # diff --git a/bsp/qemu-vexpress-gemini/Kconfig b/bsp/qemu-vexpress-gemini/Kconfig index e86e369747..22c589f089 100644 --- a/bsp/qemu-vexpress-gemini/Kconfig +++ b/bsp/qemu-vexpress-gemini/Kconfig @@ -23,6 +23,7 @@ config SOC_VEXPRESS_GEMINI select ARCH_ARM_CORTEX_A9 select RT_USING_COMPONENTS_INIT # select RT_USING_USER_MAIN + select RT_USING_GIC_V2 default y source "$BSP_DIR/drivers/Kconfig" diff --git a/bsp/qemu-vexpress-gemini/cpu/cpu.c b/bsp/qemu-vexpress-gemini/cpu/cpu.c index 5f82671c1b..8eed86b02e 100644 --- a/bsp/qemu-vexpress-gemini/cpu/cpu.c +++ b/bsp/qemu-vexpress-gemini/cpu/cpu.c @@ -30,4 +30,21 @@ void rt_hw_cpu_shutdown() } } +#ifdef RT_USING_CPU_FFS +/** + * This function finds the first bit set (beginning with the least significant bit) + * in value and return the index of that bit. + * + * Bits are numbered starting at 1 (the least significant bit). A return value of + * zero from any of these functions means that the argument was zero. + * + * @return return the index of the first bit set. If value is 0, then this function + * shall return 0. + */ +int __rt_ffs(int value) +{ + return __builtin_ffs(value); +} +#endif + /*@}*/ diff --git a/bsp/qemu-vexpress-gemini/rtconfig.h b/bsp/qemu-vexpress-gemini/rtconfig.h index e0054ff8b7..c598e2adeb 100644 --- a/bsp/qemu-vexpress-gemini/rtconfig.h +++ b/bsp/qemu-vexpress-gemini/rtconfig.h @@ -51,7 +51,7 @@ #define ARCH_ARM #define RT_USING_CPU_FFS #define ARCH_ARM_CORTEX_A -#define RT_NO_USING_GIC +#define RT_USING_GIC_V2 #define ARCH_ARM_CORTEX_A9 /* RT-Thread Components */ diff --git a/bsp/stm32/stm32u575-st-nucleo/.config b/bsp/stm32/stm32u575-st-nucleo/.config index d063825c40..4a7685d3ba 100644 --- a/bsp/stm32/stm32u575-st-nucleo/.config +++ b/bsp/stm32/stm32u575-st-nucleo/.config @@ -129,7 +129,7 @@ CONFIG_RT_PIPE_BUFSZ=512 CONFIG_RT_USING_SERIAL=y CONFIG_RT_USING_SERIAL_V1=y # CONFIG_RT_USING_SERIAL_V2 is not set -CONFIG_RT_SERIAL_USING_DMA=y +# CONFIG_RT_SERIAL_USING_DMA is not set CONFIG_RT_SERIAL_RB_BUFSZ=64 # CONFIG_RT_USING_CAN is not set # CONFIG_RT_USING_HWTIMER is not set diff --git a/bsp/stm32/stm32u575-st-nucleo/rtconfig.h b/bsp/stm32/stm32u575-st-nucleo/rtconfig.h index aadfd2c30b..2d5bb0e0ed 100644 --- a/bsp/stm32/stm32u575-st-nucleo/rtconfig.h +++ b/bsp/stm32/stm32u575-st-nucleo/rtconfig.h @@ -86,7 +86,6 @@ #define RT_PIPE_BUFSZ 512 #define RT_USING_SERIAL #define RT_USING_SERIAL_V1 -#define RT_SERIAL_USING_DMA #define RT_SERIAL_RB_BUFSZ 64 #define RT_USING_PIN