CachyOS / CachyOS/linux-cachyos
[BUG] linux-cachyos-bore 7.1.2-1: TPM initialization regression on Lenovo IdeaPad 310-15IKB causes 90s boot delay
- 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 tested with a vanilla/upstream kernel and the issue does NOT reproduce there (CachyOS-specific bug)
### Kernel variant
linux-cachyos-bore (BORE, GCC)
### System information (cachyos-bugreport.sh)
```text
https://paste.cachyos.org/p/52348d0.log
```
### Manual system information (if cachyos-bugreport.sh is unavailable)
```text
cachyos-bugreport.sh link provided above.
```
### Bug description
### After upgrading to linux-cachyos-bore 7.1.2-1, my system takes approximately 90 seconds longer to boot.
systemd waits for /dev/tpm0 and /dev/tpmrm0 because those device nodes are never created.
The exact same installation boots normally with the upstream Arch kernel (linux 7.0.14.arch1-1), where both TPM device nodes are created successfully.
This appears to be a regression specific to linux-cachyos-bore 7.1.2-1.
### Steps to reproduce
1. Boot the system using linux-cachyos-bore 7.1.2-1.
2. Observe a ~90 second boot delay.
3. Check:
ls /dev/tpm*
-> No TPM device nodes are present.
4. Check dmesg:
sudo dmesg | grep -Ei "tpm|crb|MSFT0101"
5. systemd waits for dev-tpm0.device and dev-tpmrm0.device before continuing the boot.
Booting the same installation with the upstream Arch kernel (linux 7.0.14.arch1-1) does not reproduce the issue.
### Expected behavior
The TPM should initialize successfully and create:
/dev/tpm0
/dev/tpmrm0
as it does on the upstream Arch kernel, allowing the system to boot without waiting for TPM device timeouts.
### Actual behavior
On linux-cachyos-bore 7.1.2-1, the TPM driver never creates /dev/tpm0 or /dev/tpmrm0.
systemd waits for these devices during boot, resulting in approximately a 90 second delay before boot continues.
### Logs / stack traces
```text
Broken (linux-cachyos-bore 7.1.2-1)
dmesg:
platform MSFT0101:00: failed to claim resource 1: [mem 0xfed40000-0xfed40fff]
acpi MSFT0101:00: platform device creation failed: -16
No tpm_crb messages appear.
systemd:
Expecting device /dev/tpm0...
Expecting device /dev/tpmrm0...
Later:
Timed out waiting for device /dev/tpm0.
Timed out waiting for device /dev/tpmrm0.
Working (upstream Arch kernel 7.0.14.arch1-1)
dmesg:
platform MSFT0101:00: failed to claim resource 1: [mem 0xfed40000-0xfed40fff]
acpi MSFT0101:00: platform device creation failed: -16
tpm_crb MSFT0101:00: [Firmware Bug]: Bad ACPI memory layout
The upstream kernel successfully creates:
/dev/tpm0
/dev/tpmrm0
```
### Additional system information
The issue was verified by booting both kernels on the same machine:
Hardware:
Lenovo IdeaPad 310-15IKB (80TV)
Working:
linux 7.0.14.arch1-1 (upstream Arch kernel)
Broken:
linux-cachyos-bore 7.1.2-1
The same installation, firmware, bootloader, initramfs, systemd version, and userspace were used for both tests. The only variable changed was the kernel.
Additionally, NetworkManager-wait-online.service was disabled during testing to ensure the observed boot delay was caused by the missing TPM devices rather than network startup.
[sudo dmesg | grep -Ei "tpm|crb|MSFT0101"
OUTPUT.txt](https://github.com/user-attachments/files/29634424/sudo.dmesg.grep.-Ei.tpm.crb.MSFT0101.OUTPUT.txt)
[systemd-analyze blame
OUTPUT.txt](https://github.com/user-attachments/files/29634426/systemd-analyze.blame.OUTPUT.txt)
[systemd-analyze critical-chain OUTPUT.txt](https://github.com/user-attachments/files/29634425/systemd-analyze.critical-chain.OUTPUT.txt)
Contributor guide
Assessment
This issue has not been assessed yet.