Files
system76-coreboot/src/mainboard/asus/kfsn4-dre_k8/devicetree.cb
Timothy Pearson 74b13a5616 mainboard/asus/kfsn4-dre_k8: Fix broken dual CPU package support
The existing KFSN4-DRE support hung during ramstage while initializing
AP #3 if a second CPU package was installed.  After analyzing the
Sun Ultra 40 M2 support code it became apparent that the K8 code
cannot function correctly if sequential RAM training is disabled,
and that there were a few other missing calls.  This patch adds
the missing calls, adjust the CAR space to an appropriate level, and
explicitly defines the link numbers and connections in devicetree.cb

TEST: Booted ASUS KFSN4-DRE with 2x Opteron 8222 installed.

Change-Id: I96178b7367b0c13de5c9d5d90d032fb0c53639c2
Signed-off-by: Timothy Pearson <tpearson@raptorengineeringinc.com>
Reviewed-on: http://review.coreboot.org/12285
Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Tested-by: build bot (Jenkins)
2015-10-31 21:29:40 +01:00

198 lines
9.7 KiB
Plaintext

chip northbridge/amd/amdk8/root_complex # Root complex
device cpu_cluster 0 on # (L)APIC cluster
chip cpu/amd/socket_F # CPU socket
device lapic 0 on end # Local APIC of the CPU
end
end
device domain 0 on # PCI domain
subsystemid 0x1043 0x8162 inherit
chip northbridge/amd/amdk8 # Northbridge / RAM controller
register "maximum_memory_capacity" = "0x1000000000" # 64GB
device pci 18.0 on end # Link 0 == LDT 0
device pci 18.0 on # Link 1 == LDT 1 [SB on link 1]
chip southbridge/nvidia/ck804 # Southbridge
device pci 0.0 on end # HT
device pci 1.0 on # LPC
chip superio/winbond/w83627thg # Super I/O
device pnp 2e.0 on # Floppy
# Set up interface resources
io 0x60 = 0x3f0
irq 0x70 = 6
drq 0x74 = 2
end
device pnp 2e.1 off end # Parallel port
device pnp 2e.2 on # Com1
# Set up interface resources
io 0x60 = 0x3f8
irq 0x70 = 4
end
device pnp 2e.3 on # Com2
# Set up interface resources
io 0x60 = 0x2f8
irq 0x70 = 3
# Select correct package I/O pins
io 0xf1 = 0x04
end
device pnp 2e.5 on # PS/2 keyboard & mouse
# Set up interface resources
io 0x60 = 0x60
io 0x62 = 0x64
irq 0x70 = 1
irq 0x72 = 12
end
device pnp 2e.7 off end # Game port, MIDI, GPIO 1 & 5
device pnp 2e.8 off end # GPIO 2
device pnp 2e.9 on end # GPIO 3, GPIO 4
device pnp 2e.a off end # ACPI
device pnp 2e.b on # Hardware monitor
# Set up interface resources
io 0x60 = 0x290
irq 0x70 = 5
end
end
end
device pci 1.1 on # SM 0
chip drivers/generic/generic # DIMM n-0-0-0
device i2c 50 on end
end
chip drivers/generic/generic # DIMM n-0-0-1
device i2c 51 on end
end
chip drivers/generic/generic # DIMM n-0-1-0
device i2c 52 on end
end
chip drivers/generic/generic # DIMM n-0-1-1
device i2c 53 on end
end
chip drivers/generic/generic # DIMM n-1-0-0
device i2c 54 on end
end
chip drivers/generic/generic # DIMM n-1-0-1
device i2c 55 on end
end
chip drivers/generic/generic # DIMM n-1-1-0
device i2c 56 on end
end
chip drivers/generic/generic # DIMM n-1-1-1
device i2c 57 on end
end
chip drivers/i2c/w83793
register "mfc" = "0x29" # Enable FANIN1/FANIN12, FANIN9/FANIN10, and FANIN8/FANCTRL8 inputs
register "fanin" = "0x7f" # Enable monitoring of FANIN6 - FANIN12
register "fanin_sel" = "0x0f" # Connect FANIN9 - FANIN12 to pins 37 - 40
register "peci_agent_conf" = "0x33" # Set Intel CPU PECI agent domain (not used by AMD but may affect chip operation)
register "tcase0" = "94" # Set maximum Intel CPU case temperature to 94°C (not used by AMD but may affect chip operation)
register "tcase1" = "94" # Set maximum Intel CPU case temperature to 94°C (not used by AMD but may affect chip operation)
register "tcase2" = "94" # Set maximum Intel CPU case temperature to 94°C (not used by AMD but may affect chip operation)
register "tcase3" = "94" # Set maximum Intel CPU case temperature to 94°C (not used by AMD but may affect chip operation)
register "tr_enable" = "0x03" # Enable montoring of TR1 and TR2
register "td_mode_select" = "0x05" # Use internal temperature sensors and disable unconnected TD3/TD4
register "td1_critical_temperature" = "85" # Set TD1 (CPU0) critical temperature to 85°C
register "td1_critical_hysteresis" = "80" # Set TD1 (CPU0) critical hysteresis temperature to 80°C
register "td1_warning_temperature" = "70" # Set TD1 (CPU0) warning temperature to 70°C
register "td1_warning_hysteresis" = "65" # Set TD1 (CPU0) warning hysteresis temperature to 65°C
register "td2_critical_temperature" = "85" # Set TD2 (CPU1) critical temperature to 85°C
register "td2_critical_hysteresis" = "80" # Set TD2 (CPU1) critical hysteresis temperature to 80°C
register "td2_warning_temperature" = "70" # Set TD2 (CPU1) warning temperature to 70°C
register "td2_warning_hysteresis" = "65" # Set TD2 (CPU1) warning hysteresis temperature to 65°C
register "tr1_critical_temperature" = "60" # Set TR1 (mainboard) critical temperature to 60°C
register "tr1_critical_hysteresis" = "55" # Set TR1 (mainboard) critical hysteresis temperature to 55°C
register "tr1_warning_temperature" = "50" # Set TR1 (mainboard) warning temperature to 50°C
register "tr1_warning_hysteresis" = "45" # Set TR1 (mainboard) warning hysteresis temperature to 45°C
register "critical_temperature" = "80" # Set critical temperature to 80°C
register "fanctrl1" = "0x48" # Set Fan 4 and Fan 7 to output buffer mode, all others to open drain
register "fanctrl2" = "0x01" # Set Fan 4 to Fan 7 to output buffer mode, Fan 1 to DC mode
register "first_valid_fan_number" = "2" # Fan 1/Fan 2 controls and sensors are not connected to anything
register "td1_fan_select" = "0x00" # All fans to manual mode (no dependence on TD1)
register "td2_fan_select" = "0x00" # All fans to manual mode (no dependence on TD2)
register "td3_fan_select" = "0x00" # All fans to manual mode (no dependence on TD3)
register "td4_fan_select" = "0x00" # All fans to manual mode (no dependence on TD4)
register "tr1_fan_select" = "0x00" # All fans to manual mode (no dependence on TR1)
register "tr2_fan_select" = "0x00" # All fans to manual mode (no dependence on TR2)
register "fan1_nonstop" = "7" # Set Fan 1 minimum speed
register "fan2_nonstop" = "7" # Set Fan 2 minimum speed
register "fan3_nonstop" = "7" # Set Fan 3 minimum speed
register "fan4_nonstop" = "7" # Set Fan 4 minimum speed
register "fan5_nonstop" = "7" # Set Fan 5 minimum speed
register "fan6_nonstop" = "7" # Set Fan 6 minimum speed
register "fan7_nonstop" = "7" # Set Fan 7 minimum speed
register "fan8_nonstop" = "7" # Set Fan 8 minimum speed
register "default_speed" = "100" # All fans to full speed on power up
register "fan1_duty" = "100" # Fan 1 to full speed
register "fan2_duty" = "100" # Fan 2 to full speed
register "fan3_duty" = "100" # Fan 3 to full speed
register "fan4_duty" = "100" # Fan 4 to full speed
register "fan5_duty" = "100" # Fan 5 to full speed
register "fan6_duty" = "100" # Fan 6 to full speed
register "fan7_duty" = "100" # Fan 7 to full speed
register "fan8_duty" = "100" # Fan 8 to full speed
register "vcorea_high_limit_mv" = "1500" # VCOREA (Node 0) high limit to 1.5V
register "vcorea_low_limit_mv" = "900" # VCOREA (Node 0) low limit to 0.9V
register "vcoreb_high_limit_mv" = "1500" # VCOREB (Node 1) high limit to 1.5V
register "vcoreb_low_limit_mv" = "900" # VCOREB (Node 1) low limit to 0.9V
register "vtt_high_limit_mv" = "1250" # VTT (HT link voltage) high limit to 1.25V
register "vtt_low_limit_mv" = "1150" # VTT (HT link voltage) low limit to 1.15V
register "vsen1_high_limit_mv" = "1900" # VSEN1 (Node 0 RAM voltage) high limit to 1.9V
register "vsen1_low_limit_mv" = "1700" # VSEN1 (Node 0 RAM voltage) low limit to 1.7V
register "vsen2_high_limit_mv" = "1900" # VSEN2 (Node 1 RAM voltage) high limit to 1.9V
register "vsen2_low_limit_mv" = "1700" # VSEN2 (Node 1 RAM voltage) low limit to 1.7V
register "vsen3_high_limit_mv" = "3500" # VSEN3 (+3.3V) high limit to 3.5V
register "vsen3_low_limit_mv" = "3100" # VSEN3 (+3.3V) low limit to 3.1V
register "vsen4_high_limit_mv" = "1070" # VSEN4 (+12V, scaling factor ~12.15) high limit to 13V
register "vsen4_low_limit_mv" = "905" # VSEN4 (+12V, scaling factor ~12.15) low limit to 11V
register "vdd_high_limit_mv" = "5200" # 5VDD high limit to 5.2V
register "vdd_low_limit_mv" = "4800" # 5VDD low limit to 4.8V
register "vsb_high_limit_mv" = "5200" # 5VSB high limit to 5.2V
register "vsb_low_limit_mv" = "4800" # 5VSB low limit to 4.8V
register "vbat_high_limit_mv" = "3500" # VBAT (+3V) high limit to 3.5V
register "vbat_low_limit_mv" = "2500" # VBAT (+3V) low limit to 2.5V
device i2c 0x2f on end
end
end
device pci 1.1 on end # SM 1
device pci 2.0 on end # USB 1.1
device pci 2.1 on end # USB 2
device pci 4.0 off end # AC'97 Audio (N/A)
device pci 4.1 off end # AC'97 Modem (N/A)
device pci 6.0 on end # IDE
device pci 7.0 on end # SATA 0
device pci 8.0 on end # SATA 1
device pci 9.0 on # Bridge
device pci 4.0 on end # VGA
end
device pci a.0 off end
device pci b.0 on # Bridge
device pci 0.0 on end # NIC A
end
device pci c.0 on # Bridge
device pci 0.0 on end # LSI SAS
end
device pci d.0 on # Bridge
device pci 0.0 on end # NIC B
end
device pci e.0 on # Bridge
# Slot # PCI E 0
end
device pci f.0 off end
register "ide0_enable" = "1"
register "ide1_enable" = "1"
register "sata0_enable" = "1"
register "sata1_enable" = "1"
end
end
device pci 18.0 on end # Link 2 == LDT 2
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 19.0 on end # Link 0 == LDT 0
device pci 19.0 on end # Link 1 == LDT 1
device pci 19.0 on end # Link 2 == LDT 2
device pci 19.1 on end
device pci 19.2 on end
device pci 19.3 on end
device pci 19.4 on end
end
end
end