DCD SOC刷机问题汇总

高频:MCU 休眠导致刷机中断问题

PCAT 报错 log:

3月 23, 2023  10:23:53    WARNING   =====: Build loading completed on the device - Qualcomm HS-USB QDLoader 9008 (COM60) :=====
3月 23, 2023  10:23:53    WARNING   [  Status - FALSE, ImgMngt Response - DEVICE_INVALID_PACKET ]
3月 23, 2023  10:23:53    WARNING   [  Response - Send 0 byte fail: Qualcomm HS-USB QDLoader 9008 (COM60) ]
3月 23, 2023  10:23:53    ERROR     =====: Failed to load the software build on the device - Qualcomm HS-USB QDLoader 9008 (COM60) :=====
3月 23, 2023  10:23:53    STATUS    Device Mode - DEVICE_MODE_SAHARA_DOWNLOAD, Auto Backup and Restore xQCN == FALSE, Read Images - FALSE

EDL 报错 log:

15:47:22: {ERROR: Could not write to '/dev/ttyUSB0', Windows API WriteFile failed! Your device is probably *not* on this port, attempted 100 times}

解决方法:刷机进入 9008 模式时要彻底断电,不仅要断开电源,还要断开 USB 线和串口。

  • 方法一:A 样/B 样/C 样融合版连接 ACC,先将 MCU 版本更新至最新再烧录 SOC。
  • 方法二:C 样高配和低配需要连接 PCAN,刷机之前接入 PCAN,发送 CAN 管理报文使 MCU 保持唤醒。
  • 方法三:没有 PCAN,先刷入以下不休眠的 MCU 版本,再刷 SOC。

MCU 刷机参考:

高频:UFS LU 有修改需要 provision,provision 完需要重启再烧录

EDL 刷机参考:EDL刷机这么简单

PCAT 刷机参考:双UFS系统操作刷机手册(PCAT版)

高频:分区不正确

遇到以下报错:1) provision 没有做对或没有成功;2) 确定 slot 是否正确。

10:44:27: INFO: TARGET SAID: 'ERROR: UFS Error -5 (3)'
10:44:27: INFO: TARGET SAID: 'ERROR: Write Failed sector 5799968, size 8 result 3'

高频:串口被占用(EDL)

minicom 占用串口设备会出现以下信息,避免串口被 minicom 等串口工具占用

10:42:38: INFO: Didn't get any data from USB, sleeping for 1ms and trying again NumTries=1 of 10
10:42:39: INFO: Back from sleep
10:42:44: INFO: Timeout - no response trying to read from target

Modemmanager 干扰问题(EDL)

遇到以下问题,请关闭或卸载 modemmanager,再试:

{ERROR: XML not formed correctly. Expected a < character at loc 0}

卸载方法:

sudo apt remove modemmanager

Linux 下无法找到设备(EDL)

/dev/ 底下没有虚拟出设备节点:

*****************************
device not found!!!
*****************************

查看以下两个模块是否存在,没有则需要加载驱动,加载完成后再次查看驱动模块是否存在:

$ lsmod |grep serial
qcserial               24576  0
usb_wwan               24576  1 qcserial
usbserial              57344  2 qcserial,usb_wwan

驱动加载方法一:

sudo modprobe qcserial

驱动加载方法二:

sudo modprobe usbserial
sudo insmod /lib/modules/$(uname -r)/kernel/drivers/usb/serial/usb_wwan.ko
sudo insmod /lib/modules/$(uname -r)/kernel/drivers/usb/serial/qcserial.ko
 
# 有的系统里,驱动可能是下边的名字
sudo insmod /lib/modules/$(uname -r)/kernel/drivers/usb/serial/usb_wwan_dup.ko
sudo insmod /lib/modules/$(uname -r)/kernel/drivers/usb/serial/qcserial_dup.ko

重插 USB 连接线后重试。

找不到 edl

需要下载 edl(参考 EDL工具版本管理)放到 /usr/bin 下,并确保有执行权限:

./edl.sh: line 18: edl: command not found
edl flash ufs0 error!

没有打开串口的权限(EDL)

添加 sudo 执行:

14:05:04: INFO: User wants to talk to port '/dev/ttyUSB0'
14:05:04: {ERROR: Could not open '/dev/ttyUSB0'}

slot 选错(PCAT 易错)

provision slot 选择错误导致刷机异常:

<setbootablestoragedrive value="1" slot="1" /></data>
4月 04, 2023  20:56:29    STATUS    [ FIRMWARE DOWNLOAD LOG ] INFO: Calling handler for setbootablestoragedrive
4月 04, 2023  20:56:29    STATUS    [ FIRMWARE DOWNLOAD LOG ] INFO: Using scheme of value= 1
4月 04, 2023  20:56:29    STATUS    [ FIRMWARE DOWNLOAD LOG ] ERROR: Failed to open the UFS Device slot 1 partition 1
4月 04, 2023  20:56:29    STATUS    [ FIRMWARE DOWNLOAD LOG ] ERROR: Failed to open the device:3 slot:1 partition:1 error:0
4月 04, 2023  20:56:29    STATUS    [ FIRMWARE DOWNLOAD LOG ] ERROR: OPEN handle NULL and no error, weird 344534604
4月 04, 2023  20:56:29    STATUS    [ FIRMWARE DOWNLOAD LOG ] ERROR: Failed to open device, type:UFS, slot:1, lun:1 error:3

刷完机第二次启动,反复重启

原因:MCU 版本太旧,更新 MCU 版本。

无法连接到 QUTS 服务

错误提示:Quts client creation failed. Unable to communicate with QUTS service

解决方法:更新 QUTS 服务(Qualcomm Unified Tools Services)。参考 双UFS系统操作刷机手册(PCAT版)

相关