edk2-nvidia icon indicating copy to clipboard operation
edk2-nvidia copied to clipboard

I2C timeout on jetson-agx-orin-devkit

Open matsunaoki opened this issue 2 years ago • 2 comments

Issues

  • Timeout error occurs while issuing TegraI2cStartRequest
  • How can I skip initializing I2C if it is not mandatory for edk2 on AGX Orin developer kit?
[2023-10-24 16:38:22] Invalid EFI_I2C_DEVICE reported by I2c Enumerate protocol.
[2023-10-24 16:38:22] Invalid EFI_I2C_DEVICE reported by I2c Enumerate protocol.
[2023-10-24 16:38:22] Invalid EFI_I2C_DEVICE reported by I2c Enumerate protocol.
[2023-10-24 16:38:22] Invalid EFI_I2C_DEVICE reported by I2c Enumerate protocol.
[2023-10-24 16:38:22] Invalid EFI_I2C_DEVICE reported by I2c Enumerate protocol.
[2023-10-24 16:38:23] Installed Fat filesystem on 8221EE398
[2023-10-24 16:38:23] [ext4] Needs journal recovery, mounting read-only
[2023-10-24 16:38:25] TegraI2cStartRequest: Timeout waiting for Packet Complete
[2023-10-24 16:38:25] TegraI2cStartRequest: Timeout waiting for Packet Complete
[2023-10-24 16:38:25] TegraI2cStartRequest: Timeout waiting for Packet Complete
[2023-10-24 16:38:25] TegraI2cStartRequest: Timeout waiting for Packet Complete
[2023-10-24 16:38:26] TegraI2cStartRequest: Timeout waiting for Packet Complete
[2023-10-24 16:38:26] PrintBootOrder: Current BootOrder:
[2023-10-24 16:38:26] PrintBootOrder: BootOrder[0] = 0x0008 = UEFI I-O DATA USB Flash Disk 1242609221250144
[2023-10-24 16:38:26] PrintBootOrder: BootOrder[1] = 0x0001 = UEFI eMMC Device

Environment

  • BSP r35.4.1
  • Board: AGX Orin developer kit
  • uefi_Jetson_DEBUG.bin built from r35.4.1 https://github.com/NVIDIA/edk2-nvidia/releases/tag/r35.4.1

Background

It's important boot time on some embedded scene. so, We investigate how many seconds spent each compornent. We found the above time out messages.

  • https://forums.developer.nvidia.com/t/jetson-agx-orin-faq/237459#q-is-there-any-tips-for-debugging-uefi-10
  • https://forums.developer.nvidia.com/t/jetson-agx-orin-long-boot-time/266855/

matsunaoki avatar Nov 20 '23 08:11 matsunaoki

Hello,

You can do it in two ways:

  1. In the UEFI DTB, disable the I2C controllers that you know you would not be using on your platform.
  2. In the Supported function in TegraI2C driver in UEFI, you can return EFI_UNSUPPORTED for the controllers you want UEFI to ignore.

Thanks

ashishsingha avatar Nov 20 '23 17:11 ashishsingha

Thanks for comment. I know disable tips by nvidia forum.

I think 2 problems. No1) initialize slowly, No2) It's difficult to know whether impact if disabled.

If the initializing is fast, it's no problems and no need to disable. Therefore, I hope driver developer team to improve it.

I have a question in No2's view point. Does it have impact to secure boot when disable i2c?

matsunaoki avatar Nov 22 '23 05:11 matsunaoki