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"
			register "usb_port_config" = "{
				{ 1, 0, 0 }, /* P0: lower left USB 3.0 (OC0) */
				{ 1, 0, 0 }, /* P1: upper left USB 3.0 (OC0) */
				{ 1, 0, 0 }, /* P2: lower right USB 3.0 (OC0) */
				{ 1, 0, 0 }, /* P3: upper right USB 3.0 (OC0) */
				{ 1, 0, 0 }, /* P4: lower USB 2.0 (OC0) */
				{ 1, 0, 0 }, /* P5: upper USB 2.0 (OC0) */
				{ 1, 0, 0 }, /* P6: front panel USB 2.0 (OC0) */
				{ 1, 0, 0 }, /* P7: front panel USB 2.0 (OC0) */
				{ 1, 0, 4 }, /* P8: internal USB 2.0 (OC4) */
				{ 1, 0, 4 }, /* P9: internal USB 2.0 (OC4) */
				{ 1, 0, 4 }, /* P10: internal USB 2.0 (OC4) */
				{ 1, 0, 4 }, /* P11: internal USB 2.0 (OC4) */
				{ 1, 0, 4 }, /* P12: internal USB 2.0 (OC4) */
				{ 1, 0, 4 }, /* P13: internal USB 2.0 (OC4) */
			}"

			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
