# LPCXpresso54114 board

# Copyright (c) 2017, NXP
# SPDX-License-Identifier: Apache-2.0

if BOARD_LPCXPRESSO54114_M4 || BOARD_LPCXPRESSO54114_M0

config BOARD
	default "lpcxpresso54114_m4" if BOARD_LPCXPRESSO54114_M4
	default "lpcxpresso54114_m0" if BOARD_LPCXPRESSO54114_M0

# Place size restrictions on first image if dual core is enabled
if SECOND_CORE_MCUX && BOARD_LPCXPRESSO54114_M4

# Workaround for not being able to have commas in macro arguments
DT_CHOSEN_Z_CODE_PARTITION := zephyr,code-partition

config FLASH_LOAD_SIZE
	default $(dt_chosen_reg_size_hex,$(DT_CHOSEN_Z_CODE_PARTITION))

endif # SECOND_CORE_MCUX && BOARD_LPCXPRESSO54114_M4

endif # BOARD_LPCXPRESSO54114_M4 || BOARD_LPCXPRESSO54114_M0
