Timothy Pearson (tpearson@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@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@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