if BOARD_AOPEN_DXPLPLUSU

config BOARD_SPECIFIC_OPTIONS # dummy
	def_bool y
	select ARCH_X86
	select CPU_INTEL_SOCKET_MPGA604
	select NORTHBRIDGE_INTEL_E7505
	select SOUTHBRIDGE_INTEL_I82870
	select SOUTHBRIDGE_INTEL_I82801DX
	select SUPERIO_SMSC_LPC47M10X
#	select HAVE_PIRQ_TABLE
#	select PIRQ_ROUTE
	select UDELAY_TSC
	select HAVE_ACPI_TABLES
	select BOARD_ROMSIZE_KB_512
	select HW_SCRUBBER

config MAINBOARD_DIR
	string
	default aopen/dxplplusu

config MAINBOARD_PART_NUMBER
	string
	default "DXPL Plus-U"

config IRQ_SLOT_COUNT
	int
	default 12

config MAX_CPUS
	int
	default 4

config MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID
	hex
	default 0x0

config MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID
	hex
	default 0x0

endif # BOARD_AOPEN_DXPLPLUSU
