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

	device cpu_cluster 0 on ops i945_cpu_bus_ops end		# APIC cluster

	register "pci_mmio_size" = "768"

	device domain 0 on
		ops i945_pci_domain_ops
		device pci 00.0 on end # host bridge
		device pci 01.0 off end # i945 PCIe root port
		device pci 02.0 on end # vga controller
		device pci 02.1 on end # display controller

		chip southbridge/intel/i82801gx
			register "pirqa_routing" = "0x05"
			register "pirqb_routing" = "0x07"
			register "pirqc_routing" = "0x05"
			register "pirqd_routing" = "0x07"
			register "pirqe_routing" = "0x80"
			register "pirqf_routing" = "0x80"
			register "pirqg_routing" = "0x80"
			register "pirqh_routing" = "0x06"

			# 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 "gpi13_routing" = "1"

			register "ide_enable_primary" = "true"
			register "ide_enable_secondary" = "false"

			register "c3_latency" = "85"
			register "p_cnt_throttling_supported" = "0"

			register "gen1_dec" = "0x00fc0291"
			register "gen4_dec" = "0x00000301"

			#device pci 1b.0 on end # High Definition Audio
			device pci 1c.0 on end # PCIe
			device pci 1c.1 on end # PCIe
			device pci 1c.2 on end # PCIe
			device pci 1c.3 on end # PCIe port 4
			device pci 1c.4 on end # PCIe port 5
			device pci 1c.5 on end # PCIe port 6
			device pci 1d.0 on end # USB UHCI
			device pci 1d.1 on end # USB UHCI
			device pci 1d.2 on end # USB UHCI
			device pci 1d.3 on end # USB UHCI
			device pci 1d.7 on end # USB2 EHCI
			device pci 1e.0 on end # PCI bridge
			device pci 1e.2 on end # AC'97 Audio
			device pci 1e.3 on end # AC'97 Modem
			device pci 1f.0 on # LPC bridge
				chip superio/winbond/w83627ehg
					device pnp 4e.0 off end	# Floppy
					device pnp 4e.1 off end	# Parport
					device pnp 4e.2 on		# COM1
						io 0x60 = 0x3f8
						irq 0x70 = 4
					end
					device pnp 4e.3 on		# COM2
						io 0x60 = 0x2f8
						irq 0x70 = 3
						irq 0xf1 = 4 # set IRMODE 0 # XXX not an irq
					end
					device pnp 4e.5 on		# PS/2 keyboard & mouse
						io 0x60 = 0x60
						io 0x62 = 0x64
						irq 0x70 = 1
						irq 0x72 = 12
						irq 0xf0 = 0x82		# HW accel A20.
					end
					device pnp 4e.106 off end	# Serial flash interface (SFI)
					device pnp 4e.007 off end	# GPIO 1
					device pnp 4e.107 off end	# Game port
					device pnp 4e.207 on		# MIDI
						io 0x62 = 0x330
						irq 0x70 = 9
					end
					device pnp 4e.307 off end	# GPIO 6
					device pnp 4e.8 off end		# WDTO#, PLED
					device pnp 4e.009 on		# GPIO 2
						# All default
					end
					device pnp 4e.109 on		# GPIO 3
						irq 0xf0 = 0xfb		# set inputs/outputs
						irq 0xf1 = 0x66
					end
					device pnp 4e.209 on		# GPIO 4
					end
					device pnp 4e.309 off		# GPIO 5
					end
					device pnp 4e.a on		# ACPI
						# TODO: IRQ
					end
					device pnp 4e.b on		# HWM
						io 0x60 = 0x290
						irq 0x70 = 0
					end
				end # chip superio/winbond/w83627ehg
			end # LPC bridge
			device pci 1f.1 on end  # IDE
			device pci 1f.2 on end  # SATA
			device pci 1f.3 on end  # SMBus
		end # chip southbridge/intel/i82801gx

	end # device domain0
end # chip northbridge/intel/i945