From d5ea355c73ab7ea581f55572b3954ac62d9fa1ff Mon Sep 17 00:00:00 2001 From: Karthikeyan Ramasubramanian Date: Thu, 7 Jul 2022 16:37:05 -0600 Subject: util/spd_tools: Limit memory speed to 5500 Mbps for Sabrina In Sabrina platform, memory speed is limited to 5500 Mbps. Update the SPD generation tool to limit to that speed. BUG=b:238074863 TEST=Build and boot to OS in Skyrim. Signed-off-by: Karthikeyan Ramasubramanian Change-Id: Ie3507898167012e0d812c9b1aacba72e9055fcd8 Reviewed-on: https://review.coreboot.org/c/coreboot/+/65708 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth --- spd/lp5/platforms_manifest.generated.txt | 2 +- spd/lp5/set-1/parts_spd_manifest.generated.txt | 6 ++--- spd/lp5/set-1/spd-1.hex | 4 ++-- spd/lp5/set-1/spd-2.hex | 4 ++-- spd/lp5/set-1/spd-3.hex | 4 ++-- spd/lp5/set-1/spd-4.hex | 4 ++-- spd/lp5/set-1/spd-5.hex | 6 ++--- spd/lp5/set-1/spd-6.hex | 32 -------------------------- util/spd_tools/src/spd_gen/lp5.go | 22 ++++++++++++++---- 9 files changed, 32 insertions(+), 52 deletions(-) delete mode 100644 spd/lp5/set-1/spd-6.hex diff --git a/spd/lp5/platforms_manifest.generated.txt b/spd/lp5/platforms_manifest.generated.txt index 8fbbd273e7..b3b574e02d 100644 --- a/spd/lp5/platforms_manifest.generated.txt +++ b/spd/lp5/platforms_manifest.generated.txt @@ -1,6 +1,6 @@ # Generated by: # util/spd_tools/bin/spd_gen spd/lp5/memory_parts.json lp5 -ADL,set-0 MTL,set-0 +ADL,set-0 SBR,set-1 diff --git a/spd/lp5/set-1/parts_spd_manifest.generated.txt b/spd/lp5/set-1/parts_spd_manifest.generated.txt index 9e1dd0c4a2..5579bdf9c5 100644 --- a/spd/lp5/set-1/parts_spd_manifest.generated.txt +++ b/spd/lp5/set-1/parts_spd_manifest.generated.txt @@ -7,8 +7,8 @@ H9JCNNNCP3MLYR-N6E,spd-2.hex K3LKBKB0BM-MGCP,spd-3.hex H9JCNNNBK3MLYR-N6E,spd-1.hex MT62F2G32D8DR-031 WT:B,spd-4.hex -K3LKLKL0EM-MGCN,spd-5.hex +K3LKLKL0EM-MGCN,spd-1.hex H58G56AK6BX069,spd-3.hex MT62F1G32D4DS-031 WT:B,spd-2.hex -K3LKCKC0BM-MGCP,spd-6.hex -MT62F1G32D2DS-026 WT:B,spd-7.hex +K3LKCKC0BM-MGCP,spd-5.hex +MT62F1G32D2DS-026 WT:B,spd-3.hex diff --git a/spd/lp5/set-1/spd-1.hex b/spd/lp5/set-1/spd-1.hex index ccc9107aab..1bb8da178f 100644 --- a/spd/lp5/set-1/spd-1.hex +++ b/spd/lp5/set-1/spd-1.hex @@ -1,11 +1,11 @@ 23 11 13 0E 85 19 95 18 00 40 00 00 02 02 00 00 -00 00 03 00 00 00 00 00 2B 00 90 A8 90 90 06 C0 +00 00 03 00 00 00 00 00 2C 00 90 A8 90 90 06 C0 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 B9 00 C1 00 00 +00 00 00 00 00 00 00 00 00 00 00 C9 00 F4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/spd/lp5/set-1/spd-2.hex b/spd/lp5/set-1/spd-2.hex index 69a5fb54f2..12300a029e 100644 --- a/spd/lp5/set-1/spd-2.hex +++ b/spd/lp5/set-1/spd-2.hex @@ -1,11 +1,11 @@ 23 11 13 0E 85 19 B5 18 00 40 00 00 0A 02 00 00 -00 00 03 00 00 00 00 00 2B 00 90 A8 90 90 06 C0 +00 00 03 00 00 00 00 00 2C 00 90 A8 90 90 06 C0 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 B9 00 C1 00 00 +00 00 00 00 00 00 00 00 00 00 00 C9 00 F4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/spd/lp5/set-1/spd-3.hex b/spd/lp5/set-1/spd-3.hex index 8090f06fdc..a8cf28940a 100644 --- a/spd/lp5/set-1/spd-3.hex +++ b/spd/lp5/set-1/spd-3.hex @@ -1,11 +1,11 @@ 23 11 13 0E 86 21 95 18 00 40 00 00 02 02 00 00 -00 00 03 00 00 00 00 00 2B 00 90 A8 90 C0 08 60 +00 00 03 00 00 00 00 00 2C 00 90 A8 90 C0 08 60 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 B9 00 C1 00 00 +00 00 00 00 00 00 00 00 00 00 00 C9 00 F4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/spd/lp5/set-1/spd-4.hex b/spd/lp5/set-1/spd-4.hex index 7255eece70..01a5734bd4 100644 --- a/spd/lp5/set-1/spd-4.hex +++ b/spd/lp5/set-1/spd-4.hex @@ -1,11 +1,11 @@ 23 11 13 0E 85 21 F9 18 00 40 00 00 09 02 00 00 -00 00 03 00 00 00 00 00 2B 00 90 A8 90 90 06 C0 +00 00 03 00 00 00 00 00 2C 00 90 A8 90 90 06 C0 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 B9 00 C1 00 00 +00 00 00 00 00 00 00 00 00 00 00 C9 00 F4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/spd/lp5/set-1/spd-5.hex b/spd/lp5/set-1/spd-5.hex index 1bb8da178f..2cd3e1dedd 100644 --- a/spd/lp5/set-1/spd-5.hex +++ b/spd/lp5/set-1/spd-5.hex @@ -1,6 +1,6 @@ -23 11 13 0E 85 19 95 18 00 40 00 00 02 02 00 00 -00 00 03 00 00 00 00 00 2C 00 90 A8 90 90 06 C0 -03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +23 11 13 0E 86 21 B5 18 00 40 00 00 0A 02 00 00 +00 00 03 00 00 00 00 00 2C 00 90 A8 90 C0 08 60 +04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/spd/lp5/set-1/spd-6.hex b/spd/lp5/set-1/spd-6.hex deleted file mode 100644 index da2001a858..0000000000 --- a/spd/lp5/set-1/spd-6.hex +++ /dev/null @@ -1,32 +0,0 @@ -23 11 13 0E 86 21 B5 18 00 40 00 00 0A 02 00 00 -00 00 03 00 00 00 00 00 2B 00 90 A8 90 C0 08 60 -04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 B9 00 C1 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 -20 20 20 20 20 20 20 20 20 20 20 20 20 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/util/spd_tools/src/spd_gen/lp5.go b/util/spd_tools/src/spd_gen/lp5.go index 0b3a5adae1..64fb53fbe2 100644 --- a/util/spd_tools/src/spd_gen/lp5.go +++ b/util/spd_tools/src/spd_gen/lp5.go @@ -70,6 +70,7 @@ type LP5Set struct { otherOptionalFeatures byte busWidthEncoding byte speedToTCKMinPs map[int]int + maxSpeedMbps int } /* ------------------------------------------------------------------------------------------ */ @@ -194,7 +195,7 @@ var LP5SetInfo = map[int]LP5Set{ * 2:0 (Bus width) = 001 (x16 always) * Set to 0x01. */ - busWidthEncoding: 0x01, + busWidthEncoding: 0x01, /* * TCKMinPs: * LPDDR5 has two clocks: the command/address clock (CK) and the data clock (WCK). They are @@ -208,7 +209,7 @@ var LP5SetInfo = map[int]LP5Set{ 7500 : 1066, /* 1 / (7500 / 2 / 4) */ 6400 : 1250, /* 1 / (6400 / 2 / 4) */ 5500 : 1455, /* 1 / (5500 / 2 / 4) */ - }, + }, }, 1: { SPDRevision: LP5SPDValueRevision1_1, @@ -219,13 +220,13 @@ var LP5SetInfo = map[int]LP5Set{ * 3:0 (Maximum Activate Count) = 1000 (Unlimited MAC) * Set to 0x18. */ - optionalFeatures: 0x18, + optionalFeatures: 0x18, /* * For Sabrina (as per advisory b/211510456): * 7:6 (PPR) = 1 (Post Package Repair is supported) * Set to 0x40. */ - otherOptionalFeatures: 0x40, + otherOptionalFeatures: 0x40, /* * For Sabrina (as per advisory b/211510456): * 7:5 (Number of system channels) = 000 (1 channel always) @@ -233,7 +234,9 @@ var LP5SetInfo = map[int]LP5Set{ * 2:0 (Bus width) = 010 (x32 always) * Set to 0x02. */ - busWidthEncoding: 0x02, + busWidthEncoding: 0x02, + /* Sabrina supports max speed of 5500 MT/s */ + maxSpeedMbps: 5500, }, } @@ -637,6 +640,14 @@ func LP5EncodeTRFCPBMinLsb(memAttribs *LP5MemAttributes) byte { return byte(convNsToMtb(memAttribs.TRFCPBNs) & 0xff) } +func LP5UpdateSpeedMbps(memAttribs *LP5MemAttributes) { + f, ok := LP5SetInfo[LP5CurrSet] + + if ok && f.maxSpeedMbps != 0 && memAttribs.SpeedMbps > f.maxSpeedMbps { + memAttribs.SpeedMbps = f.maxSpeedMbps + } +} + func LP5UpdateTCKMin(memAttribs *LP5MemAttributes) { if memAttribs.TCKMinPs == 0 { memAttribs.TCKMinPs = LP5GetTCKMinPs(memAttribs) @@ -684,6 +695,7 @@ func LP5UpdateTRPPB(memAttribs *LP5MemAttributes) { } func lp5UpdateMemoryAttributes(memAttribs *LP5MemAttributes) { + LP5UpdateSpeedMbps(memAttribs) LP5UpdateTCKMin(memAttribs) LP5UpdateTAAMin(memAttribs) LP5UpdateTRFCAB(memAttribs) -- cgit v1.2.3