if ARCH_UNIPHIER

config SPL_LIBCOMMON_SUPPORT
	default y

config SYS_CONFIG_NAME
	default "uniphier"

config ARCH_UNIPHIER_32BIT
	bool
	select CPU_V7
	select CPU_V7_HAS_NONSEC
	select ARMV7_NONSEC
	select ARCH_SUPPORT_PSCI

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
	select SYS_CACHE_SHIFT_7
	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
