Patrick Georgi has submitted this change. ( https://review.coreboot.org/c/coreboot/+/49889 )
Change subject: nb/intel/sandybridge: Ensure tXP and tXPDLL do not overflow
......................................................................
nb/intel/sandybridge: Ensure tXP and tXPDLL do not overflow
The tXP bitfield is 3 bits wide, and the tXPDLL bitfield is 5 bits wide.
Clamp any values that would overflow this field. Bits in TC_DTP already
get set when the tXP and/or tXPDLL values are large.
Change-Id: Ie7f3e8e01ff7edd2652562080554c0afadde0bb9
Signed-off-by: Angel Pons <th3fanbus(a)gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/49889
Reviewed-by: Nico Huber <nico.h(a)gmx.de>
Reviewed-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
Tested-by: build bot (Jenkins) <no-reply(a)coreboot.org>
---
M src/northbridge/intel/sandybridge/raminit_common.c
1 file changed, 4 insertions(+), 3 deletions(-)
Approvals:
build bot (Jenkins): Verified
Nico Huber: Looks good to me, approved
Paul Menzel: Looks good to me, but someone else must approve
diff --git a/src/northbridge/intel/sandybridge/raminit_common.c b/src/northbridge/intel/sandybridge/raminit_common.c
index 6f02998..d6a8aa5 100644
--- a/src/northbridge/intel/sandybridge/raminit_common.c
+++ b/src/northbridge/intel/sandybridge/raminit_common.c
@@ -170,15 +170,16 @@
/* Other parameters */
const union tc_othp_reg tc_othp = {
- .tXPDLL = ctrl->tXPDLL,
- .tXP = ctrl->tXP,
+ .tXPDLL = MIN(ctrl->tXPDLL, 31),
+ .tXP = MIN(ctrl->tXP, 7),
.tAONPD = ctrl->tAONPD,
.tCPDED = 2,
.tPRPDEN = 1,
};
/*
- * If tXP and tXPDLL are very high, we need to increase them by one.
+ * If tXP and tXPDLL are very high, they no longer fit in the bitfields
+ * of the TC_OTHP register. If so, we set bits in TC_DTP to compensate.
* This can only happen on Ivy Bridge, and when overclocking the RAM.
*/
const union tc_dtp_reg tc_dtp = {
--
To view, visit https://review.coreboot.org/c/coreboot/+/49889
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ie7f3e8e01ff7edd2652562080554c0afadde0bb9
Gerrit-Change-Number: 49889
Gerrit-PatchSet: 4
Gerrit-Owner: Angel Pons <th3fanbus(a)gmail.com>
Gerrit-Reviewer: Arthur Heymans <arthur(a)aheymans.xyz>
Gerrit-Reviewer: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Patrick Georgi <pgeorgi(a)google.com>
Gerrit-Reviewer: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-Reviewer: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-MessageType: merged
Patrick Georgi has submitted this change. ( https://review.coreboot.org/c/coreboot/+/50179 )
Change subject: mb/ocp/deltalake: Fill ECC type in romstage
......................................................................
mb/ocp/deltalake: Fill ECC type in romstage
Fill the ECC type in `struct memory_info` in romstage, and in SoC code.
The SMBIOS override is unnecessary, and this is not mainboard-specific.
Change-Id: I8370b3ee7d75914b895946b53923598adf87b522
Signed-off-by: Angel Pons <th3fanbus(a)gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/50179
Reviewed-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
Reviewed-by: Johnny Lin <Johnny_Lin(a)wiwynn.com>
Reviewed-by: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Reviewed-by: Jonathan Zhang <jonzhang(a)fb.com>
Tested-by: build bot (Jenkins) <no-reply(a)coreboot.org>
---
M src/arch/x86/smbios.c
M src/include/smbios.h
M src/mainboard/ocp/deltalake/ramstage.c
M src/soc/intel/xeon_sp/cpx/romstage.c
4 files changed, 21 insertions(+), 32 deletions(-)
Approvals:
build bot (Jenkins): Verified
Paul Menzel: Looks good to me, but someone else must approve
Patrick Rudolph: Looks good to me, but someone else must approve
Jonathan Zhang: Looks good to me, approved
Johnny Lin: Looks good to me, but someone else must approve
diff --git a/src/arch/x86/smbios.c b/src/arch/x86/smbios.c
index bd7f422..33ab1ba 100644
--- a/src/arch/x86/smbios.c
+++ b/src/arch/x86/smbios.c
@@ -443,11 +443,6 @@
return 0x02; /* Unknown */
}
-unsigned int __weak smbios_memory_error_correction_type(struct memory_info *meminfo)
-{
- return meminfo->ecc_type;
-}
-
unsigned int __weak smbios_processor_external_clock(void)
{
return 0; /* Unknown */
@@ -1023,7 +1018,7 @@
t->location = MEMORY_ARRAY_LOCATION_SYSTEM_BOARD;
t->use = MEMORY_ARRAY_USE_SYSTEM;
- t->memory_error_correction = smbios_memory_error_correction_type(meminfo);
+ t->memory_error_correction = meminfo->ecc_type;
/* no error information handle available */
t->memory_error_information_handle = 0xFFFE;
diff --git a/src/include/smbios.h b/src/include/smbios.h
index 91f031a..78f364e 100644
--- a/src/include/smbios.h
+++ b/src/include/smbios.h
@@ -61,7 +61,6 @@
void smbios_ec_revision(uint8_t *ec_major_revision, uint8_t *ec_minor_revision);
-unsigned int smbios_memory_error_correction_type(struct memory_info *meminfo);
unsigned int smbios_processor_external_clock(void);
unsigned int smbios_processor_characteristics(void);
struct cpuid_result;
diff --git a/src/mainboard/ocp/deltalake/ramstage.c b/src/mainboard/ocp/deltalake/ramstage.c
index dc70eb2..7c79949 100644
--- a/src/mainboard/ocp/deltalake/ramstage.c
+++ b/src/mainboard/ocp/deltalake/ramstage.c
@@ -23,31 +23,6 @@
extern struct fru_info_str fru_strings;
static char slot_id_str[SLOT_ID_LEN];
-/* Override SMBIOS type 16 error correction type. */
-unsigned int smbios_memory_error_correction_type(struct memory_info *meminfo)
-{
- const struct SystemMemoryMapHob *hob;
-
- hob = get_system_memory_map();
- assert(hob != NULL);
-
- switch (hob->RasModesEnabled) {
- case CH_INDEPENDENT:
- return MEMORY_ARRAY_ECC_SINGLE_BIT;
- case FULL_MIRROR_1LM:
- case PARTIAL_MIRROR_1LM:
- case FULL_MIRROR_2LM:
- case PARTIAL_MIRROR_2LM:
- return MEMORY_ARRAY_ECC_MULTI_BIT;
- case RK_SPARE:
- return MEMORY_ARRAY_ECC_SINGLE_BIT;
- case CH_LOCKSTEP:
- return MEMORY_ARRAY_ECC_SINGLE_BIT;
- default:
- return MEMORY_ARRAY_ECC_MULTI_BIT;
- }
-}
-
/*
* Update SMBIOS type 0 ec version.
* In deltalake, BMC version is used to represent ec version.
diff --git a/src/soc/intel/xeon_sp/cpx/romstage.c b/src/soc/intel/xeon_sp/cpx/romstage.c
index 6025f2a..c1cb0ca 100644
--- a/src/soc/intel/xeon_sp/cpx/romstage.c
+++ b/src/soc/intel/xeon_sp/cpx/romstage.c
@@ -37,6 +37,25 @@
return *memmap_addr;
}
+static uint8_t get_error_correction_type(const uint8_t RasModesEnabled)
+{
+ switch (RasModesEnabled) {
+ case CH_INDEPENDENT:
+ return MEMORY_ARRAY_ECC_SINGLE_BIT;
+ case FULL_MIRROR_1LM:
+ case PARTIAL_MIRROR_1LM:
+ case FULL_MIRROR_2LM:
+ case PARTIAL_MIRROR_2LM:
+ return MEMORY_ARRAY_ECC_MULTI_BIT;
+ case RK_SPARE:
+ return MEMORY_ARRAY_ECC_SINGLE_BIT;
+ case CH_LOCKSTEP:
+ return MEMORY_ARRAY_ECC_SINGLE_BIT;
+ default:
+ return MEMORY_ARRAY_ECC_MULTI_BIT;
+ }
+}
+
/* Save the DIMM information for SMBIOS table 17 */
void save_dimm_info(void)
{
@@ -63,6 +82,7 @@
/* According to Dear Customer Letter it's 1.12 TB per processor. */
mem_info->max_capacity_mib = 1.12 * MiB * CONFIG_MAX_SOCKET;
mem_info->number_of_devices = CONFIG_DIMM_MAX;
+ mem_info->ecc_type = get_error_correction_type(hob->RasModesEnabled);
dimm_max = ARRAY_SIZE(mem_info->dimm);
vdd_voltage = get_ddr_voltage(hob->DdrVoltage);
/* For now only implement for one socket and hard-coded for DDR4 */
--
To view, visit https://review.coreboot.org/c/coreboot/+/50179
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I8370b3ee7d75914b895946b53923598adf87b522
Gerrit-Change-Number: 50179
Gerrit-PatchSet: 4
Gerrit-Owner: Angel Pons <th3fanbus(a)gmail.com>
Gerrit-Reviewer: Anjaneya "Reddy" Chagam <anjaneya.chagam(a)intel.com>
Gerrit-Reviewer: Arthur Heymans <arthur(a)aheymans.xyz>
Gerrit-Reviewer: Christian Walter <christian.walter(a)9elements.com>
Gerrit-Reviewer: Johnny Lin <Johnny_Lin(a)wiwynn.com>
Gerrit-Reviewer: Jonathan Zhang <jonzhang(a)fb.com>
Gerrit-Reviewer: Morgan Jang <Morgan_Jang(a)wiwynn.com>
Gerrit-Reviewer: Patrick Georgi <pgeorgi(a)google.com>
Gerrit-Reviewer: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Gerrit-Reviewer: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-Reviewer: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Jingle Hsu <jingle_hsu(a)wiwynn.com>
Gerrit-MessageType: merged
Attention is currently required from: Nico Huber, Martin Roth, Paul Menzel, Yu-Ping Wu.
Xi Chen has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/50294 )
Change subject: vendor: mediatek: Add mediatek mt8192 dram initialization codes
......................................................................
Patch Set 8:
(1 comment)
Patchset:
PS8:
ps8: remove trailing whitespace/tabs.
--
To view, visit https://review.coreboot.org/c/coreboot/+/50294
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I3853204578069c6abf52689ea6f5d88841414bd4
Gerrit-Change-Number: 50294
Gerrit-PatchSet: 8
Gerrit-Owner: Xi Chen <xixi.chen(a)mediatek.com>
Gerrit-Reviewer: Hung-Te Lin <hungte(a)chromium.org>
Gerrit-Reviewer: Martin Roth <martinroth(a)google.com>
Gerrit-Reviewer: Patrick Georgi <pgeorgi(a)google.com>
Gerrit-Reviewer: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-Reviewer: Yu-Ping Wu <yupingso(a)google.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-CC: Angel Pons <th3fanbus(a)gmail.com>
Gerrit-CC: Cindy Ching <cindy.ching(a)mediatek.corp-partner.google.com>
Gerrit-CC: Joel Kitching <kitching(a)google.com>
Gerrit-CC: Julius Werner <jwerner(a)chromium.org>
Gerrit-CC: Nico Huber <nico.h(a)gmx.de>
Gerrit-CC: Stefan Reinauer <reinauer(a)chromium.org>
Gerrit-CC: Werner Zeh <werner.zeh(a)siemens.com>
Gerrit-CC: Yidi Lin <yidi.lin(a)mediatek.com>
Gerrit-CC: Yidi Lin <yidi.lin(a)mediatek.corp-partner.google.com>
Gerrit-Attention: Nico Huber <nico.h(a)gmx.de>
Gerrit-Attention: Martin Roth <martinroth(a)google.com>
Gerrit-Attention: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-Attention: Yu-Ping Wu <yupingso(a)google.com>
Gerrit-Comment-Date: Mon, 01 Mar 2021 08:06:13 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment