config SOC_NVIDIA_TEGRA124
	depends on ARCH_ARM
	bool
	default n
	select HAVE_UART_MEMORY_MAPPED
	select HAVE_UART_SPECIAL
	select BOOTBLOCK_CONSOLE
	select EARLY_CONSOLE
	select ARM_BOOTBLOCK_CUSTOM
	select ARM_BOOTBLOCK_ARMV4
	select ARM_ROMSTAGE_ARMV7
	select ARM_RAMSTAGE_ARMV7

if SOC_NVIDIA_TEGRA124

config BOOTBLOCK_CPU_INIT
	string
	default "soc/nvidia/tegra124/bootblock.c"
	help
	  CPU/SoC-specific bootblock code. This is useful if the
	  bootblock must load microcode or copy data from ROM before
	  searching for the bootblock.

# ROM image layout.
#
# 0x00000 Combined bootblock and BCT blob
# 0x18000 Master CBFS header.
# 0x18080 Free for CBFS data.

config BOOTBLOCK_ROM_OFFSET
	hex
	default 0x0

config CBFS_HEADER_ROM_OFFSET
	hex "offset of master CBFS header in ROM"
	default 0x18000

config CBFS_ROM_OFFSET
	hex "offset of CBFS data in ROM"
	default 0x18080

config SYS_SDRAM_BASE
	hex
	default 0x80000000

config BOOTBLOCK_BASE
	hex
	default 0x80000000

config STACK_TOP
	hex
	default 0x80400000

config STACK_BOTTOM
	hex
	default 0x803f8000

config STACK_SIZE
	hex
	default 0x800

choice CONSOLE_SERIAL_TEGRA124_UART_CHOICES
	prompt "Serial Console UART"
	default CONSOLE_SERIAL_UARTA
	depends on CONSOLE_SERIAL_UART

config CONSOLE_SERIAL_UARTA
	bool "UARTA"
	help
	  Serial console on UART A.

config CONSOLE_SERIAL_UARTB
	bool "UARTB"
	help
	  Serial console on UART B.

config CONSOLE_SERIAL_UARTC
	bool "UARTC"
	help
	  Serial console on UART C.

config CONSOLE_SERIAL_UARTD
	bool "UARTD"
	help
	  Serial console on UART D.

config CONSOLE_SERIAL_UARTE
	bool "UARTE"
	help
	  Serial console on UART E.

endchoice

config CONSOLE_SERIAL_UART_ADDRESS
	hex
	depends on CONSOLE_SERIAL_UART
	default 0x70006000 if CONSOLE_SERIAL_UARTA
	default 0x70006040 if CONSOLE_SERIAL_UARTB
	default 0x70006200 if CONSOLE_SERIAL_UARTC
	default 0x70006300 if CONSOLE_SERIAL_UARTD
	default 0x70006400 if CONSOLE_SERIAL_UARTE
	help
	  Map the UART names to the respective MMIO addres.

endif
