I am currently using Nvidia Jetson Orin Nano Developer Kit (8GB).
I flashed the boot firmware using the L4T Drvier Package and Sample Root file system using the below links:
After flashing the boot firmware, flashed the official Ubuntu Server 22.04 using L4T backup_restore. The preinstalled server image used is from the following link
Our project objective is to use the OPTIGA™ TPM SLB 9673 TPM 2.0 chip in the custom board. Before finalizing the desing want to test the chip so using the OPTIGA™ TPM SLB 9673 RaspberryPi® Evaluation Board - I2C TPM HAT FW 26.xx.
I Connected the evaluation KIT’s I2C pins to the Jetson 40 pin header pins 3 and 5.
Now while using the i2cdetect -r 7 command it shows the address 0x2e. It means the device is detected at the I2C bus 7.
But the dmesg is not showing the chip. I am getting the message that chip not detected.
To make the chip working
I modified the device tree like below using the file from the L4T folder Linux_for_Tegra/kernel/dtb/tegra234-p3768-0000+p3767-0000-nv.dtb
i2c@c250000 {
compatible = "nvidia,tegra194-i2c"; reg = <0x00 0xc250000 0x00 0x100>; interrupts = <0x00 0x20 0x04>; #address-cells = <0x01>; #size-cells = <0x00>; status = "okay"; nvidia,disable-multi-pkt-mode; // Modified for clock streaching clock-frequency = <0x61a80>; clocks = <0x03 0x36 0x03 0x66>; clock-names = "div-clk\\0parent"; assigned-clocks = <0x03 0x36>; assigned-clock-parents = <0x03 0x66>; resets = <0x03 0x22>; reset-names = "i2c"; dmas = <0xed 0x00 0xed 0x00>; dma-names = "rx\\0tx"; nvidia,hw-instance-id = <0x07>; iommus = <0x04 0x04>; dma-coherent; phandle = <0x241>; // For SLB 9673 chip slb9673@2e { compatible = "infineon,slb9673\\0tpm_i2c_infineon,tpm_tis_i2c"; reg = <0x2e>; // The detected I2C address status = "okay"; }; prod-settings { #prod-cells = <0x04>; prod { prod = <0x00 0x9c 0xffff 0x308 0x00 0xd4 0xff 0x00 0x00 0xd8 0xff 0x00 0x00 0xdc 0xffff 0x01 0x00 0xe0 0xffff 0x02>; }; prod_c_fm { prod = <0x00 0x6c 0xffff0000 0x3c0000 0x00 0x94 0xffff 0x202 0x00 0x98 0xffffffff 0x2020202>; }; prod_c_fmplus { prod = <0x00 0x6c 0xffff0000 0x160000 0x00 0x94 0xffff 0x202 0x00 0x98 0xffffffff 0x2020202>; }; prod_c_hs { prod = <0x00 0x6c 0xffffffff 0x160002 0x00 0x94 0xffff 0x202 0x00 0x98 0xffffffff 0x2020202 0x00 0xa0 0xffffff 0x90909>; }; prod_c_sm { prod = <0x00 0x6c 0xffff0000 0x4f0000 0x00 0x94 0xffff 0x708 0x00 0x98 0xffffffff 0x8080808>; }; }; };
I am quite not sure doing the device tree correctly.
Can some one suggest the right approach please.