Patrick Rudolph uploaded patch set #2 to this change.

View Change

smbios: Fix type 17 for Windows 10

This fixes an issue observed on Windows 10 where the
GetPhysicallyInstalledSystemMemory API call returned an error due to
invalid SMBIOS tables. Various tools use this API call and doesn't
operate properly if this fails, for example the
"Intel Processor Diagnostic Tool".
Windows then guesses the physical memory by accumulating entries from
the memory map provided by the firmware.

To fix this issue add the handle to a type 16 entry to all type 17
entries.

Add new fields to struct memory_info and fill them in Intel common code.
Use the introduces variables to fill type 16 in smbios.c and provide
a handle to type 17 entries.

Besides keeping the current behaviour on intel/soc/common platforms, the
type 16 table is also emitted on platforms that doesn't explicitly fill
it, by using the existing fields of struct memory_info.

Tested on Windows 10:
The GetPhysicallyInstalledSystemMemory API call doesn't return an error
any more and the installed memory is now being reported as 8192MiB.

Change-Id: Idc3a363cbc3d0654dafd4176c4f4af9005210f42
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
---
M src/arch/x86/smbios.c
M src/include/memory_info.h
M src/soc/intel/common/block/systemagent/systemagent.c
3 files changed, 93 insertions(+), 56 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/69/43969/2

To view, visit change 43969. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Idc3a363cbc3d0654dafd4176c4f4af9005210f42
Gerrit-Change-Number: 43969
Gerrit-PatchSet: 2
Gerrit-Owner: Patrick Rudolph <patrick.rudolph@9elements.com>
Gerrit-Reviewer: Patrick Rudolph <siro@das-labor.org>
Gerrit-MessageType: newpatchset