# SPDX-License-Identifier: GPL-2.0
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
