chip northbridge/intel/sandybridge
	# IGD Displays
	register "gfx" = "GMA_STATIC_DISPLAYS(0)"

	register "spd_addresses" = "{0x50, 0, 0x52, 0}"
	register "max_mem_clock_mhz" = "800"
	register "ec_present" = "1"

	register "usb3.hs_port_switch_mask" = "0xf"
	register "usb3.mode" = "3"
	register "usb3.preboot_support" = "1"
	register "usb3.xhci_streams" = "1"
	register "usb_port_config" = "{
		{ 1, 0, 0x0040 },
		{ 1, 0, 0x0040 },
		{ 1, 0, 0x0040 },
		{ 1, 0, 0x0040 },
		{ 1, 0, 0x0040 },
		{ 1, 0, 0x0040 },
		{ 1, 0, 0x0040 },
		{ 1, 0, 0x0040 },
		{ 1, 4, 0x0040 },
		{ 1, 4, 0x0040 },
		{ 1, 4, 0x0040 },
		{ 1, 4, 0x0040 },
		{ 1, 4, 0x0040 },
		{ 1, 4, 0x0040 }, }"

	chip cpu/intel/model_206ax
		device cpu_cluster 0 on end

		register "acpi_c2" = "CPU_ACPI_C6"
		register "acpi_c3" = "CPU_ACPI_DISABLED"
	end

	device domain 0 on
		device ref host_bridge on end # host bridge
		device ref peg10 on end # PCIe Bridge x16
		device ref igd on end # vga controller

		chip southbridge/intel/bd82x6x # Intel Series 6 Cougar Point PCH
			# Enable all SATA ports 0-5
			register "sata_port_map" = "0x3f"
			# Set max SATA speed to 6.0 Gb/s (should be the default, anyway)
			register "sata_interface_speed_support" = "0x3"

			# TODO: Enable generic LPC decodes...
			register "gen1_dec" = "0x001c02e1"
			#register "gen2_dec" = "0x00000000"
			#register "gen3_dec" = "0x00000000"
			#register "gen4_dec" = "0x00000000"

			# Disable root port coalescing
			register "pcie_port_coalesce" = "false"

			register "xhci_switchable_ports"	= "0x0f"
			register "superspeed_capable_ports"	= "0x0f"

			device ref xhci on end # USB 3.0 Controller
			device ref mei1 on end # Management Engine Interface 1
			device ref mei2 off end # Management Engine Interface 2
			device ref me_ide_r off end # Management Engine IDE-R
			device ref me_kt off end # Management Engine KT
			device ref gbe on end # Intel Gigabit Ethernet
			device ref ehci2 on end # USB2 EHCI #2
			device ref hda on end # High Definition Audio

			# Disabling 1c.0 might break IRQ settings as it enables port coalescing
			# There are two mini PCIe x1 sockets, so one PCIe port is unrouted
			device ref pcie_rp1 on end # PCIe Port #1 mini PCIe x1?
			device ref pcie_rp2 on end # PCIe Port #2 mini PCIe x1?
			device ref pcie_rp3 on end # PCIe Port #3 second Ethernet NIC
			device ref pcie_rp4 on end # PCIe Port #4 third Ethernet NIC
			device ref pcie_rp5 on end # PCIe Port #5 first Ethernet PHY
			device ref pcie_rp6 on end # PCIe Port #6 FireWire
			device ref pcie_rp7 on end # PCIe Port #7 PCIe x1
			device ref pcie_rp8 on end # PCIe Port #8 mini PCIe x1?

			device ref ehci1 on end # USB2 EHCI #1
			device ref pci_bridge off end # PCI bridge
			device ref lpc on #LPC bridge
				chip superio/winbond/w83627dhg
					device pnp 2e.0 off #  Floppy
					end
					device pnp 2e.1 off #  Parallel Port
					end
					device pnp 2e.2 on #  Com1
						io 0x60 = 0x3f8
						irq 0x70 = 4
					end
					device pnp 2e.3 on #  Com2
						io 0x60 = 0x2f8
						irq 0x70 = 3
					end
					device pnp 2e.5 off #  Keyboard
					end
					device pnp 2e.6 off #  SPI
					end
					device pnp 2e.307 off #  GPIO 1
					end
					device pnp 2e.8 off #  WDTO#, PLED
					end
					device pnp 2e.009 on #  GPIO2 -- original firmware sets this on
					end
					device pnp 2e.109 on #  GPIO3 -- original firmware sets this on
					end
					device pnp 2e.209 off #  GPIO4
					end
					device pnp 2e.309 off #  GPIO5
					end
					device pnp 2e.a off #  ACPI
					end
					device pnp 2e.b off # HWM
					end
					device pnp 2e.c off # PECI, SST
					end
				end	#superio/winbond/w83627dhg
				chip ec/kontron/it8516e
					# Set CPU Fan to 50°C, System Fan to 75%
					register "default_fan_mode" = "{ IT8516E_MODE_THERMAL, IT8516E_MODE_PWM }"
					register "default_fan_target" = "{ 50, 75 }"

					# TODO: Check status when Linux runs
					device pnp 20e.1 on #  Com3
						io 0x60 = 0x03e8
						irq 0x70 = 4
					end
					device pnp 20e.2 on #  Com4
						io 0x60 = 0x02e8
						irq 0x70 = 3
					end
					device pnp 20e.4 off #  System Wakeup
					end
					device pnp 20e.5 on #  Mouse
						irq 0x70 = 12
					end
					device pnp 20e.6 on #  Keyboard
						io 0x60 = 0x0060
						io 0x62 = 0x0064
						irq 0x70 = 1
					end
					device pnp 20e.f off #  Shared Memory
					end
					device pnp 20e.10 off #  BRAM / RTC
					end
					device pnp 20e.11 on #  PM channel 1
						io 0x60 = 0x0062
						io 0x62 = 0x0066
						irq 0x70 = 0
					end
					device pnp 20e.12 on #  PM channel 2
						io 0x60 = 0x020c
						io 0x62 = 0x020d
						irq 0x70 = 0
					end
					device pnp 20e.17 off #  PM channel 3
					end
				end	#ec/kontron/it8516e
				# TODO: TPM on 4e
			end # LPC bridge
			device ref sata1 on end # SATA Controller 1
			device ref smbus on end # SMBus
			device ref sata2 off end # SATA Controller 2
			device ref thermal off end # Thermal
		end
	end
end