# Copyright 2021-2022, 2024 NXP
# SPDX-License-Identifier: Apache-2.0

config BOARD_IMX8MP_EVK
	select SOC_MIMX8ML8_A53 if BOARD_IMX8MP_EVK_MIMX8ML8_A53 || BOARD_IMX8MP_EVK_MIMX8ML8_A53_SMP
	select SOC_MIMX8MP_ADSP if BOARD_IMX8MP_EVK_MIMX8ML8_ADSP
	select SOC_MIMX8MP_M7 if BOARD_IMX8MP_EVK_MIMX8ML8_M7 || BOARD_IMX8MP_EVK_MIMX8ML8_M7_DDR
	select SOC_PART_NUMBER_MIMX8ML8DVNLZ
