TJCUT
November 21, 2022, 5:50am
1
Hello,
We added EEPROM to our custom board. (sub address 0x51)
Jetpack 4.6
root@linux:~# i2cdetect -y 2
Warning: Can't use SMBus Quick Write command, will skip some addresses
0 1 2 3 4 5 6 7 8 9 a b c d e f
00:
10:
20:
30: -- -- -- -- -- -- -- --
40:
50: 50 51 -- -- -- -- -- -- -- 59 -- -- -- -- -- --
60:
70:
root@linux:~#
But it doesn’t write.
root@linux:~# i2cset -y 2 0x51 0xa0 0x55
root@linux:~# i2cdump -y 2 0x51
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: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
30: ff ff 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 ff ff ff ff ff ff ................
50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
root@linux:~#
With 0x50, write/read works normally.
Do I need a separate driver for the EEPROM I added?
The EEPROM information is as follows.
TD24C256-R
I2C Compatible 400kHz ~ 1MHz
TJCUT
November 21, 2022, 6:30am
2
I looked at something else on the forum and did the following:
add defconfig (tegra_defconfig)
CONFIG_EEPROM_AT24=y
CONFIG_I2C=y
CONFIG_SYSFS=y
i2c definition in dts (file tegra210-porg-p3448-common.dtsi)
i2c@7000c500 {
status = "okey";
eeprom@51 {
compatible = "at,24c256";
reg = <0x51>;
#address-cells = <1>;
#size-cells = <1>;
cape0_data: cape_data@0 {
reg = <0 0x100>;
};
};
};
I checked after setting as above, but i2cdetect also failed.
root@linux:~# i2cdetect -y 2
Warning: Can't use SMBus Quick Write command, will skip some addresses
0 1 2 3 4 5 6 7 8 9 a b c d e f
00:
10:
20:
30: -- -- -- -- -- -- -- --
40:
50: 50 UU -- -- -- -- -- -- -- 59 -- -- -- -- -- --
60:
70:
root@linux:~#
root@linux:~# i2cset -y 2 0x51 0x10 0x55
Error: Could not set address to 0x51: Device or resource busy
Any references I can give for similar issues?
hello TJCUT,
there’re two eeproms, one on the nano module. the other is on the nano devkit carrier board.
you may see-also Jetson Module EEPROM Layout .
TJCUT
November 22, 2022, 2:27am
5
Hello JerryChang
Thank you for your reply.
I know that NANO module has EEPROM. (0x50)
The EEPROM on the devkit carrier board is out of the question now.
The board I’m testing right now is a custom board I made.
The EEPROM I added is 0x51.
The address is separated from the existing one.
Is there a problem?
hello TJCUT,
is there cvm.bin
generated when you flashing the target? please also check that binary file contain the correct info.
TJCUT
November 24, 2022, 12:45am
7
Hello JerryChang,
The cvm.bin file is verified as follows.
cd /home/nvidia/work/NANO/eeprom_test_4.6/Linux_for_Tegra && sudo ./flash.sh jetson-nano-devkit-emmc mmcblk0p1
###############################################################################
# L4T BSP Information:
# R32 , REVISION: 6.1
###############################################################################
# Target Board Information:
# Name: jetson-nano-devkit-emmc, Board Family: t210ref, SoC: Tegra 210,
# OpMode: production, Boot Authentication: ,
# Disk encryption: disabled ,
###############################################################################
./tegraflash.py --chip 0x21 --applet "/home/nvidia/work/NANO/eeprom_test_4.6/Linux_for_Tegra/bootloader/nvtboot_recovery.bin" --skipuid --cmd "dump eeprom boardinfo cvm.bin"
Welcome to Tegra Flash
version 1.0.0
Type ? or help for help and q or quit to exit
Use ! to execute system commands
[ 0.0012 ] Generating RCM messages
[ 0.0031 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm /home/nvidia/work/NANO/eeprom_test_4.6/Linux_for_Tegra/bootloader/nvtboot_recovery.bin 0 0
[ 0.0038 ] RCM 0 is saved as rcm_0.rcm
[ 0.0041 ] RCM 1 is saved as rcm_1.rcm
[ 0.0041 ] List of rcm files are saved in rcm_list.xml
[ 0.0041 ]
[ 0.0041 ] Signing RCM messages
[ 0.0059 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.0065 ] Assuming zero filled SBK key
[ 0.0110 ]
[ 0.0110 ] Copying signature to RCM mesages
[ 0.0130 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[ 0.0139 ]
[ 0.0140 ] Boot Rom communication
[ 0.0158 ] tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml --skipuid
[ 0.0165 ] RCM version 0X210001
[ 0.1181 ] Boot Rom communication completed
[ 1.1263 ]
[ 1.1265 ] dump EEPROM info
[ 1.1317 ] tegrarcm --oem platformdetails eeprom /home/nvidia/work/NANO/eeprom_test_4.6/Linux_for_Tegra/bootloader/cvm.bin
[ 1.1346 ] Applet version 00.01.0000
[ 1.2092 ] Saved platform info in /home/nvidia/work/NANO/eeprom_test_4.6/Linux_for_Tegra/bootloader/cvm.bin
[ 1.2863 ]
[ 1.2903 ] tegrarcm --reboot recovery
[ 1.2925 ] Applet version 00.01.0000
[ 1.3686 ]
Board ID(3448) version(400)
Upon hexdump for the cvm.bin file:
nvidia@nvidia-950XCJ-951XCJ-950XCR:~/work/NANO/eeprom_test_4.6/Linux_for_Tegra/bootloader$ hexdump cvm.bin
0000000 0001 00fc 0d78 0002 4804 0000 0000 0000
0000010 0000 0000 3936 2d39 3331 3434 2d38 3030
0000020 3230 342d 3030 4820 302e 0000 0000 0000
0000030 0000 ffff ffff ffff ffff ffff ffff ffff
0000040 ffff ffff 4e2f 2d3e 48b0 3431 3132 3238
0000050 3031 3033 3831 0030 0000 0000 0000 0000
0000060 0000 0000 0000 0000 0000 0000 0000 0000
*
0000090 0000 0000 0000 564e 4243 001c 314d 0000
00000a0 ffff ffff ffff ffff ffff ffff 4e2f 2d3e
00000b0 48b0 0000 0000 0000 0000 0000 0000 0000
00000c0 0000 0000 0000 0000 0000 0000 0000 0000
*
00000f0 0000 0000 0000 0000 0000 0000 0000 f400
0000100
Is the cvm.bin file associated with the EEPROM at address 0x51?
Hi,
Are you adding a carrier board eeprom? But fails to write the content?
TJCUT
November 25, 2022, 2:24am
10
Hello WayneWWW
Our boards is custom.
We added EEPROM to that board.
The address of the added EEPROM is 0x51.
Cannot write to the added EEPROM.
please refer to /hardware/nvidia/platform/t210/porg/kernel-dts/porg-plugin-manager/tegra210-porg-eeprom-manager.dtsi
TJCUT
November 26, 2022, 4:04am
12
Hello WayneWWW
I added 0x51 like this:
eeprom-manager {
data-size = <0x100>;
bus@0 {
i2c-bus = <&i2c1>;
word-address-1-byte-slave-addresses = <0x50>;
};
bus@1 {
i2c-bus = <&i2c3>;
word-address-1-byte-slave-addresses = <0x50 0x51 0x57>;
};
};
Results are not written.
root@linux:/home/nvidia# i2cdetect -y 2
Warning: Can't use SMBus Quick Write command, will skip some addresses
0 1 2 3 4 5 6 7 8 9 a b c d e f
00:
10:
20:
30: -- -- -- -- -- -- -- --
40:
50: 50 51 -- -- -- -- -- -- -- 59 -- -- -- -- -- --
60:
70:
root@linux:/home/nvidia#
root@linux:/home/nvidia# i2cdump -y 2 0x51
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: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
30: ff ff 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 ff ff ff ff ff ff ................
50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
root@linux:/home/nvidia# i2cset -y 2 0x51 0x10 0x55
root@linux:/home/nvidia# i2cdump -y 2 0x51
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: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
30: ff ff 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 ff ff ff ff ff ff ................
50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
root@linux:/home/nvidia#
tegra210-porg-eeprom-manager.dtsi file modification gone wrong?
Are you sure your hardware is correct?
TJCUT
November 28, 2022, 12:17am
14
I think there is no problem with the hardware.
Because 0x50 on the same I2C line is normal and
Because 0x51 is not allowed.
kayccc
December 7, 2022, 4:08am
15
Sorry for the late response, have you managed to get issue resolved or still need the support? Thanks
TJCUT
December 7, 2022, 4:29am
16
The problem has not been resolved.
Is there any other way?
(How to install the EEPROM driver as an example)
Are you sure this " at24c256 " driver is present? Please be aware that we don’t know much about your driver. You should know where to find it and how to check if it is running.
TJCUT
December 7, 2022, 6:02am
18
It exists in the following path.
./kernel-4.9/drivers/misc/eeprom/at24.c
I mean does this driver probe and init on your device?
TJCUT
December 7, 2022, 6:21am
20
Tested with the following content:
I looked at something else on the forum and did the following:
add defconfig (tegra_defconfig)
CONFIG_EEPROM_AT24=y
CONFIG_I2C=y
CONFIG_SYSFS=y
i2c definition in dts (file tegra210-porg-p3448-common.dtsi)
i2c@7000c500 {
status = "okey";
eeprom@51 {
compatible = "at,24c256";
reg = <0x51>;
#address-cells = <1>;
#size-cells = <1>;
cape0_data: cape_data@0 {
reg = <0 0x100>;
};
};
};
I checked after setting as above, but i…
TWarren
December 14, 2022, 4:32pm
21
In your .dtsi edit, status = “okey” s/b 'status = “okay ”. I suspect that’s keeping that i2c node from being enabled by the kernel/driver.
HTH,
Tom
1 Like
TJCUT
December 19, 2022, 9:56am
22
The result is the same.
i2c@7000c500 {
status = "okay";
eeprom@51 {
compatible = "at,24c256";
reg = <0x51>;
cape0_data: cape_data@0 {
reg = <0 0x100>;
};
};
};
a.dts (319.0 KB)