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 <kramasub@google.com> Change-Id: Ie3507898167012e0d812c9b1aacba72e9055fcd8 Reviewed-on: https://review.coreboot.org/c/coreboot/+/65708 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
This commit is contained in:
parent
be8cd6ba61
commit
d5ea355c73
|
@ -1,6 +1,6 @@
|
||||||
# Generated by:
|
# Generated by:
|
||||||
# util/spd_tools/bin/spd_gen spd/lp5/memory_parts.json lp5
|
# util/spd_tools/bin/spd_gen spd/lp5/memory_parts.json lp5
|
||||||
|
|
||||||
ADL,set-0
|
|
||||||
MTL,set-0
|
MTL,set-0
|
||||||
|
ADL,set-0
|
||||||
SBR,set-1
|
SBR,set-1
|
||||||
|
|
|
@ -7,8 +7,8 @@ H9JCNNNCP3MLYR-N6E,spd-2.hex
|
||||||
K3LKBKB0BM-MGCP,spd-3.hex
|
K3LKBKB0BM-MGCP,spd-3.hex
|
||||||
H9JCNNNBK3MLYR-N6E,spd-1.hex
|
H9JCNNNBK3MLYR-N6E,spd-1.hex
|
||||||
MT62F2G32D8DR-031 WT:B,spd-4.hex
|
MT62F2G32D8DR-031 WT:B,spd-4.hex
|
||||||
K3LKLKL0EM-MGCN,spd-5.hex
|
K3LKLKL0EM-MGCN,spd-1.hex
|
||||||
H58G56AK6BX069,spd-3.hex
|
H58G56AK6BX069,spd-3.hex
|
||||||
MT62F1G32D4DS-031 WT:B,spd-2.hex
|
MT62F1G32D4DS-031 WT:B,spd-2.hex
|
||||||
K3LKCKC0BM-MGCP,spd-6.hex
|
K3LKCKC0BM-MGCP,spd-5.hex
|
||||||
MT62F1G32D2DS-026 WT:B,spd-7.hex
|
MT62F1G32D2DS-026 WT:B,spd-3.hex
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
23 11 13 0E 85 19 95 18 00 40 00 00 02 02 00 00
|
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
|
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 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 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
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
23 11 13 0E 85 19 B5 18 00 40 00 00 0A 02 00 00
|
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
|
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 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 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
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
23 11 13 0E 86 21 95 18 00 40 00 00 02 02 00 00
|
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
|
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 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 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
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
23 11 13 0E 85 21 F9 18 00 40 00 00 09 02 00 00
|
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
|
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 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 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
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
23 11 13 0E 85 19 95 18 00 40 00 00 02 02 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 90 06 C0
|
00 00 03 00 00 00 00 00 2C 00 90 A8 90 C0 08 60
|
||||||
03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
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 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
|
|
@ -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
|
|
|
@ -70,6 +70,7 @@ type LP5Set struct {
|
||||||
otherOptionalFeatures byte
|
otherOptionalFeatures byte
|
||||||
busWidthEncoding byte
|
busWidthEncoding byte
|
||||||
speedToTCKMinPs map[int]int
|
speedToTCKMinPs map[int]int
|
||||||
|
maxSpeedMbps int
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------------------------ */
|
/* ------------------------------------------------------------------------------------------ */
|
||||||
|
@ -194,7 +195,7 @@ var LP5SetInfo = map[int]LP5Set{
|
||||||
* 2:0 (Bus width) = 001 (x16 always)
|
* 2:0 (Bus width) = 001 (x16 always)
|
||||||
* Set to 0x01.
|
* Set to 0x01.
|
||||||
*/
|
*/
|
||||||
busWidthEncoding: 0x01,
|
busWidthEncoding: 0x01,
|
||||||
/*
|
/*
|
||||||
* TCKMinPs:
|
* TCKMinPs:
|
||||||
* LPDDR5 has two clocks: the command/address clock (CK) and the data clock (WCK). They are
|
* 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) */
|
7500 : 1066, /* 1 / (7500 / 2 / 4) */
|
||||||
6400 : 1250, /* 1 / (6400 / 2 / 4) */
|
6400 : 1250, /* 1 / (6400 / 2 / 4) */
|
||||||
5500 : 1455, /* 1 / (5500 / 2 / 4) */
|
5500 : 1455, /* 1 / (5500 / 2 / 4) */
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
1: {
|
1: {
|
||||||
SPDRevision: LP5SPDValueRevision1_1,
|
SPDRevision: LP5SPDValueRevision1_1,
|
||||||
|
@ -219,13 +220,13 @@ var LP5SetInfo = map[int]LP5Set{
|
||||||
* 3:0 (Maximum Activate Count) = 1000 (Unlimited MAC)
|
* 3:0 (Maximum Activate Count) = 1000 (Unlimited MAC)
|
||||||
* Set to 0x18.
|
* Set to 0x18.
|
||||||
*/
|
*/
|
||||||
optionalFeatures: 0x18,
|
optionalFeatures: 0x18,
|
||||||
/*
|
/*
|
||||||
* For Sabrina (as per advisory b/211510456):
|
* For Sabrina (as per advisory b/211510456):
|
||||||
* 7:6 (PPR) = 1 (Post Package Repair is supported)
|
* 7:6 (PPR) = 1 (Post Package Repair is supported)
|
||||||
* Set to 0x40.
|
* Set to 0x40.
|
||||||
*/
|
*/
|
||||||
otherOptionalFeatures: 0x40,
|
otherOptionalFeatures: 0x40,
|
||||||
/*
|
/*
|
||||||
* For Sabrina (as per advisory b/211510456):
|
* For Sabrina (as per advisory b/211510456):
|
||||||
* 7:5 (Number of system channels) = 000 (1 channel always)
|
* 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)
|
* 2:0 (Bus width) = 010 (x32 always)
|
||||||
* Set to 0x02.
|
* 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)
|
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) {
|
func LP5UpdateTCKMin(memAttribs *LP5MemAttributes) {
|
||||||
if memAttribs.TCKMinPs == 0 {
|
if memAttribs.TCKMinPs == 0 {
|
||||||
memAttribs.TCKMinPs = LP5GetTCKMinPs(memAttribs)
|
memAttribs.TCKMinPs = LP5GetTCKMinPs(memAttribs)
|
||||||
|
@ -684,6 +695,7 @@ func LP5UpdateTRPPB(memAttribs *LP5MemAttributes) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func lp5UpdateMemoryAttributes(memAttribs *LP5MemAttributes) {
|
func lp5UpdateMemoryAttributes(memAttribs *LP5MemAttributes) {
|
||||||
|
LP5UpdateSpeedMbps(memAttribs)
|
||||||
LP5UpdateTCKMin(memAttribs)
|
LP5UpdateTCKMin(memAttribs)
|
||||||
LP5UpdateTAAMin(memAttribs)
|
LP5UpdateTAAMin(memAttribs)
|
||||||
LP5UpdateTRFCAB(memAttribs)
|
LP5UpdateTRFCAB(memAttribs)
|
||||||
|
|
Loading…
Reference in New Issue