Hi, Nvidia team:
I want to access I2C-9 in UEFI to retrieve the status of the deserializer chip. However, only 3 I2C buses are detected in return. Is this caused by incomplete bus configuration in UEFI? How can I enable all I2C buses?
BR//ChengKe
What is your deserializer chip, MAX9296 ?
You have reviewed these docs?
https://docs.nvidia.com/jetson/archives/r38.4/DeveloperGuide/SD/CameraDevelopment/JetsonVirtualChannelWithGmslCameraFramework.html#reference-setup
MAX96712
the key point is I need to read it in UEFI
First please review these and correct anything that needs it. Then put attached files into the directories listed below.
DTB overlay (adds MAX96712 child node, uses existing code)
Once the child node is present, gNVIDIAI2cMax96712 gets an EFI_I2C_IO_PROTOCOL instance and the read code should work.
Confirm the MAX96712 actual I2C address on your carrier board; if it’s not 0x29, update both the node name and reg in Max96712I2c9.dts.
i2cdetect -y 9
cd nvidia-uefi/edk2-nvidia
File Change
Silicon/NVIDIA/NVIDIA.dec Added gNVIDIAI2cMax96712 GUID
Silicon/NVIDIA/Drivers/TegraI2c/TegraI2cDxe.inf Referenced gNVIDIAI2cMax96712 in [Guids]
Silicon/NVIDIA/Drivers/TegraI2c/TegraI2cDxe.c Added maxim,max96712 detection block in the subnode loop
Silicon/NVIDIA/Tegra/DeviceTree/Max96712I2c9.dts New — overlay that adds max96712@29 child under i2c@810c6a0000
Silicon/NVIDIA/Tegra/DeviceTree/DeviceTree.inf Registered the new overlay
DeviceTree.inf.txt (873 Bytes)
Max96712I2c9.dts.txt (451 Bytes)
NVIDIA.dec.txt (51.0 KB)
TegraI2cDxe.c.txt (64.2 KB)
TegraI2cDxe.inf.txt (1.5 KB)
Hi ekeechg,
Are you using the devkit or custom board for Thor?
What’s the Jetpack version in use?
Please review whitesScott’s suggestion to see if it provides a viable solution for your current case.
Based on my understanding, UEFI is DTB-driven so the I2C interface should work if you have enabled it in device tree.
Please also let us know what’s your use case and the requirement.