From a01cdc54b3eda73dbe92a5ca4eb290e522c4100d Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Thu, 10 Dec 2020 15:51:32 -0500 Subject: [PATCH] Fix support for 3DS DIMM capacity 3DS dimms must have logical ranks by modifying ranks with data from byte 6. Change-Id: If1fe788302cac07998ca841851c645c8e4694b65 --- pyghmi/ipmi/private/spd.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pyghmi/ipmi/private/spd.py b/pyghmi/ipmi/private/spd.py index 4de38d9b..5acf45a4 100644 --- a/pyghmi/ipmi/private/spd.py +++ b/pyghmi/ipmi/private/spd.py @@ -755,6 +755,8 @@ class SPD(object): buswidth = ddr3_bus_width[spd[13] & 0b111] sdramwidth = ddr3_dev_width[spd[12] & 0b111] ranks = ddr3_ranks[(spd[12] & 0b111000) >> 3] + if spd[6] & 0b11 == 0b10: + ranks = ranks * (((spd[6] >> 4) & 0b111) + 1) self.info['capacity_mb'] = sdramcap / 8 * buswidth / sdramwidth * ranks self.info['manufacturer'] = decode_manufacturer(spd[320], spd[321]) self.info['manufacture_location'] = spd[322]