smbios(1M) interprets jedec IDs incorrectly
While on a system with SMBIOS 3.2 support, I noticed that we actually had a Jedec ID for the memory module in smbios(1M); however, it wasn't reporting it as a string. I manually decoded it with libjedec and found that we did actually have the right information; however, the problem was that the way that smbios(1M) was transforming the data into continuations was off. I had misinterpreted the spec and had basically swapped the continuation and vendor indicators. This fixes this up and indicates the ID as the combination. So, for example, you used to see:
smbios -i 52 ID SIZE TYPE 52 159 SMB_TYPE_MEMDEVICE (type 17) (memory device) ... Module Manufacturer ID: 0x2c80 ...
Instead, you now see (and for all other Jedec derived fields):
smbios -i 52 ID SIZE TYPE 52 159 SMB_TYPE_MEMDEVICE (type 17) (memory device) ... Module Manufacturer ID: Bank: 0x1 Vendor: 0x2c (Micron Technology) ...
I tested this manually on the system and also verified that the smbios and libjedec test suites were still good.
Updated by Electric Monk about 2 years ago
- Status changed from New to Closed
- % Done changed from 90 to 100
commit 9f9cceb6f1158940244c35cecdbc93f9a386a4b8 Author: Robert Mustacchi <email@example.com> Date: 2020-05-01T01:53:20.000Z 12662 smbios(1M) interprets jedec IDs incorrectly 12664 fix smbios memory technology operating mode capabilities Reviewed by: Yuri Pankov <firstname.lastname@example.org> Reviewed by: Toomas Soome <email@example.com> Reviewed by: Paul Winder <firstname.lastname@example.org> Reviewed by: Gergo Doma <email@example.com> Approved by: Gordon Ross <firstname.lastname@example.org>