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

	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 pci 00.0 on end # host bridge
		device pci 01.0 on end # PCIe Bridge x16
		device pci 02.0 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 pci 14.0 on end # USB 3.0 Controller
			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 on end # Intel Gigabit Ethernet
			device pci 1a.0 on end # USB2 EHCI #2
			device pci 1b.0 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 pci 1c.0 on end # PCIe Port #1 mini PCIe x1?
			device pci 1c.1 on end # PCIe Port #2 mini PCIe x1?
			device pci 1c.2 on end # PCIe Port #3 second Ethernet NIC
			device pci 1c.3 on end # PCIe Port #4 third Ethernet NIC
			device pci 1c.4 on end # PCIe Port #5 first Ethernet PHY
			device pci 1c.5 on end # PCIe Port #6 FireWire
			device pci 1c.6 on end # PCIe Port #7 PCIe x1
			device pci 1c.7 on end # PCIe Port #8 mini PCIe x1?

			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/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 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 off end # Thermal
		end
	end
end