Am Tue, Sep 07, 2021 at 03:29:55PM -0400 schrieb Benjamin Doron:
Hi, The return value 0x80000007 is EFI_DEVICE_ERROR, which is unfortunately for us, not very specific.
Thank you very much, your detailed commentary enabled me to work trough the issue.
The schematics will be a big help to you, if you can get them. However, you can probably manage without them.
It seems some schematics are available commercially, but I tried to avoid that.
The relevant modules for setting FSP-M configuration are BoardConfigInitPreMem and possibly PlatformInitPreMem. Since the RCOMP
[...]
It seems the Acer board is indeed following the Intel reference implementation very closely. I wrote a small table of possible values, the ones you extracted and some others I found be hexdumping the PE file, and iterated over them in a bootloop, but always got the same DEVICE_ERROR.
Only after applying the Dq(s)Mapping (DqByteMapChX, DqsMapCpu2DramChX) from the Intel reference KabyLake board the result was FSP_SUCCESS!
By the way, according to the code you also may have an (unpopulated) SPD at 0x50 (0xA0 in the code, this is just because the SMBUS address was shifted 1 bit left into the 8-bit address form. They are equivalent).
Corrected.
You also may need to set CaVrefConfig. "2" should be the correct value for DDR4. You should probably check that DqPinsInterleaved is correct, it's easiest if you can get this from the schematics.
Corrected (it was 0).
So that is already a good result. The Laptop booted right up through SeaBIOS into Linux. Now the task is to fix the ACPI / PCI configuration. Obviously a lot of devices on PCI / SMBUS are still missing.
The devicetree I can figure my way around, and hack together a basic one that enables all necessary ports and devices, I guess.
But I am a bit lost regarding the ACPI tables. What is necessary, and is there a way to read the vendor tables and use them?
Best regards, Benjamin
Thanks again,
Andreas