if ARCH_UNIPHIER

config SYS_CONFIG_NAME
	default "uniphier"

config ARCH_UNIPHIER_32BIT
	bool
	select CPU_V7
	select CPU_V7_HAS_NONSEC
	select ARMV7_NONSEC

config ARCH_UNIPHIER_64BIT
	bool
	select ARM64
	select SPL_SEPARATE_BSS
	select ARMV8_MULTIENTRY
	select ARMV8_SPIN_TABLE

choice
        prompt "UniPhier SoC select"
        default ARCH_UNIPHIER_PRO4

config ARCH_UNIPHIER_SLD3
	bool "UniPhier PH1-sLD3 SoC"
	select ARCH_UNIPHIER_32BIT

config ARCH_UNIPHIER_LD4_SLD8
	bool "UniPhier PH1-LD4/PH1-sLD8 SoC"
	select ARCH_UNIPHIER_32BIT

config ARCH_UNIPHIER_PRO4
	bool "UniPhier PH1-Pro4 SoC"
	select ARCH_UNIPHIER_32BIT

config ARCH_UNIPHIER_PRO5_PXS2_LD6B
	bool "UniPhier PH1-Pro5/ProXstream2/PH1-LD6b SoC"
	select ARCH_UNIPHIER_32BIT

config ARCH_UNIPHIER_LD11
	bool "UniPhier PH1-LD11 SoC"
	select ARCH_UNIPHIER_64BIT

config ARCH_UNIPHIER_LD20
	bool "UniPhier PH1-LD20 SoC"
	select ARCH_UNIPHIER_64BIT
	select OF_BOARD_SETUP

endchoice

config ARCH_UNIPHIER_LD4
	bool "Enable UniPhier PH1-LD4 SoC support"
	depends on ARCH_UNIPHIER_LD4_SLD8
	default y

config ARCH_UNIPHIER_SLD8
	bool "Enable UniPhier PH1-sLD8 SoC support"
	depends on ARCH_UNIPHIER_LD4_SLD8
	default y

config ARCH_UNIPHIER_PRO5
	bool "Enable UniPhier PH1-Pro5 SoC support"
	depends on ARCH_UNIPHIER_PRO5_PXS2_LD6B
	default y

config ARCH_UNIPHIER_PXS2
	bool "Enable UniPhier ProXstream2 SoC support"
	depends on ARCH_UNIPHIER_PRO5_PXS2_LD6B
	default y

config ARCH_UNIPHIER_LD6B
	bool "Enable UniPhier PH1-LD6b SoC support"
	depends on ARCH_UNIPHIER_PRO5_PXS2_LD6B
	default y

config CACHE_UNIPHIER
	bool "Enable the UniPhier L2 cache controller"
	depends on ARCH_UNIPHIER_32BIT
	default y
	help
	  This option allows to use the UniPhier System Cache as L2 cache.

config MICRO_SUPPORT_CARD
	bool "Use Micro Support Card"
	help
	  This option provides support for the expansion board, available
	  on some UniPhier reference boards.

	  Say Y to use the on-board UART, Ether, LED devices.

config CMD_PINMON
	bool "Enable boot mode pins monitor command"
	default y
	help
	  The command "pinmon" shows the state of the boot mode pins.
	  The boot mode pins are latched when the system reset is deasserted
	  and determine which device the system should load a boot image from.

config CMD_DDRPHY_DUMP
	bool "Enable dump command of DDR PHY parameters"
	depends on ARCH_UNIPHIER_LD4 || ARCH_UNIPHIER_PRO4 || ARCH_UNIPHIER_SLD8
	default y
	help
	  The command "ddrphy" shows the resulting parameters of DDR PHY
	  training; it is useful for the evaluation of DDR PHY training.

config CMD_DDRMPHY_DUMP
	bool "Enable dump command of DDR Multi PHY parameters"
	depends on ARCH_UNIPHIER_PXS2 || ARCH_UNIPHIER_LD6B
	default y
	help
	  The command "ddrmphy" shows the resulting parameters of DDR Multi PHY
	  training; it is useful for the evaluation of DDR Multi PHY training.

endif
