# Copyright (c) 2022 Antmicro <www.antmicro.com>
# SPDX-License-Identifier: Apache-2.0

CONFIG_ARM_MPU=n

# System clock
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=61440000
CONFIG_CORTEX_M_SYSTICK=y

# Console
CONFIG_SERIAL=y
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y

# EOS S3 Configuration Manager copies software from external flash to MCU
# memory using preconfigured DMA and execute it there.
# Thus we do not use flash directly.

CONFIG_XIP=n
CONFIG_FLASH=n
CONFIG_FLASH_SIZE=0
CONFIG_FLASH_BASE_ADDRESS=0x0

# GPIO
CONFIG_GPIO=y
