# ESP32 board configuration

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

if SOC_ESP32

if BOOTLOADER_MCUBOOT
	config HAS_FLASH_LOAD_OFFSET
		default y

	config MCUBOOT_GENERATE_UNSIGNED_IMAGE
		default y

	config MCUBOOT_GENERATE_CONFIRMED_IMAGE
		default y

	config ROM_START_OFFSET
		default 0x20
endif

config SOC
	default "esp32"

config SOC_TOOLCHAIN_NAME
	string
	default "espressif_esp32"

if SMP

config SCHED_IPI_SUPPORTED
	default y

config SCHED_CPU_MASK
	default y

config MP_MAX_NUM_CPUS
	default 2

endif

config MINIMAL_LIBC_OPTIMIZE_STRING_FOR_SIZE
	default n

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default $(dt_node_int_prop_int,/cpus/cpu@0,clock-frequency)

config XTENSA_CCOUNT_HZ
	default SYS_CLOCK_HW_CYCLES_PER_SEC

if GDBSTUB

# ESP32 GDB expects 420 bytes G-packet.
# So double for hexadecimal digits.
config GDBSTUB_BUF_SZ
	default 840 if GDBSTUB

endif

endif
