Project

General

Profile

Actions

Support #585

open

acpi MSDM / SLIC table usage?

Added by Walter Sonius 11 days ago. Updated 2 days ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
Documentation
Target version:
Start date:
03/20/2025
Due date:
% Done:

0%

Estimated time:
Affected versions:
Needs backport to:
Affected hardware:
Affected OS:
Windows 8 Pro / Windows 10 Pro

Description

What option(s) does one need to compile this feature into a coreboot & edk2 build and where does one put the slic_file and in what format?

Couldn't find anything in the documentation nor the commits that introduce MSDM/SLIC support:
https://review.coreboot.org/c/coreboot/+/44995
https://review.coreboot.org/c/coreboot/+/7202

Actions #1

Updated by Keith Hui 9 days ago

The second link would have most of your answers. First you need select HAVE_ACPI_SLIC in your Kconfig, then incorporate the actual SLIC file into the image using cbfstool as fallback/slic, raw.

Actions #2

Updated by Walter Sonius 9 days ago

Just installed a Windows 10 Pro 22H2 (manually selected PRO version during install) using the Original OEM v3.08 BIOS (UEFI mode) and it got activated online with the new Xeon e3-1225v2 CPU. Since that is legitimate and confirmed I will try to extract the SLIC/MSDM ACPI table and will try to insert it into the coreboot edk2 and re-test install/activation again.

Actions #3

Updated by Walter Sonius 9 days ago

Extracted using dd both MSDM and SLIC from /sys/firmware/acpi/tables/ and put select HAVE_ACPI_SLIC in the srs/mainboard/hp/snb_ivb_desktops/Kconfig in the common board section. Should this give an option in make menuconfig where I can give a file/folder location for slic_file similar like the Flash_descriptor, ME and GBE region.

Or can I just use cbfstool on a image without this Kconfig option with some foo cbfstool currentokcb.rom add -f SLIC -n fallback,slic -t raw?

Actions #4

Updated by Nicholas Chin 8 days ago

Walter Sonius wrote in #note-3:

Extracted using dd both MSDM and SLIC from /sys/firmware/acpi/tables/ and put select HAVE_ACPI_SLIC in the srs/mainboard/hp/snb_ivb_desktops/Kconfig in the common board section. Should this give an option in make menuconfig where I can give a file/folder location for slic_file similar like the Flash_descriptor, ME and GBE region.

The code in https://review.coreboot.org/c/coreboot/+/7202 actually removed the HAVE_ACPI_SLIC option. It seems like that option was originally added to enable C code which would generate the SLIC table based on data added in an array. CB:7202 removed the need for the C code and made it so that it just reads the raw SLIC table from fallback/slic.

Or can I just use cbfstool on a image without this Kconfig option with some foo cbfstool currentokcb.rom add -f SLIC -n fallback,slic -t raw?

Yes, that cbfstool command seems like it should work (it's fallback/slic though, not fallback,slic)

Actions #5

Updated by Walter Sonius 8 days ago

Just tried to add the SLIC file to the existing coreboot tianocore image build without select HAVE_ACPI_SLIC and re-installed W10 Pro but it wouldn't activate.
cbfstool currentok.rom add -f SLIC -n fallback/slic -t raw
It gives an error code 0xC004F213, after that also tried adding the MSDM as a additional raw payload but that gave error 0x803f7001.
cbfstool currentokslic.rom add -f MSDM -n fallback/msdm -t raw

If you have both SLIC and MSDM should both be applied, or does the HAVE_ACPI_SLIC create somekind of reference/link to the added fallback files?

Actions #6

Updated by Nicholas Chin 8 days ago

Walter Sonius wrote in #note-5:

Just tried to add the SLIC file to the existing coreboot tianocore image build without select HAVE_ACPI_SLIC and re-installed W10 Pro but it wouldn't activate.

From some research it seems like SLIC isn't directly used to activate a copy of Windows but is instead used to authenticate an OEM product key for offline activation. Apparently you still need to enter in the product key when SLIC is being used. MSDM on the other hand does just contain a product key. It also seems like SLIC is only used on Windows 7 and older, whereas 8 and newer need MSDM.

cbfstool currentok.rom add -f SLIC -n fallback/slic -t raw
It gives an error code 0xC004F213, after that also tried adding the MSDM as a additional raw payload but that gave error 0x803f7001.
cbfstool currentokslic.rom add -f MSDM -n fallback/msdm -t raw

Looking through the code, coreboot doesn't support a fallback/msdm file. Instead, fallback/slic can be either a SLIC table or an MSDM table. So if should be something like cbfstool currentok.rom add -f MSDM -n fallback/slic -t raw. I'm assuming that MSDM file from the command you tried is /sys/firmware/acpi/tables/MSDM?

If you have both SLIC and MSDM should both be applied, or does the HAVE_ACPI_SLIC create somekind of reference/link to the added fallback files?

As I mentioned before, HAVE_ACPI_SLIC no longer exists as it was removed in CB:7202 due to the new code making it unnecessary.

Actions #7

Updated by Walter Sonius 8 days ago

Nicholas Chin wrote in #note-6:

Looking through the code, coreboot doesn't support a fallback/msdm file. Instead, fallback/slic can be either a SLIC table or an MSDM table. So if should be something like cbfstool currentok.rom add -f MSDM -n fallback/slic -t raw. I'm assuming that MSDM file from the command you tried is /sys/firmware/acpi/tables/MSDM?

Using that code indeed reveals a /sys/firmware/acpi/tables/MSDM table in Linux with the same hash as OEM firmware, however this machine is from the Windows 7 or early "free upgrade" Windows 8 era. During Windows 10 install on the original OEM Firmware it wasn't able to detect its own version (Pro/Home) from the internal SLIC/MSDM so it prompted me to manually selected Pro or fill in a product key. I selected Pro and let Windows 10 do its own online activation probably by a mix of hardware/firmware components, without ever filling a product key. But with coreboot a lot of the internals and OEM naming changed.

Currently with your tip by using MSDM>SLIC, this behavior is still the same for the EDK2 booted Windows 10 installer as for the OEM, it is still not able to detect its own version and I can select or fill in product key.

LOL... just tried to fill in the product key from the MSDM file by hand during install and it says it is not valid!

So it might have been activated before with a automatic online check, maybe based on a different product key?

Actions #8

Updated by Walter Sonius 2 days ago

Also tested Windows 8.1 DVD, which behaves the same as the Windows 10 22H2 DVD it will ask for a key and reject it. Since the Windows 7 DVD's I tried will not boot reliable on both corebooted EDK2 as well as OEM BIOS I'd rather spare my and other peoples time and stop the current Windows activation effort for this 'pro_6300_sff'.

For future intel H81 / Q170 coreboot ports I already have both working OEM MSDM serials which will get correctly detected during install so its better to implement and check this SLIC/MSDM coreboot feature with those newer machines if the coreboot port will succeed.

Thanks for the input sofar, feel free to close this topic since the method to use the SLIC/MSDM has been cleared up.

Actions

Also available in: Atom PDF