Move Kconfig for HT limits to northbridge/amd/Kconfig.

Guard the code with CONFIG_EXPERT to remove warnings.

Make it only show up for fam10, since it isn't implemented for K8 yet.

Signed-off-by: Myles Watson <mylesgw@gmail.com>
Acked-by: Myles Watson <mylesgw@gmail.com>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5379 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Myles Watson 2010-04-08 15:02:39 +00:00
parent e705f9cee2
commit 604877eb2a
3 changed files with 106 additions and 107 deletions

View File

@ -90,96 +90,6 @@ menu "Chipset"
comment "CPU" comment "CPU"
source src/cpu/Kconfig source src/cpu/Kconfig
comment "Northbridge" comment "Northbridge"
menu "HyperTransport setup"
depends on (NORTHBRIDGE_AMD_AMDK8 || 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_400
bool "Limit HT frequency to 400MHz"
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
endmenu
source src/northbridge/Kconfig source src/northbridge/Kconfig
comment "Southbridge" comment "Southbridge"
source src/southbridge/Kconfig source src/southbridge/Kconfig

View File

@ -3,3 +3,92 @@ source src/northbridge/amd/gx1/Kconfig
source src/northbridge/amd/gx2/Kconfig source src/northbridge/amd/gx2/Kconfig
source src/northbridge/amd/amdfam10/Kconfig source src/northbridge/amd/amdfam10/Kconfig
source src/northbridge/amd/lx/Kconfig source src/northbridge/amd/lx/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_400
bool "Limit HT frequency to 400MHz"
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
endmenu

View File

@ -1327,47 +1327,47 @@ void selectOptimalWidthAndFrequency(sMainData *pDat)
for (i = 0; i < pDat->TotalLinks*2; i += 2) for (i = 0; i < pDat->TotalLinks*2; i += 2)
{ {
#if CONFIG_LIMIT_HT_SPEED_200 #if CONFIG_EXPERT && CONFIG_LIMIT_HT_SPEED_200
cbPCBFreqLimit = 0x0001; cbPCBFreqLimit = 0x0001;
#elif CONFIG_LIMIT_HT_SPEED_300 #elif CONFIG_EXPERT && CONFIG_LIMIT_HT_SPEED_300
cbPCBFreqLimit = 0x0003; cbPCBFreqLimit = 0x0003;
#elif CONFIG_LIMIT_HT_SPEED_400 #elif CONFIG_EXPERT && CONFIG_LIMIT_HT_SPEED_400
cbPCBFreqLimit = 0x0007; cbPCBFreqLimit = 0x0007;
#elif CONFIG_LIMIT_HT_SPEED_500 #elif CONFIG_EXPERT && CONFIG_LIMIT_HT_SPEED_500
cbPCBFreqLimit = 0x000F; cbPCBFreqLimit = 0x000F;
#elif CONFIG_LIMIT_HT_SPEED_600 #elif CONFIG_EXPERT && CONFIG_LIMIT_HT_SPEED_600
cbPCBFreqLimit = 0x001F; cbPCBFreqLimit = 0x001F;
#elif CONFIG_LIMIT_HT_SPEED_800 #elif CONFIG_EXPERT && CONFIG_LIMIT_HT_SPEED_800
cbPCBFreqLimit = 0x003F; cbPCBFreqLimit = 0x003F;
#elif CONFIG_LIMIT_HT_SPEED_1000 #elif CONFIG_EXPERT && CONFIG_LIMIT_HT_SPEED_1000
cbPCBFreqLimit = 0x007F; cbPCBFreqLimit = 0x007F;
#elif CONFIG_LIMIT_HT_SPEED_1200 #elif CONFIG_EXPERT && CONFIG_LIMIT_HT_SPEED_1200
cbPCBFreqLimit = 0x00FF; cbPCBFreqLimit = 0x00FF;
#elif CONFIG_LIMIT_HT_SPEED_1400 #elif CONFIG_EXPERT && CONFIG_LIMIT_HT_SPEED_1400
cbPCBFreqLimit = 0x01FF; cbPCBFreqLimit = 0x01FF;
#elif CONFIG_LIMIT_HT_SPEED_1600 #elif CONFIG_EXPERT && CONFIG_LIMIT_HT_SPEED_1600
cbPCBFreqLimit = 0x03FF; cbPCBFreqLimit = 0x03FF;
#elif CONFIG_LIMIT_HT_SPEED_1800 #elif CONFIG_EXPERT && CONFIG_LIMIT_HT_SPEED_1800
cbPCBFreqLimit = 0x07FF; cbPCBFreqLimit = 0x07FF;
#elif CONFIG_LIMIT_HT_SPEED_2000 #elif CONFIG_EXPERT && CONFIG_LIMIT_HT_SPEED_2000
cbPCBFreqLimit = 0x0FFF; cbPCBFreqLimit = 0x0FFF;
#elif CONFIG_LIMIT_HT_SPEED_2200 #elif CONFIG_EXPERT && CONFIG_LIMIT_HT_SPEED_2200
cbPCBFreqLimit = 0x1FFF; cbPCBFreqLimit = 0x1FFF;
#elif CONFIG_LIMIT_HT_SPEED_2400 #elif CONFIG_EXPERT && CONFIG_LIMIT_HT_SPEED_2400
cbPCBFreqLimit = 0x3FFF; cbPCBFreqLimit = 0x3FFF;
#elif CONFIG_LIMIT_HT_SPEED_2600 #elif CONFIG_EXPERT && CONFIG_LIMIT_HT_SPEED_2600
cbPCBFreqLimit = 0x7FFF; cbPCBFreqLimit = 0x7FFF;
#else #else
cbPCBFreqLimit = 0xFFFF; // Maximum allowed by autoconfiguration cbPCBFreqLimit = 0xFFFF; // Maximum allowed by autoconfiguration
#endif #endif
#if CONFIG_LIMIT_HT_DOWN_WIDTH_8 #if CONFIG_EXPERT && CONFIG_LIMIT_HT_DOWN_WIDTH_8
cbPCBABDownstreamWidth = 8; cbPCBABDownstreamWidth = 8;
#else #else
cbPCBABDownstreamWidth = 16; cbPCBABDownstreamWidth = 16;
#endif #endif
#if CONFIG_LIMIT_HT_UP_WIDTH_8 #if CONFIG_EXPERT && CONFIG_LIMIT_HT_UP_WIDTH_8
cbPCBBAUpstreamWidth = 8; cbPCBBAUpstreamWidth = 8;
#else #else
cbPCBBAUpstreamWidth = 16; cbPCBBAUpstreamWidth = 16;