##
## This file is part of the coreboot project.
##
## Copyright (C) 2010 Marc Bertens <mbertens@xs4all.nl>
##
## 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.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
##

config BOARD_NOKIA_IP530
	bool "IP530"
	select ARCH_X86
	select CPU_INTEL_SOCKET_PGA370
	select NORTHBRIDGE_INTEL_I440BX
	select SOUTHBRIDGE_INTEL_I82371EB
	select SUPERIO_SMSC_SMSCSUPERIO
	select SOUTHBRIDGE_TI_PCI1X2X
	select DRIVERS_DEC_21143
	select BOARD_ROMSIZE_KB_256
	select ROMCC
	select PIRQ_ROUTE
	select HAVE_PIRQ_TABLE
	select UDELAY_TSC

config MAINBOARD_DIR
	string
	default nokia/ip530
	depends on BOARD_NOKIA_IP530

config MAINBOARD_PART_NUMBER
	string
	default "IP530"
	depends on BOARD_NOKIA_IP530

config IRQ_SLOT_COUNT
	int
	default 22
	depends on BOARD_NOKIA_IP530

## Configuration items for the ethernet adaptors
config DEC21143_CACHE_LINE_SIZE
	hex
	default 0x00000000
	depends on BOARD_NOKIA_IP530

config DEC21143_EXPANSION_ROM_BASE_ADDRESS
	hex
	default 0x00000000
	depends on BOARD_NOKIA_IP530

config DEC21143_COMMAND_AND_STATUS_CONFIGURATION
	hex
	default 0x02800107
	depends on BOARD_NOKIA_IP530

## Configuration for the PCMCIA-Cardbus controller.
config TI_PCMCIA_CARDBUS_CMDR
	hex
	default 0x0107
	depends on BOARD_NOKIA_IP530

config TI_PCMCIA_CARDBUS_CLSR
	hex
	default 0x00
	depends on BOARD_NOKIA_IP530

config TI_PCMCIA_CARDBUS_CLTR
	hex
	default 0x40
	depends on BOARD_NOKIA_IP530

config TI_PCMCIA_CARDBUS_BCR
	hex
	default 0x07C0
	depends on BOARD_NOKIA_IP530

config TI_PCMCIA_CARDBUS_SCR
	hex
	default 0x08449060
	depends on BOARD_NOKIA_IP530

config TI_PCMCIA_CARDBUS_MRR
	hex
	default 0x00007522
	depends on BOARD_NOKIA_IP530
