Marc Jones (marc.jones(a)se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8413
-gerrit
commit ce9e6ea815fe560ddaf30f734b3bcf028ec7da8e
Author: Furquan Shaikh <furquan(a)google.com>
Date: Mon Jun 9 13:26:38 2014 -0700
tegra132: Add BCT support in tegra132 soc
Builds with cbootimage.
BUG=None
BRANCH=None
TEST=build test
Original-Change-Id: I796f171031bacf17106878d4a554e8f1cbfe93f8
Original-Signed-off-by: Furquan Shaikh <furquan(a)google.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/203145
Original-Tested-by: Furquan Shaikh <furquan(a)chromium.org>
Original-Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
Original-Commit-Queue: Aaron Durbin <adurbin(a)chromium.org>
(cherry picked from commit 4778ae4d08a25306407f0fd2fe47976d63463f9d)
Increase the bootblock area for the larger BCT that is generated by
the coreboot version of the cbootimage tool.
Change-Id: I42b8208504bf4936a9fa14f820d665590f6a3754
Signed-off-by: Marc Jones <marc.jones(a)se-eng.com>
---
src/soc/nvidia/tegra132/Kconfig | 4 ++--
src/soc/nvidia/tegra132/Makefile.inc | 29 +++++++++++++++++++++++++++++
2 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/src/soc/nvidia/tegra132/Kconfig b/src/soc/nvidia/tegra132/Kconfig
index f11e60f..d90b8aa 100644
--- a/src/soc/nvidia/tegra132/Kconfig
+++ b/src/soc/nvidia/tegra132/Kconfig
@@ -16,10 +16,10 @@ config BOOTBLOCK_ROM_OFFSET
config CBFS_HEADER_ROM_OFFSET
hex "offset of master CBFS header in ROM"
- default 0x18000
+ default 0x40000
config CBFS_ROM_OFFSET
hex "offset of CBFS data in ROM"
- default 0x18080
+ default 0x40080
endif
diff --git a/src/soc/nvidia/tegra132/Makefile.inc b/src/soc/nvidia/tegra132/Makefile.inc
index e31bbb6..f39dcb1 100644
--- a/src/soc/nvidia/tegra132/Makefile.inc
+++ b/src/soc/nvidia/tegra132/Makefile.inc
@@ -10,3 +10,32 @@ ramstage-y += cbmem.c
ramstage-y += timer.c
CPPFLAGS_common += -Isrc/soc/nvidia/tegra132/include/
+
+# We want to grab the bootblock right before it goes into the image and wrap
+# it inside a BCT, but ideally we would do that without making special, one
+# use modifications to the main ARM Makefile. We do this in two ways. First,
+# we copy bootblock.elf to bootblock.raw.elf and allow the %.bin: %.elf
+# template rule to turn it into bootblock.raw.bin. This makes sure whatever
+# processing is supposed to happen to turn an .elf into a .bin happens.
+#
+# Second, we add our own rule for creating bootblock.bin from
+# bootblock.raw.bin which displaces the template rule. When other rules that
+# package up the image pull in bootblock.bin, it will be this wrapped version
+# instead of the raw bootblock.
+
+$(objcbfs)/bootblock.raw.elf: $(objcbfs)/bootblock.elf
+ cp $< $@
+
+$(obj)/generated/bct.bin: $(obj)/generated/bct.cfg
+ @printf " CBOOTIMAGE $(subst $(obj)/,,$(@))\n"
+ $(CBOOTIMAGE) -gbct --soc tegra132 $< $@
+
+BCT_BIN = $(obj)/generated/bct.bin
+BCT_WRAPPER = $(obj)/generated/bct.wrapper
+$(objcbfs)/bootblock.bin: $(CBOOTIMAGE) $(objcbfs)/bootblock.raw.bin $(BCT_BIN)
+ echo "Version = 1;" > $(BCT_WRAPPER)
+ echo "Redundancy = 1;" >> $(BCT_WRAPPER)
+ echo "Bctfile = $(BCT_BIN);" >> $(BCT_WRAPPER)
+ echo "BootLoader = $<,$(CONFIG_BOOTBLOCK_BASE),$(CONFIG_BOOTBLOCK_BASE),Complete;" >> $(BCT_WRAPPER)
+ @printf " CBOOTIMAGE $(subst $(obj)/,,$(@))\n"
+ $(CBOOTIMAGE) $(BCT_WRAPPER) $@
Marc Jones (marc.jones(a)se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8409
-gerrit
commit be916806d2b79c7a960a5277849ad21cfffe616f
Author: Marc Jones <marc.jones(a)se-eng.com>
Date: Wed Jan 28 13:15:46 2015 +0800
tegra132: Fix build for verstage
Verstage isn't included yet, but we need to have
the Kconfig option for toolchain.inc to pass.
Change-Id: I7fae73cd3b77fd347398221489caf745274701eb
Signed-off-by: Marc Jones <marc.jones(a)se-eng.com>
---
src/soc/nvidia/tegra132/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/soc/nvidia/tegra132/Kconfig b/src/soc/nvidia/tegra132/Kconfig
index df58f06..f11e60f 100644
--- a/src/soc/nvidia/tegra132/Kconfig
+++ b/src/soc/nvidia/tegra132/Kconfig
@@ -2,6 +2,7 @@ config SOC_NVIDIA_TEGRA132
bool
default n
select ARCH_BOOTBLOCK_ARMV4
+ select ARCH_VERSTAGE_ARMV4
select ARCH_ROMSTAGE_ARMV8_64
select ARCH_RAMSTAGE_ARMV8_64
select ARM_LPAE
Timothy Pearson (tpearson(a)raptorengineeringinc.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8405
-gerrit
commit 289da28319ee43f1ae33b74231971246fda8a8e7
Author: Timothy Pearson <tpearson(a)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.
Moved K10 specific menu to amdfam10 Kconfig file.
Change-Id: If7ff40dccb4c22829062511ca0046aa2caf15580
Signed-off-by: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
---
src/northbridge/amd/Kconfig | 132 ----------------------
src/northbridge/amd/amdfam10/Kconfig | 205 +++++++++++++++++++++++++++++++++++
2 files changed, 205 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..35a683e 100644
--- a/src/northbridge/amd/amdfam10/Kconfig
+++ b/src/northbridge/amd/amdfam10/Kconfig
@@ -124,4 +124,209 @@ 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"
+ # 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
+ default n
+
+config AMDMCT_BACKGROUND_SCRUB_RATE
+ hex
+ 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
Timothy Pearson (tpearson(a)raptorengineeringinc.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8405
-gerrit
commit 0fb749c9fa1c6908bd7a8df9c082669b7d433b14
Author: Timothy Pearson <tpearson(a)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.
Moved K10 specific menu to amdfam10 Kconfig file.
Change-Id: If7ff40dccb4c22829062511ca0046aa2caf15580
Signed-off-by: Timothy Pearson <tpearson(a)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