[coreboot - Bug #611] I2C Controllers fail to initialize under Win11 with top-down allocation on pre-FSP 2.0 platforms

Maximilian Brune <[email protected]>
Newsgroups gmane.linux.bios
Message-ID <[email protected]>
Issue #611 has been updated by Maximilian Brune.


For EDK2 upstream the RESOURCE_ALLOCATION_TOP_DOWN option is not default on.
I for example (on a recent AMD platform) have a problem in this function: https://github.com/tianocore/edk2/blob/80eaa563ec1cd2272334134d5fd35d856843fe65/UefiPayloadPkg/Library/PciHostBridgeLib/PciHostBridgeSupport.c#L208
It seems to assume all PCIe resources are continuous. And in my case they are not, because from top down the allocations are continuous, but there is a single device that has an allocation further down. And apparently that function just takes the lowest and highest resource and defines that as reserved MMIO space. I got kind of lucky because it asserts, since the ECAM address is directly between that and EDK2 notices it can reserve memory for it.

Maybe you hit a similar issue, but its more obfuscated in your case? In any case we should update the UEFIPayloadPkg function (hoping nothing else in EDK2 depends on it) to not assume a continuous MMIO space. It may also work to use ALWAYS_ALLOW_ABOVE_4G_ALLOCATION=y but I didn't try that yet.

----------------------------------------
Bug #611: I2C Controllers fail to initialize under Win11 with top-down allocation on pre-FSP 2.0 platforms
https://ticket.coreboot.org/issues/611#change-2151

* Author: Matt DeVillier
* Status: New
* Priority: Normal
* Category: coreboot common code
* Target version: none
* Start date: 2025-10-12
* Affected versions: main
----------------------------------------
When booting Win11 using edk2 payload and top-down resource allocation (which is now the default), pre-FSP 2.0 platforms all seem to have issues with the I2C controllers failing to initialize.

Windows Device Manager reports a Code 35 error:
Your computer's system firmware does not include enough information to properly configure and use this device. To use this device, contact your computer manufacturer to obtain a firmware or BIOS update.

Microsoft's support pages provide the following:

> Full Error Message
> 
> Your computer's system firmware does not include enough information to properly configure and use this device. To use this device, contact your computer manufacturer to obtain a firmware or BIOS update. (Code 35)
> 
> Cause
> 
> The Multiprocessor System (MPS) table, which stores the resource assignments for the BIOS, is missing an entry for your device and must be updated.
> 
> Recommended Resolution
> 
> Contact the manufacturer of your computer to update the BIOS. 

compiling with `RESOURCE_ALLOCATION_TOP_DOWN=n` resolves the issue

Tested on:
google/slippy (HSW)
google/auron (BSW)
google/rambi (BYT)
google/cyan (BSW)




-- 
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]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.