##
## This file is part of the coreboot project.
##
## Copyright (C) 2013-2014 Sage Electronic Engineering, LLC.
## Copyright (C) 2014 Intel Corporation
##
## 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.
##

chip soc/intel/fsp_baytrail

	#### ACPI Register Settings ####
	register "fadt_pm_profile"         = "PM_UNSPECIFIED"
	register "fadt_boot_arch"          = "ACPI_FADT_LEGACY_FREE"

	#### FSP register settings ####
	register "PcdSataMode"             = "SATA_MODE_AHCI"
	register "PcdMrcInitSPDAddr1"      = "SPD_ADDR_DEFAULT"
	register "PcdMrcInitSPDAddr2"      = "SPD_ADDR_DEFAULT"
	register "PcdMrcInitMmioSize"      = "MMIO_SIZE_DEFAULT"
	register "PcdeMMCBootMode"         = "EMMC_FOLLOWS_DEVICETREE"
	register "PcdIgdDvmt50PreAlloc"    = "IGD_MEMSIZE_DEFAULT"
	register "PcdApertureSize"         = "APERTURE_SIZE_DEFAULT"
	register "PcdGttSize"              = "GTT_SIZE_DEFAULT"
	register "PcdLpssSioEnablePciMode" = "LPSS_PCI_MODE_DEFAULT"
	register "AzaliaAutoEnable"        = "AZALIA_FOLLOWS_DEVICETREE"
	register "LpeAcpiModeEnable"       = "LPE_ACPI_MODE_DISABLED"
	register "IgdRenderStandby"        = "IGD_RENDER_STANDBY_ENABLE"
	register "EnableMemoryDown"        = "MEMORY_DOWN_ENABLE"
	register "DRAMSpeed"               = "DRAM_SPEED_1066MHZ"
	register "DRAMType"                = "DRAM_TYPE_DDR3L"
	register "DIMM0Enable"             = "DIMM0_ENABLE"
	register "DIMM1Enable"             = "DIMM1_DISABLE"
	register "DIMMDWidth"              = "DIMM_DWIDTH_X16"
	register "DIMMDensity"             = "DIMM_DENSITY_4G_BIT"
	register "DIMMBusWidth"            = "DIMM_BUS_WIDTH_64BIT"
	register "DIMMSides"               = "DIMM_SIDES_1RANK"
	register "DIMMtCL"                 = "8"
	register "DIMMtRPtRCD"             = "8"
	register "DIMMtWR"                 = "8"
	register "DIMMtWTR"                = "4"
	register "DIMMtRRD"                = "6"
	register "DIMMtRTP"                = "4"
	register "DIMMtFAW"                = "27"

	device cpu_cluster 0 on
		device lapic 0 on end
	end

	device domain 0 on
		device pci 00.0 on end	# 8086 0F00 - SoC router		-
		device pci 02.0 off end	# 8086 0F31 - GFX			-
		device pci 03.0 off end # 8086 0F38 - MIPI			-

		device pci 10.0 off end	# 8086 0F14 - EMMC Port			-
		device pci 11.0 off end	# 8086 0F15 - SDIO Port			-
		device pci 12.0 on end	# 8086 0F16 - SD Port			MicroSD on SD3
		device pci 13.0 off end	# 8086 0F23 - SATA AHCI			-
		device pci 14.0 off end	# 8086 0F35 - USB XHCI 			-
		device pci 15.0 off end	# 8086 0F28 - LP Engine Audio		-
		device pci 17.0 off end	# 8086 0F50 - MMC Port			-
		device pci 18.0 on end	# 8086 0F40 - SIO - DMA			-
		device pci 18.1 on end	# 8086 0F41 -   I2C Port 1 (0)		-
		device pci 18.2 on end	# 8086 0F42 -   I2C Port 2 (1)		-
		device pci 18.3 on end	# 8086 0F43 -   I2C Port 3 (2)		-
		device pci 18.4 on end	# 8086 0F44 -   I2C Port 4 (3)		-
		device pci 18.5 on end	# 8086 0F45 -   I2C Port 5 (4)		-
		device pci 18.6 on end	# 8086 0F46 -   I2C Port 6 (5)		EEPROM
		device pci 18.7 off end	# 8086 0F47 -   I2C Port 7 (6)		-
		device pci 1a.0 off end	# 8086 0F18 - TXE			-
		device pci 1b.0 off end	# 8086 0F04 - HD Audio			-
		device pci 1c.0 on end	# 8086 0F48 - PCIe Port 1 (0)		-
		device pci 1c.1 off end	# 8086 0F4A - PCIe Port 2 (1)		-
		device pci 1c.2 on end	# 8086 0F4C - PCIe Port 3 (2)		ETHERNET
		device pci 1c.3 on end	# 8086 0F4E - PCIe Port 4 (3)		CAN
		device pci 1d.0 on end	# 8086 0F34 - USB EHCI - Enabling EHCI  -
		device pci 1e.0 on end	# 8086 0F06 - SIO - DMA			-
		device pci 1e.1 on end	# 8086 0F08 -   PWM 1			-
		device pci 1e.2 on end	# 8086 0F09 -   PWM 2			-
		device pci 1e.3 on end	# 8086 0F0A -   HSUART 1		Alternate uart
		device pci 1e.4 off end	# 8086 0F0C -   HSUART 2		-
		device pci 1e.5 off end	# 8086 0F0E -   SPI			-
		device pci 1f.0 on end	# 8086 0F1C - LPC bridge		No connector
		device pci 1f.3 on end	# 8086 0F12 - SMBus 0			SPC
	end
end
