Issue #617 has been updated by gaspar ilom.
gaspar ilom wrote in #note-12: > Maximilian Brune wrote in #note-11: > > Did you set CBFS_SIZE too high? > > Yes, the fix mentioned in the OP > https://github.com/linuxboot/heads/pull/2025/commits/9b8b9cacdcea4f67c95dcec10b3153fc8c016940#diff-1146a022e2f557c41a3dc6d3b64c91c0891197c91163f30d80095f4d64ecab19 > is not included so `CBFS_SIZE` is 0xBE4FFF where it should be 0xBDF000. > However, this an incorrect size was also set for the sandy/ivy bridge boards > (all 4+8MB SPI boards). The build only fails for the haswell boards as can be > seen here, though: > https://app.circleci.com/pipelines/circleci/MHXxJnuGL1oVD9jaDwEAGo/Kguuk4Rjpkd7hBpYBWhVuN/127/workflows/01a6f970-8d76-4e24-bb5c-b000109a4cbf > > I have cherry-picked > https://github.com/linuxboot/heads/pull/2025/commits/9b8b9cacdcea4f67c95dcec10b3153fc8c016940 > to fix the size and build again. Build is happening here. Let's see if the > boards build now: > https://app.circleci.com/pipelines/github/gaspar-ilom/heads/58/workflows/94de47ac-a749-4dde-ac15-5b5e87341271 I updated the link to the CI run as the original run failed (it is flaky) and the rerun succeeded: https://app.circleci.com/pipelines/github/gaspar-ilom/heads/58/workflows/94de47ac-a749-4dde-ac15-5b5e87341271 The result is that with the correct CBFS_SIZE the boards build successfully. So the main remaining issues now are: * The error message could be improved to make it clear what is going wrong. * The code for validating the IFD that is run by default with your original patch is never reached: https://review.coreboot.org/c/coreboot/+/73470 This is also why the error message is not as helpful as it could be. * For some reason only older boards (Intel 4th Gen) pass validation even if CBFS_SIZE does not match the size in the IFD. This happens even when explicitly selecting `VALIDATE_INTEL_DESCRIPTOR`. Here's another (force-pushed) run on my branch: * All boards with 4+8MB chips have a CBFS_SIZE greater than the bios region in the IFD * T430 and W541 have `VALIDATE_INTEL_DESCRIPTOR` selected. * Seems like both haswell boards (T440p and W541) fail with the SI_ME region error. * However, older boars T430 and X230 both succeed. Although, both have an invalid CBFS_SIZE and t430 has `VALIDATE_INTEL_DESCRIPTOR` set https://app.circleci.com/pipelines/github/gaspar-ilom/heads/59/workflows/2ab3cc00-0fed-40a8-a325-ae6cb0b99c3c To me all of this seems really inconsistent. Why does the t430 succeed with a too high CBFS_SIZE? and why does the t440p fail even though validation should not happen? What are the platform specific differences that cause this? sizes of the blobs paylod etc? ---------------------------------------- Bug #617: Missing safeguard: CBFS_SIZE greater than BIOS region in the IFD https://ticket.coreboot.org/issues/617#change-2192 * Author: gaspar ilom * Status: New * Priority: Normal * Target version: none * Start date: 2025-11-14 * Affected versions: main * Affected hardware: haswell ---------------------------------------- There are no effective safeguards to enforce that the `CONFIG_CBFS_SIZE` does not exceed the bios region as declared in the IFD. ### Impact - Downstream under Heads with a maximized bios region for the Haswell boards (T440p and W541) we could verify that this bug leads to an overflow when training the memory cache that makes it not work. This happens both with MRC blob and NRI and causes very slow boot times (20s) and S3 suspend/resume does not work. - Effects on other boards have not been observed but are possible. ### Expected behavior Coreboot should not build successfully if the `CBFS_SIZE` exceeds the bios region in the IFD and error out reporting the problem that caused this. ## Analysis Full details are under the PR in Heads and in particular this comment by @tlaurion https://github.com/linuxboot/heads/pull/2025/#issuecomment-3524672338 Ifttool reports a bios region of 0xBDEFFF (BDEFFF). However, the coreboot config contained: ``` CONFIG_CBFS_SIZE=0xBE4FFF ``` ``` ./build/x86/coreboot-25.09/util/ifdtool/ifdtool --platform ifd2 --layout w541_layout blobs/w541/ifd.bin && cat w541_layout File blobs/w541/ifd.bin is 4096 bytes Wrote layout to w541_layout 00000000:00000fff fd 00021000:00bfffff bios 00003000:00020fff me 00001000:00002fff gbe ``` After fixing the `CONFIG_CBFS_SIZE` the issues were fixed and fast boot with trained memory cache and S3 suspen/resume work again with NRI: https://github.com/linuxboot/heads/pull/2025/commits/9b8b9cacdcea4f67c95dcec10b3153fc8c016940 -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: https://ticket.coreboot.org/my/account _______________________________________________ coreboot mailing list -- [email protected] To unsubscribe send an email to [email protected]

