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

pc_intel_fb_drv: driver hang at boot time #5207

Open
a-dmg opened this issue May 4, 2024 · 0 comments
Open

pc_intel_fb_drv: driver hang at boot time #5207

a-dmg opened this issue May 4, 2024 · 0 comments

Comments

@a-dmg
Copy link
Contributor

a-dmg commented May 4, 2024

Dear Genodians,

While testing sculpt-24.04 on my Razer Blade 15, Sculpt would be stuck on the Genode logo at boot time. After some investigation, the pc_intel_fb_drv hangs very early during initialization, resulting in no framebuffer available.

This computer possesses an Intel i7 8th generation with an integrated GPU and a supplementary Nvidia discreet GPU.

During startup, the following devices are listed in the platform session of the intel_gpu_drv:

<devices>
	<device name="00:02.0" type="pci" used="true">
		<io_mem pci_bar="0" phys_addr="0xab000000" size="0x1000000"/>
		<io_mem pci_bar="2" phys_addr="0x40000000" size="0x10000000"/>
		<irq number="4"/>
		<io_port_range pci_bar="4" phys_addr="0x5000" size="0x40"/>
		<pci-config vendor_id="0x8086" device_id="0x3e9b" class="0x30000" revision="0x0" sub_vendor_id="0x1a58" sub_device_id="0x2001" intel_gmch_control="0x1c1"/>
	</device>
	<device name="00:1f.0" type="pci" used="false">
		<pci-config vendor_id="0x8086" device_id="0xa30d" class="0x60100" revision="0x10" sub_vendor_id="0xffff" sub_device_id="0xffff"/>
	</device>
	<device name="01:00.0" type="pci" used="false">
		<io_mem pci_bar="0" phys_addr="0xac000000" size="0x1000000"/>
		<io_mem pci_bar="1" phys_addr="0x80000000" size="0x10000000"/>
		<io_mem pci_bar="3" phys_addr="0x90000000" size="0x2000000"/>
		<irq number="14"/>
		<io_port_range pci_bar="5" phys_addr="0x4000" size="0x80"/>
		<pci-config vendor_id="0x10de" device_id="0x1c20" class="0x30000" revision="0xa1" sub_vendor_id="0x1a58" sub_device_id="0x2001"/>
	</device>
</devices>

You can notice the two Intel devices with vendor ID 0x8086 are expected. And one extra Nvidia device with vendor ID 0x10de. This extra device is due to the configuration of the platform driver, which handouts any devices of class VGA to the intel_gpu_drv.

<policy label_prefix="runtime -> intel_gpu" info="yes">
    <pci class="VGA"/>
    <pci class="ISABRIDGE"/>
</policy>

The driver will hang until the Nvidia GPU is ready, which never happens as this device is not operated by the intel_gpu_drv following Issue #5180 commit 53230d3 @alex-ab.

Please find attached a commit that addresses this issue by enforcing the delay only on devices with Intel's vendor ID 0x8086.

a-dmg added a commit to a-dmg/genode that referenced this issue May 4, 2024
This commit enforces the driver to only wait for devices with Intel's
vendors ID to be ready.

genodelabs#5207
chelmuth pushed a commit that referenced this issue May 7, 2024
This commit enforces the driver to only wait for devices with Intel's
vendors ID to be ready.

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

No branches or pull requests

2 participants