-
Notifications
You must be signed in to change notification settings - Fork 128
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Missing important FSP Hob structs header files for EagleStreamFspBinPkg #102
Comments
Trying the current FSP with coreboot HEAD is completely broken on the board I am porting (Tyan S5652) and I think this is part of the reason. Please release updated headers, currently I'm seeing a number of strange issues that may be related to misinterpreted HOB blocks, including the inability to run option ROMs or boot a Linux payload, despite making it to EOP. |
Some discussion on the change you can reference from https://github.com/johnnylinwiwynn/Intel_AC_OSF |
@johnnylinwiwynn two questions (I actually had read some of that gerrit change's comments trying to get things working):
|
Looking at my romstage setup and changing some things to match Archer city seems to have fixed things, I believe this was either using XAPIC by default, or configuring CXL, I was able to boot a bzImage. Thanks for that! |
@65a great to hear that it got resolved on your side! You can then go to the coreboot channel and start discussions. There are many experienced and helpful folks there from all over the world :) If not you could also drop me an email if you need something related: |
For some unknown reasons FSP needs to revert a commit related to a TOCTOU security pcd configuration otherwise Linux payload will reset and cannot boot, but UEFI payload is not affected by this. The FSP pcd is Intel NDA. I can share more if you have Intel FSP source code NDA. I haven't tried to enable graphics since we use headless server only, but the community and firmware vender like 9elements, SysPro Consulting could help. |
I do not have an NDA, but thanks to your help I was able to boot a linux (also SeaBIOS but no keyboard, and u-boot with some issues) payload. I had success with XAPIC and late X2APIC (Called "XAPIC then X2APIC") mode, originally I was getting reboots in the default mode, but it may have also been some changes to try to configure CXL. I'll close my other issue , but it would still be nice if the FSP headers and Coreboot matched. |
As far as I can tell, Linux payload, and perhaps others, will only boot if coreboot is set to wipe memory. This results in one logged null pointer exception, but no other issues. |
TME is not working, as the policy part of the MSR is not programmed correctly. This may be a HOB/UPD issue, as copying Alderlake's coreboot init for TME doesn't produce any change. |
This is bad, let me try to reach out to my intel contact to fix this. |
Intel has root caused the issue with the TOCTOU mitigation & coreboot. A fix is currently under development and will be included in an upcoming FSP release. |
Great news! For what it's worth, I think the headers coreboot uses today do not match, especially the memory hob. For instance, the binary dump of the hob data shows things like the module serial numbers, but coreboot doesn't see this, and most DIMMs have the present boolean set to false. Another example is that SNC is apparently enabled, even though it shouldn't be (wasn't requested) and TME is configured improperly. This seems like the structs on the coreboot side do not match the actual hob, so there's a memory safety issue. Publishing the actual HOB structs as returned by the FSP would help in these cases, but glad you are also looking at the reset/TOCTOU issue. |
Amazing. Thank you! |
@nate-desimone It has been 4 months now per your last update. Any update? :) |
+1, still very interested in updated headers and any fixed FSP. This thread seems to be now a mixture of TOCTOU and Headers discussion, I want to focus on the headers (For TOCTOU mitigation mitigation, I had success enabling Coreboot's Public headers are old problem: The current headers available publicly are subtly wrong and create a memory safety risk when used with the public FSP. What I mean by that is: Coreboot code:
Prints the hob data based on the structs in the current publicly available header. On a (thankfully) booting system with 16 dimms and an HBM Xeon Max, this code prints (during last HOB handoff, earlier are no better):
Whatever bit happens to be at Really hopeful that Intel can release a matching FSP and header set, and thank you! |
@65a |
@LeanSheng Thank you for your kind offer. I will wait for the public release, as I am not interested in the NDA. Looking forward to when this is updated! Glad to hear Intel is working on it :) |
For other folks who are also waiting patiently, I've experimentally confirmed the current coreboot hobs are incorrect. To fix the DIMM detection issue, This will fix the dimm detection and return the correct DIMM info. This also confirms that coreboot with the current FSP and headers combo is exhibiting undefined behavior, which is a memory safety issue. Note that this value is experimentally determined, and it's probably unwise to trust that is the correct distribution of the additional bytes, but it works better than the current state...ymmv. There are some other issues, recommended to set |
We tentatively made fixes with below config (not merged yet) and look forward to evaluations. coreboot baseline - commit c52ffcede36658e7efd2b8d01d92e7e2eaaa12e7 + https://review.coreboot.org/c/coreboot/+/80360 3rdparty/fsp baseline - commit 15c0f7b + #115 3rdparty/intel-microcode baseline - commit 8ac9378a84879e81c503e09f344560b3dd7f72df |
DIMM info (and other HOBs) are working correctly as far as I can tell now. 2LM and 1LM memory both work as well. Didn't try TXT or SGX. TME doesn't seem to work still (thought maybe Upd was wrong, but maybe it is a precondition issue, as the MSR is locked to disabled state by FSP). As far as the title of this bug, seems fixed from here. Thanks for the update. |
EagleStreamFspBinPkg/Include only provides UPD header files for FSP input interface for the bootloader, but doesn't provide any important Hob struct header files for the FSP output interface. Running
"find -iname hob.h" I can see there are quite many Hob header files for Client FSP, such as
/AlderLakeFspBinPkg/Client/AlderLakeS/Include/FirmwareVersionInfoHob.h
./AlderLakeFspBinPkg/Client/AlderLakeS/Include/MemInfoHob.h
./AlderLakeFspBinPkg/Client/AlderLakeS/Include/FspInfoHob.h
./AlderLakeFspBinPkg/Client/AlderLakeS/Include/SmbiosCacheInfoHob.h
Can Intel please also release the needed Hob header files for EagleStreamFspBinPkg? For example, these are the Hob header files for WW43 2022 EGS FSP:
https://review.coreboot.org/plugins/gitiles/coreboot/+/refs/heads/main/src/vendorcode/intel/fsp/fsp2_0/sapphirerapids_sp/
Thanks.
The text was updated successfully, but these errors were encountered: