chip northbridge/intel/sandybridge

	# Enable DisplayPort 1 Hotplug with 6ms pulse
	register "gpu_dp_d_hotplug" = "0x06"

	# Enable DisplayPort 0 Hotplug with 6ms pulse
	register "gpu_dp_c_hotplug" = "0x06"

	# Enable DVI Hotplug with 6ms pulse
	register "gpu_dp_b_hotplug" = "0x06"

	register "max_mem_clock_mhz" = "666"

	chip cpu/intel/model_206ax
		device cpu_cluster 0 on end

		register "acpi_c1" = "CPU_ACPI_C3"
		register "acpi_c2" = "CPU_ACPI_C6"
	end

	device domain 0 on
		subsystemid 0x1ae0 0xc000 inherit
		device pci 00.0 on end # host bridge
		device pci 02.0 on end # vga controller

		chip southbridge/intel/bd82x6x # Intel Series 6 Cougar Point PCH
			# GPI routing
			#  0 No effect (default)
			#  1 SMI# (if corresponding ALT_GPI_SMI_EN bit is also set)
			#  2 SCI (if corresponding GPIO_EN bit is also set)
			register "gpi1_routing" = "0"
			register "gpi14_routing" = "2"

			register "sata_port_map" = "0x3"

			register "gen1_dec" = "0x00fc1601"
			# SuperIO range is 0x700-0x73f
			register "gen2_dec" = "0x003c0701"

			device pci 16.0 on end # Management Engine Interface 1
			device pci 16.1 off end # Management Engine Interface 2
			device pci 16.2 off end # Management Engine IDE-R
			device pci 16.3 off end # Management Engine KT
			device pci 19.0 off end # Intel Gigabit Ethernet
			device pci 1a.0 on end # USB2 EHCI #2
			device pci 1b.0 on end # High Definition Audio
			device pci 1c.0 on end # PCIe Port #1 (WLAN)
			device pci 1c.1 off end # PCIe Port #2
			device pci 1c.2 on end # PCIe Port #3 (Debug)
			device pci 1c.3 on end # PCIe Port #4 (LAN)
			device pci 1c.4 off end # PCIe Port #5
			device pci 1c.5 off end # PCIe Port #6
			device pci 1c.6 off end # PCIe Port #7
			device pci 1c.7 off end # PCIe Port #8
			device pci 1d.0 on end # USB2 EHCI #1
			device pci 1e.0 off end # PCI bridge
			device pci 1f.0 on # LPC bridge
				chip superio/ite/it8772f
					# Enable GPIO10 as USBPWRON12#
					# Enable GPIO12 as USBPWRON13#
					register "gpio_set1" = "0x05"
					# Enable GPIO22 as SIO_WAEKSCI#
					register "gpio_set2" = "0x04"
					# Enable GPIO32 as SIO_EXTSMI#
					register "gpio_set3" = "0x04"
					# Enable GPIO45 as LED_POWER#
					register "gpio_set4" = "0x20"
					# Enable GPIO51 as USBPWRON8#
					# Enable GPIO52 as USBPWRON1#
					register "gpio_set5" = "0x06"
					# Skip keyboard init
					register "skip_keyboard" = "true"
					# Enable PECI on TMPIN3
					register "peci_tmpin" = "3"
					# Enable FAN3
					register "fan3_enable" = "true"

					device pnp 2e.0 off end # FDC
					device pnp 2e.1 on # Serial Port 1
						io 0x60 = 0x2f8
						irq 0x70 = 4
					end
					device pnp 2e.4 on # Environment Controller
						io 0x60 = 0x700
						io 0x62 = 0x710
					end
					device pnp 2e.7 on # GPIO
						io 0x60 = 0x720
						io 0x62 = 0x730
					end
					device pnp 2e.5 on
						io 0x60 = 0x60
						io 0x62 = 0x64
						irq 0x70 = 1
					end # Keyboard
					device pnp 2e.6 on
						irq 0x70 = 12
					end # Mouse
					device pnp 2e.a off end # IR
				end
				chip drivers/pc80/tpm
					device pnp 0c31.0 on end
				end
			end
			device pci 1f.2 on end # SATA Controller 1
			device pci 1f.3 on end # SMBus
			device pci 1f.5 off end # SATA Controller 2
			device pci 1f.6 on end # Thermal
		end
	end
end
