Xavier custom carrier board eeprom removal

Hi

can i remove the eeprom on my carrier board or it will cause board malfunction?

Yehonatan

hello yehonatans68sw4,

please refer to developer guide, Jetson AGX Xavier Platform Adaptation and Bring-Up, EEPROM ID for your custom board is not required.
thanks

Hi

IF the EEPROM is not requiered how can I remove it from device tree in order to remove the following errors:

[0001.508] I> Bl_dtb @0xaaf00000
[0001.515] W> “plugin-manager” doesn’t exist, creating
[0001.516] W> “ids” doesn’t exist, creating
[0001.521] W> “connection” doesn’t exist, creating
[0001.525] W> “configs” doesn’t exist, creating
[0001.536] I> Find /i2c@3160000’s alias i2c0
[0001.537] I> Reading eeprom i2c=0 address=0x50
[0001.540] E> I2C: Timeout while polling for bus clear. Last value 0x00000000.
[0001.544] E> I2C: Failed to clear bus for instance 0.
[0001.550] E> I2C: Failed to clear bus for instance 0.
[0001.554] E> I2C_DEV: Failed to initialize instance 0.
[0001.559] E> eeprom: Can’t get handle to eeprom device @160
[0001.565] I> Eeprom read failed 0x3536002a
[0001.568] I> Reading eeprom i2c=0 address=0x56
[0001.575] E> I2C: Timeout while polling for bus clear. Last value 0x00000000.
[0001.580] E> I2C: Failed to clear bus for instance 0.
[0001.585] E> I2C: Failed to clear bus for instance 0.
[0001.590] E> I2C_DEV: Failed to initialize instance 0.
[0001.595] E> eeprom: Can’t get handle to eeprom device @172
[0001.600] I> Eeprom read failed 0x3536002a
[0001.605] I> Find /i2c@3180000’s alias i2c2

[0008.112] I> Updated bootarg info to DTB
[0008.116] E> Error 892665857: Failed to get CVM EEPROM contents
[0008.122] E> Booting w/o MAC ddresses for WIFI, Bluetooth & Ethernet
[0008.128] E> Failed to get WIFI MAC address
[0008.132] E> Error 892665857: Failed to get CVM EEPROM contents
[0008.138] E> Booting w/o MAC ddresses for WIFI, Bluetooth & Ethernet
[0008.144] E> Failed to get Bluetooth MAC address
[0008.148] E> Error 892665857: Failed to get CVM EEPROM contents
[0008.154] E> Booting w/o MAC ddresses for WIFI, Bluetooth & Ethernet
[0008.160] E> Failed to get Ethernet MAC address
[0008.165] W> “plugin-manager” doesn’t exist, creating

I forgot to mention that those devices has been removed from pinmux but not from device tree.

This cause to make those interface existence at :
root@nvidia-desktop:/sys/devices# ls
0.bpmp_reset 3990000.mipical cpufreq
0.clock 39c0000.tachometer cpuidle
12000000.iommu 3ad0000.se_elp cpu-throttle-alert
13e10000.host1x 3c00000.tegra-hsp d000000.bpmp
14000000.tegra-cvnas 3c10000.combined-uart d230000.actmon
14040000.cv-noc aconnect@2a41000 d280000.soctherm-oc-event
14100000.pcie aonclk d600000.bpmp-noc
14140000.pcie aondbg dma_test
14180000.pcie arm64_ras external-connection
141a0000.pcie arm-pmu fixed-regulators
17000000.gv11b armv8_pmuv3 generic_pwm_tachometer
2200000.gpio aux-throttle-alert gpio-keys
2300000.cbb-noc b600000.sce-noc gpu.0
2390000.axi2apb b950000.tegra-hsp gpu-throttle-alert
2430000.pinmux bc00000.rtcpu hardwood
2450000.ufshci bcmdhd_pcie_wlan hda_pcm_map
2490000.ether_qos be00000.rce-noc hsio_p2u
2600000.dma bluedroid_pm nvhs_p2u
2c00000.mc_sid bpmp_i2c nvpmodel
2c10000.mc breakpoint platform
30c0000.watchdog bthrot_cdev psci
3100000.serial bwmgr pwm-fan
3110000.serial c150000.tegra-hsp smmu_test
3140000.serial c1a0000.aon software
3160000.i2c c240000.i2c sound
3180000.i2c c250000.i2c spdif_dit
3190000.i2c c260000.spi system
31b0000.i2c c2a0000.rtc tegra-cache
31c0000.i2c c2f0000.gpio tegra-camera-platform
31e0000.i2c c310000.mttcan tegra-carveouts
3210000.spi c320000.mttcan tegra_fiq_debugger
3280000.pwm c340000.pwm tegra_udrm
32c0000.pwm c360000.pmc thermal-fan-est
32f0000.pwm c370000.pmc timer
3460000.sdhci c600000.aon-noc tracepoint
3510000.hda camero_station-pm trusty
3520000.xusb_padctl carmel_pmu usb_cd
3610000.xhci carmel-pmu virtual
3820000.efuse carmel_ras
3830000.kfuse clocks-init
root@nvidia-desktop:/sys/devices# cd 3160000.i2c/
root@nvidia-desktop:/sys/devices/3160000.i2c# ls

hello yehonatans68sw4,

please refer to Device Registration, it’s by default using Plugin Manager to automatically links devices when the system kernel boots.
hence, you may have an alternative way to register a device using the main platform device tree file.
thanks

From device tree file "tegra194-p2888-0001-p2822-0000-common.dtsi " eeprom manager is disabled

eeprom-manager {
            status = "disabled";
    };

WHat should I do in order to disable it dueing boot ?

hello yehonatans68sw4,

you may also exclude the plugin-manager from the file for testing,
for example,
#include “tegra194-camera-plugin-manager.dtsi”

HI

I exclude plugin manager from device tree but those errors still appears.

What should I looking for or at which file the I2C disable option is located at device tree

hello yehonatans68sw4,

you may disassembler the device tree blob binary into text file for examination,
for example, $ dtc -I dtb -O dts -o output.txt tegra194-p2888-0001-p2822-0000.dtb
thanks

Hi

I succeed to remove the EEPROM from device tree but I still get following error:

[0007.903] E> tegrabl_eeprom_manager_init: Cannot find data-size
[0007.908] E> Error 892665869: Failed to get CVM EEPROM contents
[0007.914] E> Booting w/o MAC ddresses for WIFI, Bluetooth & Ethernet
[0007.920] E> Failed to get WIFI MAC address
[0007.924] E> tegrabl_eeprom_manager_init: Cannot find data-size
[0007.930] E> Error 892665869: Failed to get CVM EEPROM contents
[0007.936] E> Booting w/o MAC ddresses for WIFI, Bluetooth & Ethernet
[0007.942] E> Failed to get Bluetooth MAC address
[0007.947] E> tegrabl_eeprom_manager_init: Cannot find data-size
[0007.952] E> Error 892665869: Failed to get CVM EEPROM contents
[0007.958] E> Booting w/o MAC ddresses for WIFI, Bluetooth & Ethernet

How can I disable the tegrabl_eeprom_manager_init?

Yehonatan

Hi,

You are not removing the eeprom on carrier.
What your current error is because you are removing the eeprom on module… which is not allowed.

Hi

I did not removed the eeprom from module,
As you can see from my march 10 message when only I2C lines were disable at pinmux only without any device tree modification.
Please can you verify that I did not disable module eeprom at pinmux excel.

If the configuration is Ok what can cause to this eeprom message while eeprom driver is enable?
Jetson_AGX_Series_DevKit_Pinmux_Configuration_TemplateX1000_SOM1.rar (895.5 KB)

The whole issue sounds not clear to me.
Back to your first comment. Why do you have to remove eeprom on your custom board?

Why do you make a custom board with eeprom and now you want the software not touch that?

Actually, by default, the software from our jetpack does not read eeprom on custom carrier board. That is why other developers didn’t complain our software cannot work on their board due to missing eeprom.

Thus, I think what we should do now is confirming what is the exact problem you want to resolve…

The problem is that our HW team design a board without eeprom.
In order to support that we disabled at pinmux file of I2C which relates to carrier board eeprom.
After this action and reprogramming the we encounter errors as can be seen from my march 10 message (The orginal pinmux table is atteched).

From this point I am asking If what should I do in order to remove correctly the eeprom from carrier board.

Jetson_AGX_Series_DevKit_Pinmux_Configuration_TemplateX1000_SOM1.rar (895.5 KB) Hi

The first thing needs to be clarified is our device does not need eeprom on custom board. So there should be no problem if you board does not have eeprom.

In order to support that we disabled at pinmux file of I2C which relates to carrier board eeprom.

It seems your action here turns out creating a new problem.

Thus, the real thing we need to know is why do you think you have to disable some eeprom in pinmux?

Please note that “CVM” in your log indicates the xavier “module” but not “carrier board”.

BlockquoteThe first thing needs to be clarified is our device does not need eeprom on custom board. So there should be no problem if you board does not have eeprom.

My board does not need to use carrier board eeprom

Blockquote It seems your action here turns out creating a new problem.
Thus, the real thing we need to know is why do you think you have to disable some eeprom in pinmux?

I disable K5 and L8 pins which are related to external eeprom |2C and are not connected over our carrier board.
In addition to that this action has been done to each not connected IO but it seems that this is the only problematic IO.

Hi,

I think that error is due to your removal of K5 and L8. The module eeprom and carrier eeprom both share the same i2c bus.

For example, these are from my xavier devkit.

i2c bus0 0x56 is the carrier board eeprom.

nvidia@nvidia-desktop:~$ sudo i2cdump -y 0 0x56
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 01 00 ff 00 06 0b 00 00 06 47 00 00 00 00 00 00    ?...??..?G......
    10: 00 01 a2 0d 36 39 39 2d 38 32 38 32 32 2d 30 30    .???699-82822-00
    20: 30 30 2d 36 30 30 20 47 2e 30 00 00 00 00 00 00    00-600 G.0......
    30: 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
    40: ff ff ff ff ff ff ff ff ff ff 31 34 32 30 31 32    ..........142012
    50: 30 30 32 33 34 39 30 00 00 00 00 00 00 00 00 00    0023490.........
    60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    90: 00 00 00 00 00 00 46 46 46 46 ff ff 46 46 ff ff    ......FFFF..FF..
    a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
    b0: ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 65    ...............e

While i2c bus0 addr 0x50 is the module eeprom

 nvidia@nvidia-desktop:~$ sudo i2cdump -y 0 0x50
[sudo] password for nvidia: 
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 01 00 ff 00 48 0b 04 00 04 4b 00 00 00 00 00 00    ?...H??.?K......
10: 00 00 00 00 36 39 39 2d 38 32 38 38 38 2d 30 30    ....699-82888-00
20: 30 34 2d 34 30 30 20 4b 2e 30 00 00 00 00 00 00    04-400 K.0......
30: 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
40: ff ff ff ff 10 8b e5 4b 04 00 31 34 32 30 32 32    ....???K?.142022
50: 30 30 32 35 31 33 37 00 00 00 00 00 00 00 00 00    0025137.........
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
90: 00 00 00 00 00 00 4e 56 43 42 1c 00 4d 31 00 00    ......NVCB?.M1..
a0: ff ff ff ff ff ff ff ff ff ff ff ff 10 8b e5 4b    ............???K
b0: 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ?...............
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6d    ...............m

Hi

There is an option to verify this information with hardware team because I could not find this information at any spec that this I2C is share by both eeproms.
While at the pinmux file those nodes has double purpose

  • I2c nodes
  • Gpio nodes

Where from my point of view that means that I should disable those nodes at pinmux file because this are NC pins.

We will check this info with our hardware team on Monday. So far, I only tell this from the i2c info of my xavier devkit.