当前位置: 首页 > web >正文

jetson nano 无法启动排查实录:使用i2c误写 EEPROM (地址 0x50)引发的修复经历

1、背景
  • 我的设备:Jetson Nano B01(板载 eMMC)

  • 背景:在调试 PCA9685 时,使用 i2cset / i2cget 命令向 0x50 地址写入了错误数据

  • 故障现象:Jetson 无法开机,串口无任何输出,无法刷机

2、问题分析
  • EEPROM 地址 0x50 是板载模块 EEPROM,保存启动识别信息(Board ID, SKU, CRC)

  • Jetson 启动前,CBoot 会检查 EEPROM 信息:
    Nano-SD: checking PT table on QSPI … PT: Partition DTB NOT found !

  • 回忆误操作命令:
    i2cset -y 2 0x50 0x00 0x11 (把 0x00 改成了错误值)

3、修复过程

参考英伟达论坛的帖子[1],先下载 Jetpack_4.2 (对应BSP版本号:Tegra210_Linux_R32.3.1_aarch64.tbz2),然后做解压构建操作,以及一些配置如下(来自文献 [1]):

Step 1: uncompress Tegra210_Linux_R32.3.1_aarch64.tbz2Step 2: uncompress Tegra_Linux_Sample-Root-Filesystem_R32.3.1_aarch64.tbz2Step 3: run “sudo ./apply_binaries.sh”Step 4: add BCFFILE to [p3448-0000.conf.common][Linux_for_Tegra/p3448-0000.conf.common]
…
BCT="–bct ";
VERFILENAME=“qspi_bootblob_ver.txt”;
+BCFFILE=“bootloader/${target_board}/cfg/board_config_p3448.xml”;Step 5: add some BOARDINFO to [p3448-0000-emmc.conf][Linux_for_Tegra/p3448-0000-emmc.conf]
…
+BOARDID=“3448”;
+FAB=“400”;
+BOARDSKU=“0002” ;
+BOARDREV=“70”;EMMC_CFG=flash_l4t_t210_emmc_p3448.xml;
BLBlockSize=1048576;
source “${LDK_DIR}/p3448-0000.conf.common”;
T21BINARGS="–bins "EBT cboot.bin; "
CMDLINE_ADD=“console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 sdhci_tegra.en_boot_part_access=1”;ROOTFSSIZE=14GiB;
VERFILENAME=“emmc_bootblob_ver.txt”;Step 6: set Nano to RCMStep 7: use command “sudo ./flash.sh jetson-nano-emmc mmcblk0p1” to flash

烧写完毕后,拔掉RCM跳线,重新上电(此时板子可以进入u-boot);接着快速按Enter键,进入 u-boot,执行下面命令从而改回0x50的地址内容,

i2c dev 3  //设置i2c总线为 i2c-2
i2c mw 0x50 0x00 0x01 1   //写地址信息

最后,输入boot命令,即可看到系统可以正常进入内核了
在这里插入图片描述
参考文献:
[1] https://forums.developer.nvidia.com/t/after-i2cset-test-nano-cant-boot-in-emmc-boot-evironment/126687/24

http://www.xdnf.cn/news/14357.html

相关文章:

  • RT1176 QDEC引脚全解析:精准定位编码器接口资源
  • 内容风控概念基础
  • 前端基础知识CSS系列 - 03(em/px/rem/vh/vw)
  • WiFi7无线桌面式AP天线系统设计
  • 【CATIA的二次开发29】抽象对象Document涉及文档标识的属性
  • MLLM常见概念通俗解析(五)
  • Vue3 实现老虎机抽奖游戏
  • linux-进程管理
  • 人工智能学习18-Pandas-按标签选择
  • CH579 CH573 CH582 CH592 蓝牙主机(Central)实例应用讲解(二)——Central消息事件机制初探
  • Ansible
  • leetcode 2566. 替换一个数字后的最大差值 简单
  • ESP32的spi通讯(Arduino)
  • Ubuntu 实现 sudo 免密码关键步骤
  • 启动springboot项目提示没有主清单属性
  • C++ 内存泄露
  • 以下是 NumPy 在统计与矩阵运算中的核心用法总结
  • linux msyql8 允许远程连接
  • java中扩展运算符
  • 《开窍》读书笔记8
  • 无线USB转换器TOS-WLink露面1个月以来总结
  • Cesium快速入门到精通系列教程九:Cesium 中高效添加和管理图标/标记的标准方式​​
  • Verilog自适应位宽与指定位宽不同导致模块无法正常执行
  • csharp设计方法
  • 带中断计数器的UART接收中断程序 (8259@400H/402H)
  • RapidNJ软件的安装
  • 【Python 爬虫 防盗链】
  • 山东大学软件学院项目实训:基于大模型的模拟面试系统项目总结(九)
  • Apifox将base64转换为图片(调试时方便查看)
  • BeckHoff <---> Keyence (LJ-X8000) 2D相机 Profinet 通讯