Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CoffeeLakeFspBinPkg: FSP-M hangs if no IGD present #49

Closed
walterchris opened this issue Mar 11, 2020 · 4 comments
Closed

CoffeeLakeFspBinPkg: FSP-M hangs if no IGD present #49

walterchris opened this issue Mar 11, 2020 · 4 comments

Comments

@walterchris
Copy link

Hi,
we observed the behaviour that if we do not have a IGD present the FSP-M seems to hang in coreboot. The last Postcode that we see is 0xda50 which is according to the Integration Guide "Initializing Graphics". We turned the graphics off via the UPD options InternalGfx = 0 and set IgdDvmt50PreAlloc to 0. Does it has been tested on CPUs without IGD yet? Do we have to set more UPDs in order to make it work without IGD?

@nate-desimone

@nate-desimone
Copy link
Contributor

Hi @walterchris, it should work as far as I can see. It looks like as long as the read from PCI device 0:2:0 offset 0x0 (aka the vendor ID for the internal graphics device) returns 0xFFFF then the graphics init routine should return and do nothing.

My understanding is that the fusing on those Gfx disabled parts should cause 0:2:0 to not exist. Can you check if reading from that location in PCI config space returns 0xFFFF for me?

@walterchris
Copy link
Author

HI @nate-desimone
I will check the PCI config space. Also I noticed if I disable InternalGfx (Setting the UPD InternalGfx to 0) it also hangs in the FSPM with a CPU which has IGD on it. I also set IgdDvmt50PreAlloc to 0. Any ideas on that behaviour?

@walterchris
Copy link
Author

Looks like if no IGD is available, also PanelPowerEnable needs to be set to zero. @nate-desimone

coreboot-org-bot pushed a commit to coreboot/coreboot that referenced this issue Apr 9, 2020
Set IgdDvmt50PreAlloc to zero if InternalGfx is disabled. It's 'correct'
to do it like this, otherwise the FSP would always allocate memory for
the IGD even if it is disabled. In addition the FSP enables the graphics
panel power even if no IGD is present which leads to a crashing FSP.
Thus, if no IGD is present we switch off the panel via UPDs.

Refer to this issue on IntelFSP for details:
intel/FSP#49

Tested on:
* CFL platform with IGD
* CFL platform without IGD

Change-Id: I6f9e0f9855224614471d8ed23bf2a9786386ddca
Signed-off-by: Christian Walter <christian.walter@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/39454
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Nico Huber <nico.h@gmx.de>
@nate-desimone
Copy link
Contributor

@walterchris, Good Catch! I have implemented the fix for it. It is available starting with 201b361 (Coffee Lake FSP 7.0.74.20). Can you try the new FSP and see if the issue is resolved?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants