From 6bb4afb2f024f0c99597f22b4f7490b8c8247dd1 Mon Sep 17 00:00:00 2001 From: Florin9doi Date: Sat, 23 Nov 2019 17:33:01 +0200 Subject: [PATCH] Use ExtendedSize when injecting memory modules from config --- rEFIt_UEFI/Platform/smbios.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/rEFIt_UEFI/Platform/smbios.c b/rEFIt_UEFI/Platform/smbios.c index c605a1653..457bb6cbf 100644 --- a/rEFIt_UEFI/Platform/smbios.c +++ b/rEFIt_UEFI/Platform/smbios.c @@ -1361,14 +1361,20 @@ VOID PatchTableType17() UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type17->PartNumber, "unknown"); } newSmbiosTable.Type17->Speed = (UINT16)gRAM.User[UserIndex].Frequency; - newSmbiosTable.Type17->Size = (UINT16)gRAM.User[UserIndex].ModuleSize; + if (gRAM.User[UserIndex].ModuleSize > 0x7FFF) { + newSmbiosTable.Type17->Size = 0x7FFF; + newSmbiosTable.Type17->ExtendedSize = gRAM.User[UserIndex].ModuleSize; + } else { + newSmbiosTable.Type17->Size = (UINT16)gRAM.User[UserIndex].ModuleSize; + } newSmbiosTable.Type17->MemoryType = gRAM.User[UserIndex].Type; if ((newSmbiosTable.Type17->MemoryType != MemoryTypeDdr2) && (newSmbiosTable.Type17->MemoryType != MemoryTypeDdr4) && (newSmbiosTable.Type17->MemoryType != MemoryTypeDdr)) { newSmbiosTable.Type17->MemoryType = MemoryTypeDdr3; } - DBG("%a %a %dMHz %dMB\n", bankLocator, deviceLocator, newSmbiosTable.Type17->Speed, newSmbiosTable.Type17->Size); + DBG("%a %a %dMHz %dMB(Ext:%dMB)\n", bankLocator, deviceLocator, newSmbiosTable.Type17->Speed, + newSmbiosTable.Type17->Size, newSmbiosTable.Type17->ExtendedSize); mTotalSystemMemory += newSmbiosTable.Type17->Size; //Mb mMemory17[gRAMCount] = (UINT16)mTotalSystemMemory; // DBG("mTotalSystemMemory = %d\n", mTotalSystemMemory);