[coreboot-gerrit] Patch set updated for coreboot: dcab66d northbridge/amd/amdfam10: Allow mainboards to set maximum HT link frequency

Timothy Pearson (tpearson@raptorengineeringinc.com) gerrit at coreboot.org
Tue Feb 10 22:09:54 CET 2015


Timothy Pearson (tpearson at raptorengineeringinc.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8405

-gerrit

commit dcab66dbb628f8223b87926d3d7f86a3077c8b1b
Author: Timothy Pearson <tpearson at raptorengineeringinc.com>
Date:   Tue Feb 10 13:13:39 2015 -0600

    northbridge/amd/amdfam10: Allow mainboards to set maximum HT link frequency
    
    Most K10 mainboards are designed to a maximum HT frequency specification.
    Coreboot supports CPUs that were released after mainboard production;
    these CPUs may support and autodetect HT link frequencies beyond the
    mainboard design capabilities.  This patch allows mainboards to set
    an HT frequency limit if needed.
    
    Change-Id: If7ff40dccb4c22829062511ca0046aa2caf15580
    Signed-off-by: Timothy Pearson <tpearson at raptorengineeringinc.com>
---
 src/northbridge/amd/Kconfig          | 132 ----------------------
 src/northbridge/amd/amdfam10/Kconfig | 209 +++++++++++++++++++++++++++++++++++
 2 files changed, 209 insertions(+), 132 deletions(-)

diff --git a/src/northbridge/amd/Kconfig b/src/northbridge/amd/Kconfig
index 17f15c3..98a0e9e 100644
--- a/src/northbridge/amd/Kconfig
+++ b/src/northbridge/amd/Kconfig
@@ -5,135 +5,3 @@ source src/northbridge/amd/lx/Kconfig
 source src/northbridge/amd/agesa/Kconfig
 source src/northbridge/amd/cimx/Kconfig
 source src/northbridge/amd/pi/Kconfig
-
-menu "HyperTransport setup"
-	#could be implemented for K8 (NORTHBRIDGE_AMD_AMDK8)
-	depends on (NORTHBRIDGE_AMD_AMDFAM10) && EXPERT
-
-choice
-	prompt "HyperTransport frequency"
-	default LIMIT_HT_SPEED_AUTO
-	help
-	  This option sets the maximum permissible HyperTransport link
-	  frequency.
-
-	  Use of this option will only limit the autodetected HT frequency.
-	  It will not (and cannot) increase the frequency beyond the
-	  autodetected limits.
-
-	  This is primarily used to work around poorly designed or laid out
-	  HT traces on certain motherboards.
-
-config LIMIT_HT_SPEED_200
-	bool "Limit HT frequency to 200MHz"
-config LIMIT_HT_SPEED_300
-	bool "Limit HT frequency to 300MHz"
-config LIMIT_HT_SPEED_400
-	bool "Limit HT frequency to 400MHz"
-config LIMIT_HT_SPEED_500
-	bool "Limit HT frequency to 500MHz"
-config LIMIT_HT_SPEED_600
-	bool "Limit HT frequency to 600MHz"
-config LIMIT_HT_SPEED_800
-	bool "Limit HT frequency to 800MHz"
-config LIMIT_HT_SPEED_1000
-	bool "Limit HT frequency to 1.0GHz"
-config LIMIT_HT_SPEED_1200
-	bool "Limit HT frequency to 1.2GHz"
-config LIMIT_HT_SPEED_1400
-	bool "Limit HT frequency to 1.4GHz"
-config LIMIT_HT_SPEED_1600
-	bool "Limit HT frequency to 1.6GHz"
-config LIMIT_HT_SPEED_1800
-	bool "Limit HT frequency to 1.8GHz"
-config LIMIT_HT_SPEED_2000
-	bool "Limit HT frequency to 2.0GHz"
-config LIMIT_HT_SPEED_2200
-	bool "Limit HT frequency to 2.2GHz"
-config LIMIT_HT_SPEED_2400
-	bool "Limit HT frequency to 2.4GHz"
-config LIMIT_HT_SPEED_2600
-	bool "Limit HT frequency to 2.6GHz"
-config LIMIT_HT_SPEED_AUTO
-	bool "Autodetect HT frequency"
-endchoice
-
-choice
-	prompt "HyperTransport downlink width"
-	default LIMIT_HT_DOWN_WIDTH_16
-	help
-	  This option sets the maximum permissible HyperTransport
-	  downlink width.
-
-	  Use of this option will only limit the autodetected HT width.
-	  It will not (and cannot) increase the width beyond the autodetected
-	  limits.
-
-	  This is primarily used to work around poorly designed or laid out HT
-	  traces on certain motherboards.
-
-config LIMIT_HT_DOWN_WIDTH_8
-	bool "8 bits"
-config LIMIT_HT_DOWN_WIDTH_16
-	bool "16 bits"
-endchoice
-
-choice
-	prompt "HyperTransport uplink width"
-	default LIMIT_HT_UP_WIDTH_16
-	help
-	  This option sets the maximum permissible HyperTransport
-	  uplink width.
-
-	  Use of this option will only limit the autodetected HT width.
-	  It will not (and cannot) increase the width beyond the autodetected
-	  limits.
-
-	  This is primarily used to work around poorly designed or laid out HT
-	  traces on certain motherboards.
-
-config LIMIT_HT_UP_WIDTH_8
-	bool "8 bits"
-config LIMIT_HT_UP_WIDTH_16
-	bool "16 bits"
-endchoice
-
-config AMDMCT_ENABLE_ECC_REDIR
-	bool
-	depends on CPU_AMD_MODEL_10XXX
-	default n
-
-config AMDMCT_BACKGROUND_SCRUB_RATE
-	hex
-	depends on CPU_AMD_MODEL_10XXX
-	default 0x00
-	help
-	  This option sets the background ECC memory scub rate
-
-	  Permissible values are:
-
-	  0x00;	Disabled
-	  0x01;	40ns
-	  0x02;	80ns
-	  0x03;	160ns
-	  0x04;	320ns
-	  0x05;	640ns
-	  0x06;	1.28us
-	  0x07;	2.56us
-	  0x08;	5.12us
-	  0x09;	10.2us
-	  0x0a;	20.5us
-	  0x0b;	41us
-	  0x0c;	81.9us
-	  0x0d;	163.8us
-	  0x0e;	327.7us
-	  0x0f;	655.4us
-	  0x10;	1.31ms
-	  0x11;	2.62ms
-	  0x12;	5.24ms
-	  0x13;	10.49ms
-	  0x14;	20.97sms
-	  0x15;	42ms
-	  0x16;	84ms
-
-endmenu
diff --git a/src/northbridge/amd/amdfam10/Kconfig b/src/northbridge/amd/amdfam10/Kconfig
index 13b912e..5fc7584 100644
--- a/src/northbridge/amd/amdfam10/Kconfig
+++ b/src/northbridge/amd/amdfam10/Kconfig
@@ -124,4 +124,213 @@ config SVI_HIGH_FREQ
           Select this for boards with a Voltage Regulator able to operate
           at 3.4 MHz in SVI mode. Ignored unless the AMD CPU is rev C3.
 
+config FORCE_LIMIT_HT_SPEED_200
+	bool
+	default n
+
+config FORCE_LIMIT_HT_SPEED_300
+	bool
+	default n
+
+config FORCE_LIMIT_HT_SPEED_400
+	bool
+	default n
+
+config FORCE_LIMIT_HT_SPEED_500
+	bool
+	default n
+
+config FORCE_LIMIT_HT_SPEED_600
+	bool
+	default n
+
+config FORCE_LIMIT_HT_SPEED_800
+	bool
+	default n
+
+config FORCE_LIMIT_HT_SPEED_1000
+	bool
+	default n
+
+config FORCE_LIMIT_HT_SPEED_1200
+	bool
+	default n
+
+config FORCE_LIMIT_HT_SPEED_1400
+	bool
+	default n
+
+config FORCE_LIMIT_HT_SPEED_1600
+	bool
+	default n
+
+config FORCE_LIMIT_HT_SPEED_1800
+	bool
+	default n
+
+config FORCE_LIMIT_HT_SPEED_2000
+	bool
+	default n
+
+config FORCE_LIMIT_HT_SPEED_2200
+	bool
+	default n
+
+config FORCE_LIMIT_HT_SPEED_2400
+	bool
+	default n
+
+config FORCE_LIMIT_HT_SPEED_2600
+	bool
+	default n
+
+menu "HyperTransport setup"
+	#could be implemented for K8 (NORTHBRIDGE_AMD_AMDK8)
+	depends on (NORTHBRIDGE_AMD_AMDFAM10)
+	# FIXME uncomment when coreboot gains "visible if" support
+	# visible if EXPERT
+
+choice
+	prompt "HyperTransport frequency"
+	default LIMIT_HT_SPEED_AUTO if (!FORCE_LIMIT_HT_SPEED_200 && !FORCE_LIMIT_HT_SPEED_300 && !FORCE_LIMIT_HT_SPEED_400 && !FORCE_LIMIT_HT_SPEED_500 && !FORCE_LIMIT_HT_SPEED_600 && !FORCE_LIMIT_HT_SPEED_800 && !FORCE_LIMIT_HT_SPEED_1000 && !FORCE_LIMIT_HT_SPEED_1200 && !FORCE_LIMIT_HT_SPEED_1400 && !FORCE_LIMIT_HT_SPEED_1600 && !FORCE_LIMIT_HT_SPEED_1800 && !FORCE_LIMIT_HT_SPEED_2000 && !FORCE_LIMIT_HT_SPEED_2200 && !FORCE_LIMIT_HT_SPEED_2400 && !FORCE_LIMIT_HT_SPEED_2600)
+	default LIMIT_HT_SPEED_200 if FORCE_LIMIT_HT_SPEED_200
+	default LIMIT_HT_SPEED_300 if FORCE_LIMIT_HT_SPEED_300
+	default LIMIT_HT_SPEED_400 if FORCE_LIMIT_HT_SPEED_400
+	default LIMIT_HT_SPEED_500 if FORCE_LIMIT_HT_SPEED_500
+	default LIMIT_HT_SPEED_600 if FORCE_LIMIT_HT_SPEED_600
+	default LIMIT_HT_SPEED_800 if FORCE_LIMIT_HT_SPEED_800
+	default LIMIT_HT_SPEED_1000 if FORCE_LIMIT_HT_SPEED_1000
+	default LIMIT_HT_SPEED_1200 if FORCE_LIMIT_HT_SPEED_1200
+	default LIMIT_HT_SPEED_1400 if FORCE_LIMIT_HT_SPEED_1400
+	default LIMIT_HT_SPEED_1600 if FORCE_LIMIT_HT_SPEED_1600
+	default LIMIT_HT_SPEED_1800 if FORCE_LIMIT_HT_SPEED_1800
+	default LIMIT_HT_SPEED_2000 if FORCE_LIMIT_HT_SPEED_2000
+	default LIMIT_HT_SPEED_2200 if FORCE_LIMIT_HT_SPEED_2200
+	default LIMIT_HT_SPEED_2400 if FORCE_LIMIT_HT_SPEED_2400
+	default LIMIT_HT_SPEED_2600 if FORCE_LIMIT_HT_SPEED_2600
+	help
+	  This option sets the maximum permissible HyperTransport link
+	  frequency.
+
+	  Use of this option will only limit the autodetected HT frequency.
+	  It will not (and cannot) increase the frequency beyond the
+	  autodetected limits.
+
+	  This is primarily used to work around poorly designed or laid out
+	  HT traces on certain motherboards.
+
+config LIMIT_HT_SPEED_200
+	bool "Limit HT frequency to 200MHz"
+config LIMIT_HT_SPEED_300
+	bool "Limit HT frequency to 300MHz"
+config LIMIT_HT_SPEED_400
+	bool "Limit HT frequency to 400MHz"
+config LIMIT_HT_SPEED_500
+	bool "Limit HT frequency to 500MHz"
+config LIMIT_HT_SPEED_600
+	bool "Limit HT frequency to 600MHz"
+config LIMIT_HT_SPEED_800
+	bool "Limit HT frequency to 800MHz"
+config LIMIT_HT_SPEED_1000
+	bool "Limit HT frequency to 1.0GHz"
+config LIMIT_HT_SPEED_1200
+	bool "Limit HT frequency to 1.2GHz"
+config LIMIT_HT_SPEED_1400
+	bool "Limit HT frequency to 1.4GHz"
+config LIMIT_HT_SPEED_1600
+	bool "Limit HT frequency to 1.6GHz"
+config LIMIT_HT_SPEED_1800
+	bool "Limit HT frequency to 1.8GHz"
+config LIMIT_HT_SPEED_2000
+	bool "Limit HT frequency to 2.0GHz"
+config LIMIT_HT_SPEED_2200
+	bool "Limit HT frequency to 2.2GHz"
+config LIMIT_HT_SPEED_2400
+	bool "Limit HT frequency to 2.4GHz"
+config LIMIT_HT_SPEED_2600
+	bool "Limit HT frequency to 2.6GHz"
+config LIMIT_HT_SPEED_AUTO
+	bool "Autodetect HT frequency"
+endchoice
+
+choice
+	prompt "HyperTransport downlink width"
+	default LIMIT_HT_DOWN_WIDTH_16
+	help
+	  This option sets the maximum permissible HyperTransport
+	  downlink width.
+
+	  Use of this option will only limit the autodetected HT width.
+	  It will not (and cannot) increase the width beyond the autodetected
+	  limits.
+
+	  This is primarily used to work around poorly designed or laid out HT
+	  traces on certain motherboards.
+
+config LIMIT_HT_DOWN_WIDTH_8
+	bool "8 bits"
+config LIMIT_HT_DOWN_WIDTH_16
+	bool "16 bits"
+endchoice
+
+choice
+	prompt "HyperTransport uplink width"
+	default LIMIT_HT_UP_WIDTH_16
+	help
+	  This option sets the maximum permissible HyperTransport
+	  uplink width.
+
+	  Use of this option will only limit the autodetected HT width.
+	  It will not (and cannot) increase the width beyond the autodetected
+	  limits.
+
+	  This is primarily used to work around poorly designed or laid out HT
+	  traces on certain motherboards.
+
+config LIMIT_HT_UP_WIDTH_8
+	bool "8 bits"
+config LIMIT_HT_UP_WIDTH_16
+	bool "16 bits"
+endchoice
+
+config AMDMCT_ENABLE_ECC_REDIR
+	bool
+	depends on CPU_AMD_MODEL_10XXX
+	default n
+
+config AMDMCT_BACKGROUND_SCRUB_RATE
+	hex
+	depends on CPU_AMD_MODEL_10XXX
+	default 0x00
+	help
+	  This option sets the background ECC memory scub rate
+
+	  Permissible values are:
+
+	  0x00;	Disabled
+	  0x01;	40ns
+	  0x02;	80ns
+	  0x03;	160ns
+	  0x04;	320ns
+	  0x05;	640ns
+	  0x06;	1.28us
+	  0x07;	2.56us
+	  0x08;	5.12us
+	  0x09;	10.2us
+	  0x0a;	20.5us
+	  0x0b;	41us
+	  0x0c;	81.9us
+	  0x0d;	163.8us
+	  0x0e;	327.7us
+	  0x0f;	655.4us
+	  0x10;	1.31ms
+	  0x11;	2.62ms
+	  0x12;	5.24ms
+	  0x13;	10.49ms
+	  0x14;	20.97sms
+	  0x15;	42ms
+	  0x16;	84ms
+
+endmenu
+
 endif # NORTHBRIDGE_AMD_AMDFAM10



More information about the coreboot-gerrit mailing list