##
## This file is part of the coreboot project.
##
## Copyright (C) 2007 AMD
## Written by Yinghai Lu <yinghailu@amd.com> for AMD.
## Copyright (C) 2010 Raptor Engineering
## Written by Timothy Pearson <tpearson@raptorengineeringinc.com> for Raptor Engineering.
##
## 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; either version 2 of the License, or
## (at your option) any later version.
##
## 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/amdfam10/root_complex	# Root complex
  device cpu_cluster 0 on			# (L)APIC cluster
    chip cpu/amd/socket_F_1207			# CPU socket
      device lapic 0 on end			# Local APIC of the CPU
    end
  end
  device domain 0 on			# PCI domain
    subsystemid 0x1462 0x9652 inherit
    chip northbridge/amd/amdfam10		# Northbridge / RAM controller
      device pci 18.0 on			# Link 0
        chip southbridge/nvidia/mcp55		# Southbridge
          device pci 0.0 on end			# HT
          device pci 1.0 on			# LPC
            chip superio/winbond/w83627ehg	# Super I/O
              device pnp 2e.0 on		# Floppy
                io 0x60 = 0x3f0
                irq 0x70 = 6
                drq 0x74 = 2
              end
              device pnp 2e.1 off		# Parallel port
                io 0x60 = 0x378
                irq 0x70 = 7
              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 on		# PS/2 keyboard & mouse
                io 0x60 = 0x60
                io 0x62 = 0x64
                irq 0x70 = 1
                irq 0x72 = 12
              end
              device pnp 2e.106 off		# Serial flash interface (SFI)
                io 0x60 = 0x100
              end
              device pnp 2e.007 off		# GPIO 1
              end
              device pnp 2e.107 on		# Game port
                io 0x60 = 0x220
              end
              device pnp 2e.207 on		# MIDI
                io 0x62 = 0x330
                irq 0x70 = 0xa
              end
              device pnp 2e.307 off		# GPIO 6
              end
              device pnp 2e.8 off		# WDTO#, PLED
              end
              device pnp 2e.009 off		# GPIO 2
              end
              device pnp 2e.109 off		# GPIO 3
              end
              device pnp 2e.209 off		# GPIO 4
              end
              device pnp 2e.309 off		# GPIO 5
              end
              device pnp 2e.a off end		# ACPI
              device pnp 2e.b on		# Hardware monitor
                io 0x60 = 0x290
                irq 0x70 = 5
              end
            end
          end
          device pci 1.1 on			# SM 0
            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
            chip drivers/generic/generic	# DIMM 0-1-0
              device i2c 52 on end
            end
            chip drivers/generic/generic	# DIMM 0-1-1
              device i2c 53 on end
            end
            chip drivers/generic/generic	# DIMM 1-0-0
              device i2c 54 on end
            end
            chip drivers/generic/generic	# DIMM 1-0-1
              device i2c 55 on end
            end
            chip drivers/generic/generic	# DIMM 1-1-0
              device i2c 56 on end
            end
            chip drivers/generic/generic	# DIMM 1-1-1
              device i2c 57 on end
            end
          end
          device pci 1.1 on			# SM 1
            # PCI device SMBus address will
            # depend on addon PCI device, do
            # we need to scan_smbus_bus?
            # chip drivers/generic/generic	# PCIXA slot 1
            #   device i2c 50 on end
            # end
            # chip drivers/generic/generic	# PCIXB slot 1
            #   device i2c 51 on end
            # end
            # chip drivers/generic/generic	# PCIXB slot 2
            #   device i2c 52 on end
            # end
            # chip drivers/generic/generic	# PCI slot 1
            #   device i2c 53 on end
            # end
            # chip drivers/generic/generic	# Master MCP55 PCI-E
            #   device i2c 54 on end
            # end
            # chip drivers/generic/generic	# Slave MCP55 PCI-E
            #   device i2c 55 on end
            # end
            # chip drivers/generic/generic	# MAC EEPROM
            #   device i2c 51 on end
            # end
          end
          device pci 2.0 on end			# USB 1.1
          device pci 2.1 on end			# USB 2
          device pci 4.0 on end			# IDE
          device pci 5.0 on end			# SATA 0
          device pci 5.1 on end			# SATA 1
          device pci 5.2 on end			# SATA 2
          device pci 6.1 on end			# AZA
          device pci 8.0 on end			# NIC
          device pci 9.0 on end			# NIC
          register "ide0_enable" = "1"
          register "sata0_enable" = "1"
          register "sata1_enable" = "1"
          # 1: SMBus under 2e.8, 2: SM0 3: SM1
          register "mac_eeprom_smbus" = "3"
          register "mac_eeprom_addr" = "0x51"
        end
      end
      device pci 18.0 on end			# HT 1.0
      device pci 18.0 on end			# HT 2.0
      device pci 18.1 on end
      device pci 18.2 on end
      device pci 18.3 on end
      device pci 18.4 on end
    end
  end
end