#
# This file is part of the coreboot project.
#
# Copyright (C) 2014 Imagination Technologies
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; version 2 of
# the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#

config ARCH_MIPS
	bool
	default n

config ARCH_BOOTBLOCK_MIPS
	bool
	default n
	select ARCH_MIPS
	select BOOTBLOCK_CUSTOM

config ARCH_VERSTAGE_MIPS
	bool
	default n

config ARCH_ROMSTAGE_MIPS
	bool
	default n

config ARCH_RAMSTAGE_MIPS
	bool
	default n
