# Copyright (c) 2023-2024 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

# The Zephyr build from this defconfig is expected to boot from
# Intel Arm Trusted Firmware (ATF).
# Boot Flow is: ATF BL21 -> ATF BL31 -> Zephyr

# Compiler Options
CONFIG_FORTIFY_SOURCE_RUN_TIME=y

# Arm Features
CONFIG_ARM_ARCH_TIMER=y
CONFIG_CACHE_MANAGEMENT=y
CONFIG_ARMV8_A_NS=y

# Serial Drivers
CONFIG_SERIAL=y
CONFIG_UART_INTERRUPT_DRIVEN=y
CONFIG_UART_NS16550_ACCESS_WORD_ONLY=y

# Enable Console
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y

# Enable Clock Manager
CONFIG_CLOCK_CONTROL=y

# For Misc Register Map
CONFIG_SYSCON=y

# Reset Manager
CONFIG_RESET=y

# PSCI support Enable
CONFIG_PM_CPU_OPS=y
CONFIG_PM_CPU_OPS_PSCI=y

# Enable SMP support
CONFIG_SMP=y
CONFIG_MP_MAX_NUM_CPUS=4
