CachyOS / CachyOS/linux-cachyos

[BUG] linux-cachyos-bore 7.1.2-1: TPM initialization regression on Lenovo IdeaPad 310-15IKB causes 90s boot delay

Open
#915 3 comments 0 reactions 2 assignees Claimed by @ptr1337 View on GitHub
bug upstream
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.