#
# This file is part of the coreboot project.
#
# Copyright (C) 2013 Advanced Micro Devices, Inc.
# Copyright (C) 2015 Sergej Ivanov <getinaks@gmail.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
chip northbridge/amd/agesa/family16kb/root_complex
	device cpu_cluster 0 on
		chip cpu/amd/agesa/family16kb
			device lapic 0 on  end
		end
	end

	device domain 0 on
		subsystemid 0x1002 0x439d inherit
		chip northbridge/amd/agesa/family16kb # CPU side of HT root complex

			chip northbridge/amd/agesa/family16kb # PCI side of HT root complex
				device pci 0.0 on  end # Root Complex
				device pci 1.0 on  end # Internal Graphics P2P bridge 0x9804
				device pci 1.1 on  end # Internal Multimedia
				device pci 2.0 on  end
				device pci 2.1 on  end
				device pci 2.2 on  end
				device pci 2.3 on  end
				device pci 2.4 on  end
				device pci 2.5 on  end
			end	#chip northbridge/amd/agesa/family16kb

			chip southbridge/amd/agesa/hudson # it is under NB/SB Link, but on the same pci bus
				device pci 10.0 on  end # XHCI HC0
				device pci 11.0 on  end # SATA
				device pci 12.0 on  end # USB
				device pci 12.2 on  end # USB
				device pci 13.0 on  end # USB
				device pci 13.2 on  end # USB
				device pci 14.0 on      # SM
					chip drivers/generic/generic #dimm 0-0-0
						device i2c 50 on end
					end
					chip drivers/generic/generic #dimm 0-0-1
						device i2c 51 on end
					end
				end # SM
				device pci 14.1 on  end # there is no legacy ide
				device pci 14.2 on  end # HDA	0x4383
				device pci 14.3 on      # LPC	0x439d
					chip superio/ite/it8728f
						device pnp 2e.0 off #  Floppy
							io 0x60 = 0x3f0
							irq 0x70 = 6
							drq 0x74 = 2
						end
						device pnp 2e.1 on #  Com1
							io 0x60 = 0x3f8
							irq 0x70 = 4
						end
						device pnp 2e.2 off #  Com2
							io 0x60 = 0x2f8
							irq 0x70 = 3
						end
						device pnp 2e.3 on #  Parallel Port
							io 0x60 = 0x378
							io 0x62 = 0
							drq 0x74 = 4
							irq 0x70 = 5
						end
						device pnp 2e.4 on #  Env Controller
							io 0x60 = 0xa00
							io 0x62 = 0xa20
							irq 0x70 = 0
						end
						device pnp 2e.5 on #  Keyboard
							io 0x60 = 0x60
							io 0x62 = 0x64
							irq 0x70 = 1
						end
						device pnp 2e.6 on #  Mouse
							irq 0x70 = 12
						end
						device pnp 2e.7 on #  GPIO
							io 0x60 = 0xa40
							io 0x62 = 0xa40
							io 0x64 = 0
							irq 0x70 = 0
						end
						device pnp 2e.a off end #  CIR
					end	#superio/ite/it8728f
				end	#device pci 14.3 # LPC
				device pci 14.7 off  end # SD
			end	#chip southbridge/amd/agesa/hudson

			device pci 18.0 on  end
			device pci 18.1 on  end
			device pci 18.2 on  end
			device pci 18.3 on  end
			device pci 18.4 on  end
			device pci 18.5 on  end
			register "spdAddrLookup" = "
			{
				{ {0xA0, 0xA2} },
			}"

		end	#chip northbridge/amd/agesa/family16kb # CPU side of HT root complex
	end	#domain
end	#northbridge/amd/agesa/family16kb/root_complex
