# Copyright (c) 2023 Google LLC.
# SPDX-License-Identifier: Apache-2.0

DT_ADSP_RESET_MEM := $(dt_nodelabel_path,adsp_reset)
DT_ADSP_DATA_MEM := $(dt_nodelabel_path,adsp_data)
DT_ADSP_TEXT_MEM := $(dt_nodelabel_path,adsp_text)

if BOARD_NXP_ADSP_RT595

config RT595_ADSP_STACK_SIZE
	hex "Boot time stack size"
	default 0x1000
	help
	  Stack space is reserved at the end of the RT595_ADSP_DATA_MEM
	  region, starting at RT595_ADSP_DATA_MEM_ADDR - RT595_ADSP_STACK_SIZE

config RT595_ADSP_RESET_MEM_ADDR
	hex
	default $(dt_node_reg_addr_hex,$(DT_ADSP_RESET_MEM))

config RT595_ADSP_RESET_MEM_SIZE
	hex
	default $(dt_node_reg_size_hex,$(DT_ADSP_RESET_MEM))

config RT595_ADSP_DATA_MEM_ADDR
	hex
	default $(dt_node_reg_addr_hex,$(DT_ADSP_DATA_MEM))

config RT595_ADSP_DATA_MEM_SIZE
	hex
	default $(dt_node_reg_size_hex,$(DT_ADSP_DATA_MEM))

config RT595_ADSP_TEXT_MEM_ADDR
	hex
	default $(dt_node_reg_addr_hex,$(DT_ADSP_TEXT_MEM))

config RT595_ADSP_TEXT_MEM_SIZE
	hex
	default $(dt_node_reg_size_hex,$(DT_ADSP_TEXT_MEM))

endif # BOARD_NXP_ADSP_RT595
