# Copyright 2021 HNU-ESNL
# Copyright 2022 openEuler SIG-Zephyr
# SPDX-License-Identifier: Apache-2.0

# Platform Configuration
CONFIG_ARM_ARCH_TIMER=y

# Serial Drivers
CONFIG_SERIAL=y
CONFIG_UART_NS16550=y
CONFIG_UART_INTERRUPT_DRIVEN=y

# Enable console
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y

# ARMv8 NS world with cache management
CONFIG_ARMV8_A_NS=y
CONFIG_CACHE_MANAGEMENT=y

# Clock support
CONFIG_CLOCK_CONTROL=y
CONFIG_TICKLESS_KERNEL=y
