if MIPS_GENERIC

config LEGACY_BOARDS
	bool
	help
	  Select this from your board if the board must use a legacy, non-UHI,
	  boot protocol. This will cause the kernel to scan through the list of
	  supported machines calling their detect functions in turn if the
	  kernel is booted without being provided with an FDT via the UHI
	  boot protocol.

config YAMON_DT_SHIM
	bool
	help
	  Select this from your board if the board uses the YAMON bootloader
	  and you wish to include code which helps translate various
	  YAMON-provided environment variables into a device tree properties.

comment "Legacy (non-UHI/non-FIT) Boards"

config LEGACY_BOARD_SEAD3
	bool "Support MIPS SEAD-3 boards"
	select LEGACY_BOARDS
	select YAMON_DT_SHIM
	help
	  Enable this to include support for booting on MIPS SEAD-3 FPGA-based
	  development boards, which boot using a legacy boot protocol.

comment "FIT/UHI Boards"

config FIT_IMAGE_FDT_BOSTON
	bool "Include FDT for MIPS Boston boards"
	help
	  Enable this to include the FDT for the MIPS Boston development board
	  from Imagination Technologies in the FIT kernel image. You should
	  enable this if you wish to boot on a MIPS Boston board, as it is
	  expected by the bootloader.

config FIT_IMAGE_FDT_NI169445
	bool "Include FDT for NI 169445"
	help
	  Enable this to include the FDT for the 169445 platform from
	  National Instruments in the FIT kernel image.

endif
