CachyOS / CachyOS/linux-cachyos
[BUG] Thunderbolt 5 JHL9480 eGPU PCIe bridge becomes inaccessible on ASUS Flow Z13 GZ302EA / Strix Halo
- Dominant language
- Shell
- Stars
- 4.5k
- Forks
- 160
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 1
Description
### Pre-flight checklist
- [x] I have searched existing issues and this is not a duplicate.
- [x] I have read the [Contributing Guidelines](https://github.com/CachyOS/linux-cachyos/blob/master/CONTRIBUTING.md).
- [x] I have verified the issue is reproducible with the latest available CachyOS kernel.
- [x] I have tried to reproduce the issue on Arch Linux's `linux` kernel.
### Upstream / vanilla kernel check
I have not tested with a vanilla/upstream kernel
### Kernel variant
linux-cachyos (EEVDF, Clang)
### System information (cachyos-bugreport.sh)
```text
cachyos-bugreport.sh:
https://paste.cachyos.org/p/a97b0b2.log
Relevant hardware / test configuration:
Laptop: ASUS ROG Flow Z13 GZ302EA
Platform: AMD Strix Halo
BIOS: GZ302EA.311, dated 08/01/2025
OS: CachyOS
Normal kernel tested: 7.2.2-1-cachyos
RC kernel also tested: 7.3.0-rc1-1-cachyos-rc
eGPU enclosure: GPD TBT5-EGPU
Thunderbolt controller/bridge: Intel JHL9480 Thunderbolt 5 80/120G (8086:5786)
GPU: NVIDIA GeForce RTX 4090 AD102 (10de:2684), MSI subsystem 1462:5100
```
### Manual system information (if cachyos-bugreport.sh is unavailable)
```text
Kernel: 7.2.2-1-cachyos
CPU/platform: AMD Ryzen AI Max+ / Strix Halo
Laptop: ASUS ROG Flow Z13 GZ302EA
GPU: NVIDIA GeForce RTX 4090 (AD102, PCI ID 10de:2684)
eGPU: GPD TBT5-EGPU
Thunderbolt/PCIe bridge: Intel JHL9480 Thunderbolt 5 80/120G (8086:5786)
Architecture: x86_64 / CachyOS znver4
NVIDIA driver: NVIDIA 610.57.04 / nvidia-open-dkms was installed during testing, but the failure also occurs before the NVIDIA GPU driver can successfully access the device.
Active kernel command line:
quiet nowatchdog splash rw rootflags=subvol=/@ root=UUID=daaf31ad-0930-4e3a-984b-4e63f96b3f2e amdgpu.dcdebugmask=0x40600 pcie_aspm=off
pcie_aspm=off is required because booting with the eGPU connected without it can crash the system.
```
### Bug description
On an ASUS ROG Flow Z13 GZ302EA (AMD Strix Halo), an NVIDIA RTX 4090 connected through a GPD TBT5-EGPU using an Intel JHL9480 Thunderbolt 5 bridge initially enumerates successfully during boot.
The kernel detects the RTX 4090, assigns its BARs, and creates the complete PCIe hierarchy. However, shortly afterward, the JHL9480 downstream PCIe bridge becomes inaccessible. Direct PCI configuration-space reads from the bridge return all 0xff, and the RTX 4090 below the bridge also returns all 0xff.
lspci can continue displaying the RTX 4090 because it was enumerated before the failure, but the actual device is no longer accessible and cannot be initialized by the NVIDIA driver.
The problem is reproducible on linux-cachyos 7.2.2-1-cachyos. I also observed the same PCI bridge accessibility failure while testing linux-cachyos-rc 7.3.0-rc1-1-cachyos-rc.
pcie_aspm=off is currently required because booting with the eGPU connected without it can crash the system.
The key observation is that this does not appear to be solely an NVIDIA driver problem: the Intel JHL9480 downstream PCIe bridge itself stops responding to PCI configuration-space accesses.
### Steps to reproduce
1. Power off the ASUS ROG Flow Z13 GZ302EA.
2. Connect and power on the GPD TBT5-EGPU containing the NVIDIA RTX 4090.
3. Boot CachyOS using linux-cachyos 7.2.2-1-cachyos with pcie_aspm=off.
4. After boot, run:
lspci -nn | grep -i nvidia
The RTX 4090 and its HDA function are listed, for example:
63:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD102 [GeForce RTX 4090] [10de:2684] (rev a1)
63:00.1 Audio device [0403]: NVIDIA Corporation AD102 High Definition Audio Controller [10de:22ba] (rev a1)
5. Inspect the PCI topology with:
lspci -tv
The GPU is below an Intel JHL9480 Thunderbolt 5 downstream PCIe bridge. PCI bus numbers can vary between boots.
6. Read the PCI configuration space of the JHL9480 downstream bridge, for example:
sudo cat /sys/bus/pci/devices/0000:62:00.0/config | od -Ax -tx1 -N 16
It returns:
000000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
000010
7. Read the RTX 4090 PCI configuration space:
sudo cat /sys/bus/pci/devices/0000:63:00.0/config | od -Ax -tx1 -N 16
It also returns:
000000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
000010
8. dmesg shows that the GPU and its BARs were successfully enumerated during early boot, followed later by device-inaccessible/power-state errors.
9. Rebooting reproduces the failure. PCI bus numbers may change between boots, but the same JHL9480 downstream bridge -> RTX 4090 failure occurs.
### Expected behavior
The Intel JHL9480 Thunderbolt 5 PCIe hierarchy should remain operational after initialization.
The JHL9480 downstream PCIe bridge should continue responding to PCI configuration-space accesses, and the RTX 4090 below it should remain accessible so that the NVIDIA driver can bind to and initialize the GPU.
PCI configuration-space reads from both the JHL9480 downstream bridge and RTX 4090 should return valid PCI configuration data rather than 0xff.
### Actual behavior
The JHL9480 PCIe hierarchy and RTX 4090 initially enumerate successfully during early boot. The kernel assigns BARs to the RTX 4090 and lspci subsequently lists both the GPU and its HDA function.
However, the JHL9480 downstream PCIe bridge later becomes inaccessible. Direct reads of its PCI configuration space return all 0xff.
The RTX 4090 below that bridge also becomes inaccessible and its PCI configuration-space reads return all 0xff.
lspci may continue listing the RTX 4090 because the device was enumerated earlier, even though the hardware is no longer accessible.
The kernel also reports errors such as:
snd_hda_intel 0000:63:00.1: Unable to change power state from D0 to D0, device inaccessible
snd_hda_intel 0000:63:00.1: Unable to change power state from D3cold to D0, device inaccessible
When the bridge is inaccessible, lspci -vv may report:
!!! Unknown header type 7f
The failure occurs at the PCIe/Thunderbolt bridge level, not merely at NVIDIA driver initialization: the JHL9480 downstream bridge itself stops responding to PCI configuration-space accesses.
### Logs / stack traces
```text
Relevant dmesg output:
pci 0000:63:00.0: [10de:2684] type 00 class 0x030000 PCIe Legacy Endpoint
pci 0000:63:00.0: BAR 0 [mem 0xa4000000-0xa4ffffff]
pci 0000:63:00.0: BAR 1 [mem 0x4000000000-0x47ffffffff 64bit pref]
pci 0000:63:00.0: BAR 3 [mem 0x4800000000-0x4801ffffff 64bit pref]
pci 0000:63:00.0: BAR 5 [io 0x7000-0x707f]
pci 0000:63:00.0: ROM [mem 0xa5000000-0xa507ffff pref]
pci 0000:63:00.0: enabling Extended Tags
pci 0000:63:00.0: PME# supported from D0 D3hot
pci 0000:63:00.1: [10de:22ba] type 00 class 0x040300 PCIe Endpoint
pci 0000:63:00.1: BAR 0 [mem 0xa5080000-0xa5083fff]
ACPI: bus type thunderbolt registered
snd_hda_intel 0000:63:00.1: Unable to change power state from D0 to D0, device inaccessible
snd_hda_intel 0000:63:00.1: Unable to change power state from D3cold to D0, device inaccessible
thunderbolt 1-2: new device found, vendor=0x31e device=0x1343
thunderbolt 1-2: GPD TBT5-EGPU
thunderbolt 1-0:2.1: new retimer found, vendor=0x1da0 device=0x8833
thunderbolt 1-2:1.1: new retimer found, vendor=0x1da0 device=0x8833
snd_hda_intel 0000:63:00.1: Unable to change power state from D3cold to D0, device inaccessible
PCI configuration-space read after failure:
JHL9480 downstream bridge:
000000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
RTX 4090:
000000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Full lspci -nnvvv and additional diagnostic logs are attached to this issue.
```
### Additional system information
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.