Support #585
openacpi MSDM / SLIC table usage?
0%
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
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.
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
?
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 putselect HAVE_ACPI_SLIC
in thesrs/mainboard/hp/snb_ivb_desktops/Kconfig
in the common board section. Should this give an option inmake menuconfig
where I can give a file/folder location forslic_file
similar like theFlash_descriptor
,ME
andGBE
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
)
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?
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.
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 likecbfstool 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?
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.