I think that I would have to now use the branch : toradex_6.6-2.1.x-imx ? I am using the verdin imx8m-mini SoM.
Because I miss this file inside : /linux/drivers/char/tpm/ from the version 5.15-2.2:
tpm_tis_i2c.c
this file is present in the version 6.6-2.1 repo
I don’t know if this is the reason why my TPM doesn’t work.
I don’t understand why these sources in version 5.x.x would change anything since I have unpacked version 7.0.0 of the torizon image (downloaded locally) which contains version 6.x.x of the Linux kernel?
The kernel is already compiled in your 7.0.0 image with the current linux sources and therefore its ‘new’ drivers, so I’m a bit confused.
Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!
Did you like my answer?
Hello,
Thank you for reaching out with your question about integrating the TPM 2.0 Infineon SLB9673 with TorizonOS on your Verdin iMX8M Mini SoM. You’ve taken the right steps by updating to TorizonCore 7.0.0 and modifying your device tree overlay. However, the absence of the /dev/tpm0 device file at boot indicates that the necessary driver, tpm_tis_i2c.c, might be missing from your current kernel branch.
Your current branch, toradex_5.15-2.2.x-imx, does not seem to include this driver file, which is crucial for the TPM to function properly. Switching to the toradex_6.6-2.1.x-imx branch could indeed provide the required driver support for your TPM device.
Here are the steps you can follow to address this:
Switch Kernel Branch: Change to the toradex_6.6-2.1.x-imx branch, which is more likely to include the tpm_tis_i2c.c driver.
Rebuild the Kernel: After switching branches, rebuild the kernel to ensure that all necessary drivers, including the TPM driver, are compiled and included.
Verify Kernel Configuration: Ensure that TPM support is enabled in your kernel configuration. You can check this by running make menuconfig and navigating to Device Drivers → Character devices → TPM Hardware Support.
Test the TPM: Once the new kernel is built and deployed, check if the /dev/tpm0 device file is created at boot. You can use tools like tpm2-tools to interact with the TPM and verify its functionality.
By following these steps, you should be able to resolve the issue and successfully integrate your TPM with TorizonOS.
Best regards,
Toradex AI Assistant
Please, also check if these links can help you solve your problem:
I don’t understand why these sources in version 5.x.x would change anything since I have unpacked version 7.0.0 of the torizon image (downloaded locally) which contains version 6.x.x of the Linux kernel?
Your intuition is correct, that said you should probably still use the correct Linux version just in case.
As for why /dev/tpm0 isn’t present. Some ideas for you to check. Could you check the the kernel configuration running on this device at /proc/config.gz. I believe for the SLB9673 the relevant kernel configuration is CONFIG_TCG_TIS_I2C. Check to make sure this configuration is at least enabled as a kernel module.
Then you can check if this kernel module is actually being loaded or not. I believe the name of the module would be tpm_tis_i2c. Finally if the kernel module is loaded, check whether the TPM or I2C driver are giving any errors/warnings in dmesg.
Well it looks like all the software and drivers are present for this TPM. From here I would look to make sure the actual hardware part of things is correct and coherent.
The fact you got nothing from dmesg | grep tpm is a bit telling. This means the driver found nothing to do or work on, otherwise there should have been some kind of log output from the driver.
Looking at your original overlay you’re adding this TPM to the node i2c3 or Verdin interface I2C_4. Have you confirmed the hardware connection is good and correct?
On your device can you check ls -l /dev/verdin-i2c4 and see what i2c bus this points to. Once you have this can you run i2cdetect -y <number of i2c bus> (i.e i2cdetect -y 3). This should show all the i2c devices detected on that particular bus. If your overlay is correct then we should detect this TPM device at the address of “2e”. I’m also assuming this is the correct address for this device.
after some research i founded that “-TPM2” means that TPM support isn’t enabled inside the kernel ?
I’m pretty sure this just means systemd is lacking it’s TPM support, not the kernel as a whole. You can see there is also a “-OPENSSL”, but Torizon OS has openssl support so that wouldn’t make sense if this was for the whole kernel/image.