#
# Copyright 2022 NXP
#
# SPDX-License-Identifier: Apache-2.0
#

zephyr_library()
zephyr_library_sources(board.c)

if(CONFIG_NXP_IMX_RT5XX_BOOT_HEADER)
  if(NOT DEFINED CONFIG_BOARD_MIMXRT595_EVK)
    message(WARNING "It appears you are using the board definition for "
     "the MIMXRT595-EVK, but targeting a custom board. You may need to "
     "update your flash configuration block data")
  endif()
  # Include flash configuration block for R595 EVK from NXP's HAL.
  # This configuration block may need modification if another flash chip is
  # used on your custom board. See NXP AN13304 for more information.
  zephyr_compile_definitions(BOOT_HEADER_ENABLE=1)
  zephyr_compile_definitions(BOARD_FLASH_SIZE=CONFIG_FLASH_SIZE*1024)
  set(RT595_BOARD_DIR
    "${ZEPHYR_HAL_NXP_MODULE_DIR}/mcux/mcux-sdk/boards/evkmimxrt595")
  zephyr_library_sources(${RT595_BOARD_DIR}/flash_config/flash_config.c)
  zephyr_library_include_directories(${RT595_BOARD_DIR}/flash_config)
endif()
