if ARCH_MESON

config MESON64_COMMON
	bool
	select ARM64
	select CLK
	select DM
	select DM_SERIAL
	select SYSCON
	select REGMAP
	select PWRSEQ
	select MMC_PWRSEQ
	select BOARD_LATE_INIT
	select MESON_SM
	imply CMD_DM

config MESON_GX
	bool
	select MESON64_COMMON

choice
	prompt "Platform select"
	default MESON_GXBB

config MESON_GXBB
	bool "GXBB"
	select MESON_GX
	imply OF_UPSTREAM
	help
	  Select this if your SoC is an S905

config MESON_GXL
	bool "GXL"
	select MESON_GX
	imply OF_UPSTREAM
	help
	  Select this if your SoC is an S905X/D or S805X

config MESON_GXM
	bool "GXM"
	select MESON_GX
	imply OF_UPSTREAM
	help
	  Select this if your SoC is an S912

config MESON_AXG
	bool "AXG"
	select MESON64_COMMON
	imply OF_UPSTREAM
	help
	  Select this if your SoC is an A113X/D

config MESON_G12A
	bool "G12A"
	select MESON64_COMMON
	imply OF_UPSTREAM
	help
	  Select this if your SoC is an S905X/D2

config MESON_A1
	bool "A1"
	select MESON64_COMMON
	help
	  Select this if your SoC is an A113L

endchoice

config SYS_SOC
	default "meson"

config SYS_MALLOC_F_LEN
	default 0x1000

config SYS_VENDOR
	string "Vendor name"
	default "amlogic"
	help
	  This option contains information about board name.
	  Based on this option board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD> will
	  be used.

config SYS_BOARD
	string "Board name"
	default "ad401" if MESON_A1
	default "p200" if MESON_GXBB
	default "p212" if MESON_GXL
	default "q200" if MESON_GXM
	default "s400" if MESON_AXG
	default "u200" if MESON_G12A
	default ""
	help
	  This option contains information about board name.
	  Based on this option board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD> will
	  be used.

endif
