if ARCH_MESON

config MESON_GXBB
	bool "Support Meson GXBaby"
	select ARM64
	select DM
	select DM_SERIAL
	help
	  The Amlogic Meson GXBaby (S905) is an ARM SoC with a
	  quad-core Cortex-A53 CPU and a Mali-450 GPU.

config MESON_GXL
	bool "Support Meson GXL"
	select ARM64
	select DM
	select DM_SERIAL
	help
	  The Amlogic Meson GXL (S905X and S905X) is an ARM SoC with a
	  quad-core Cortex-A53 CPU and a Mali-450 GPU.

config MESON_G12A
	bool "Support Amlogic Meson Series SoC"
	select ARM64
	select DM
	select DM_SERIAL
	help
		Support Amlogic Meson G12A (S905D2/S905X2/S905Y2 etc..)

config MESON_G12B
	bool "Support Amlogic Meson G12B Series SoC"
	select ARM64
	select DM
	select DM_SERIAL
	help
		Support Amlogic Meson G12B (A311D etc..)

config AML_BL33_COMPRESS_ENABLE
	bool "Amlogic U-boot compress"
	help
		Support U-boot compress function

config AML_SECURE_BOOT_V3
	bool "Amlogic SecureBoot V3"
	help
		"Support Amlogic SecureBoot V3 version"

config FIP_IMG_SUPPORT
	bool "Amlogic FIP IMG format file"
	help
		"Support Amlogic FIP IMG format"

config AML_SECURE_UBOOT
	bool "Amlogic SecureBoot function"
	help
		"Support Amlogic SecureBoot function"

config AML_CRYPTO_UBOOT
	bool "Encrypt Amlogic U-boot"
	help
		"Support U-boot encrypt function"

config AML_TSENSOR
	bool "Amlogic Temp Sensor"
	help
		"Support Amlogic Thermal Sensor"

config AML_TSENSOR_COOL
	bool "Amlogic HIGH TEMP COOL"
	depends on AML_TSENSOR
	help
		"Support Amlogic High Temperature Cool"

config AML_OSCRING
	bool "Amlogic OSCRING MSR"
	help
		"Support Amlogic chip oscring msr"

config AML_HW_SHA2
	bool "Amlogic Hardware SHA2 Accelerator"
	default y if MESON_G12B
	help
		"Support Amlogic Hardware SHA2 Accelerator"

if MESON_GXBB

config TARGET_ODROID_C2
	bool "ODROID-C2"
	help
	  ODROID-C2 is a single board computer based on Meson GXBaby
	  with 2 GiB of RAM, Gigabit Ethernet, HDMI, 4 USB, micro-SD
	  slot, eMMC, IR receiver and a 40-pin GPIO header.

endif

if MESON_GXL

config SYS_SOC
	default "gxl"

config TARGET_P212
	bool "P212"
	help
	  P212 is a reference dessign board based on Meson GXL S905X SoC
	  with 2 GiB of RAM, Ethernet, HDMI, 2 USB, micro-SD slot,
	  eMMC, IR receiver, CVBS+Audio jack and a SDIO WiFi module.

config TARGET_LIBRETECH_CC
	bool "LIBRETECH-CC"
	help
	  LibreTech CC is a single board computer based on Meson GXL
	  with 2 GiB of RAM, Ethernet, HDMI, 4 USB, micro-SD slot,
	  eMMC, IR receiver and a 40-pin GPIO header.

config TARGET_KHADAS_VIM
	bool "KHADAS-VIM"
	help
	  Khadas VIM is a single board computer based on Meson GXL
	  with 2 GiB of RAM, Ethernet, HDMI, 4 USB, micro-SD slot,
	  eMMC, IR receiver and a 40-pin GPIO header.

endif

# G12A series boards

if MESON_G12A

config SYS_SOC
	default "g12a"

config TARGET_G12A_U200_V1
	bool "G12A_U200_V1"

config TARGET_G12A_U211_V1
	bool "G12A_U211_V1"

endif

if MESON_G12B

config SYS_SOC
	default "g12b"

config TARGET_G12B_W400_V1
	bool "G12B_W400_V1"

config TARGET_G12B_NEWMAN_PX
       bool "G12B_NEWMAN_PX"

config TARGET_G12B_NEWMAN_BX
       bool "G12B_NEWMAN_BX"

config TARGET_G12B_LUCY_PX
       bool "G12B_LUCY_PX"

config TARGET_G12B_PUDDY_PX
       bool "G12B_PUDDY_PX"

endif

config SYS_MALLOC_F_LEN
	default 0x1000

source "board/amlogic/odroid-c2/Kconfig"

source "board/amlogic/p212/Kconfig"

source "board/amlogic/libretech-cc/Kconfig"

source "board/amlogic/khadas-vim/Kconfig"

source "board/amlogic/g12a_u200_v1/Kconfig"

source "board/amlogic/g12b_w400_v1/Kconfig"
source "board/amlogic/g12b_newman_px/Kconfig"
source "board/amlogic/g12b_newman_bx/Kconfig"
source "board/amlogic/g12b_lucy_px/Kconfig"

source "board/amlogic/g12b_puddy_px/Kconfig"

endif
