Timothy Pearson (tpearson(a)raptorengineeringinc.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/12070
-gerrit
commit a5ff61818157f61193d21f411c8e00857a2f0305
Author: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
Date: Mon Sep 7 18:07:43 2015 -0500
nb/amd/amdht: Fix XCS buffer count setup on AMD Family 15h CPUs
The existing code re-used the Family 10h XCS buffer setup on
Family 15h CPUs, which set incorrect values leading to random
system lockups.
Use the Family 15h XCS buffer setup shown in the BKDG.
Change-Id: Ie4bc8b3ea6b110bc507beda025de53d828118f55
Signed-off-by: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
---
src/northbridge/amd/amdht/h3ncmn.c | 94 +++++++++++++++++++++++++++++++++++++-
1 file changed, 92 insertions(+), 2 deletions(-)
diff --git a/src/northbridge/amd/amdht/h3ncmn.c b/src/northbridge/amd/amdht/h3ncmn.c
index 7937c6e..cbe90e0 100644
--- a/src/northbridge/amd/amdht/h3ncmn.c
+++ b/src/northbridge/amd/amdht/h3ncmn.c
@@ -2,6 +2,7 @@
* This file is part of the coreboot project.
*
* Copyright (C) 2007 Advanced Micro Devices, Inc.
+ * Copyright (C) 2015 Timothy Pearson <tpearson(a)raptorengineeringinc.com>, Raptor Engineering
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -1389,6 +1390,75 @@ static uint32_t fam10NorthBridgeFreqMask(u8 node, cNorthBridge *nb)
/***************************************************************************//**
*
+ * static u16
+ * fam15NorthBridgeFreqMask(u8 NodeID, cNorthBridge *nb)
+ *
+ * Description:
+ * Return a mask that eliminates HT frequencies that cannot be used due to a slow
+ * northbridge frequency.
+ *
+ * Parameters:
+ * @param[in] node = Result could (later) be for a specific node
+ * @param[in] *nb = this northbridge
+ * @return = Frequency mask
+ *
+ ******************************************************************************/
+static uint32_t fam15NorthBridgeFreqMask(u8 node, cNorthBridge *nb)
+{
+ u8 nbCOF;
+ uint32_t supported;
+
+ nbCOF = getMinNbCOF();
+ /*
+ * nbCOF is minimum northbridge speed in hundreds of MHz.
+ * HT can not go faster than the minimum speed of the northbridge.
+ */
+ if ((nbCOF >= 6) && (nbCOF < 10))
+ {
+ /* Generation 1 HT link frequency */
+ /* Convert frequency to bit and all less significant bits,
+ * by setting next power of 2 and subtracting 1.
+ */
+ supported = ((uint32_t)1 << ((nbCOF >> 1) + 2)) - 1;
+ }
+ else if ((nbCOF >= 10) && (nbCOF <= 32))
+ {
+ /* Generation 3 HT link frequency
+ * Assume error retry is enabled on all Gen 3 links
+ */
+ nbCOF *= 2;
+ if (nbCOF > 32)
+ nbCOF = 32;
+
+ /* Convert frequency to bit and all less significant bits,
+ * by setting next power of 2 and subtracting 1.
+ */
+ supported = ((uint32_t)1 << ((nbCOF >> 1) + 2)) - 1;
+ }
+ else if (nbCOF > 32)
+ {
+ supported = HT_FREQUENCY_LIMIT_3200M;
+ }
+ /* unlikely cases, but include as a defensive measure, also avoid trick above */
+ else if (nbCOF == 4)
+ {
+ supported = HT_FREQUENCY_LIMIT_400M;
+ }
+ else if (nbCOF == 2)
+ {
+ supported = HT_FREQUENCY_LIMIT_200M;
+ }
+ else
+ {
+ STOP_HERE;
+ supported = HT_FREQUENCY_LIMIT_200M;
+ }
+
+ return (fixEarlySampleFreqCapability(supported));
+}
+
+/***************************************************************************//**
+ *
* static void
* gatherLinkData(sMainData *pDat, cNorthBridge *nb)
*
@@ -2266,6 +2336,26 @@ static void fam10BufferOptimizations(u8 node, sMainData *pDat, cNorthBridge *nb)
}
}
+/***************************************************************************//**
+ *
+ * static void
+ * fam15BufferOptimizations(u8 node, sMainData *pDat, cNorthBridge *nb)
+ *
+ * Description:
+ * Buffer tunings are inherently northbridge specific. Check for specific configs
+ * which require adjustments and apply any standard workarounds to this node.
+ *
+ * Parameters:
+ * @param[in] node = the node to tune
+ * @param[in] *pDat = global state
+ * @param[in] nb = this northbridge
+ *
+ ******************************************************************************/
+static void fam15BufferOptimizations(u8 node, sMainData *pDat, cNorthBridge *nb)
+{
+ /* Buffer count setup on Family 15h is currently handled in cpuSetAMDPCI */
+}
+
/*
* North Bridge 'constructor'.
*
@@ -2324,11 +2414,11 @@ void newNorthBridge(u8 node, cNorthBridge *nb)
ht3SetCFGAddrMap,
convertBitsToWidth,
convertWidthToBits,
- fam10NorthBridgeFreqMask,
+ fam15NorthBridgeFreqMask,
gatherLinkData,
setLinkData,
ht3WriteTrafficDistribution,
- fam10BufferOptimizations,
+ fam15BufferOptimizations,
0x00000001,
0x00000200,
18,
Martin Roth (martinroth(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/12554
-gerrit
commit b2ee6ab6d2a1d1c4734d35c25cf343f28a9cfc8e
Author: Martin Roth <martinroth(a)google.com>
Date: Thu Nov 26 17:58:03 2015 -0700
amd/pi/00660F01: Remove 'PER_DEVICE_ACPI_TABLES'
The PER_DEVICE_ACPI_TABLES Kconfig symbol is no longer used as it was
removed in commit 83f81cad (acpi: Remove monolithic ACPI)
Change-Id: Ie6ba252f6e7d33da9d4500f1201367f116e4c505
Signed-off-by: Martin Roth <martinroth(a)google.com>
---
src/northbridge/amd/pi/00660F01/Kconfig | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/northbridge/amd/pi/00660F01/Kconfig b/src/northbridge/amd/pi/00660F01/Kconfig
index 5de31d2..f5d234d 100644
--- a/src/northbridge/amd/pi/00660F01/Kconfig
+++ b/src/northbridge/amd/pi/00660F01/Kconfig
@@ -15,7 +15,6 @@
config NORTHBRIDGE_AMD_PI_00660F01
bool
select MMCONF_SUPPORT
- select PER_DEVICE_ACPI_TABLES
if NORTHBRIDGE_AMD_PI_00660F01
Martin Roth (martinroth(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/12554
-gerrit
commit f1ea47c9c0c6bc9b115e2e4db7b32b34ed73bee1
Author: Martin Roth <martinroth(a)google.com>
Date: Thu Nov 26 17:58:03 2015 -0700
amd/pi/00660F01: Remove 'PER_DEVICE_ACPI_TABLES'
The PER_DEVICE_ACPI_TABLES Kconfig symbol is no longer used as it was
removed in commit 83f81cad (acpi: Remove monolithic ACPI)
Change-Id: Ie6ba252f6e7d33da9d4500f1201367f116e4c505
Signed-off-by: Martin Roth <martinroth(a)google.com>
---
src/northbridge/amd/pi/00660F01/Kconfig | 1 -
src/northbridge/intel/pineview/Kconfig | 39 ---------------------------------
2 files changed, 40 deletions(-)
diff --git a/src/northbridge/amd/pi/00660F01/Kconfig b/src/northbridge/amd/pi/00660F01/Kconfig
index 5de31d2..f5d234d 100644
--- a/src/northbridge/amd/pi/00660F01/Kconfig
+++ b/src/northbridge/amd/pi/00660F01/Kconfig
@@ -15,7 +15,6 @@
config NORTHBRIDGE_AMD_PI_00660F01
bool
select MMCONF_SUPPORT
- select PER_DEVICE_ACPI_TABLES
if NORTHBRIDGE_AMD_PI_00660F01
diff --git a/src/northbridge/intel/pineview/Kconfig b/src/northbridge/intel/pineview/Kconfig
deleted file mode 100644
index 6253b84..0000000
--- a/src/northbridge/intel/pineview/Kconfig
+++ /dev/null
@@ -1,39 +0,0 @@
-##
-## This file is part of the coreboot project.
-##
-## Copyright (C) 2007-2009 coresystems GmbH
-## Copyright (C) 2015 Damien Zammit <damien(a)zamaudio.com>
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; version 2 of the License.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU General Public License for more details.
-##
-
-config NORTHBRIDGE_INTEL_PINEVIEW
- bool
-
-if NORTHBRIDGE_INTEL_PINEVIEW
-
-config NORTHBRIDGE_SPECIFIC_OPTIONS # dummy
- def_bool y
- select MMCONF_SUPPORT
- select MMCONF_SUPPORT_DEFAULT
- select HAVE_DEBUG_RAM_SETUP
- select LAPIC_MONOTONIC_TIMER
- select VGA
- select PER_DEVICE_ACPI_TABLES
-
-config BOOTBLOCK_NORTHBRIDGE_INIT
- string
- default "northbridge/intel/pineview/bootblock.c"
-
-config VGA_BIOS_ID
- string
- default "8086,a001"
-
-endif