背景

座舱域控在使用过程中随机死机,然后触发重启

查看日志发现,主要表现有2种:

1,整个系统突然block住,完全无法执行任何操作,打开ramdump功能之后会触发ramdump

2,Q+A中的android内核突然panic,panic的位置不固定

问题发生多次,在多个样本上重现之后,且触发时间不确定,这个时候首先怀疑DDR存在问题

当即做了2个事情:

1,做DDR的压力测试

2,查看域控的DDR相关测试,比如信号完整性测试以及眼图测试

在做完上面2个事情之后发现,DDR压力测试无法通过,且表现为同一批次的产品(使用三星的DRAM)会出现问题,而使用镁光的产品则无问题

这一批次的DDR相关测试报告存显示域控在DDR上存在缺陷,但之前没有关注过

拉上三星、高通、T1一起讨论解决方案

高通后续给出了多个版本的软件,但是均无法解决该问题,同时有消息称三星在这块产品上自己的DIE存在缺陷,解决方案为,彻底更换DDR颗粒为镁光产品.

更换DDR颗粒之后,重新做压力测试以及DDR相关测试,此时已经可以通过,没有其他问题.

产品推出市场后,陆陆续续有客户反馈,车辆在启动之后,有概率会出现AVM花屏,随后死机的问题,在不同的地域及车辆上都有此问题上报.

技术人员实车抓取日志之后发现,这些车辆的场景都有如下特征:

1,车辆在早上启动时候出现问题的搞了很大,即车辆进入休眠之后再唤醒,就有相当概率会出现问题

2,大部分情况下会伴随AVM花屏后,再很短时间内黑屏然后重启,且通常只有AVM画面花屏,其他画面正常

3,问题车辆软件版本都启用了STR特性,在未启用STR的版本上,无法复现该问题

首先从问题的表现来看,应该是LA的内存空间被破坏了导致的系统panic,简单来说就是LA的内存出了问题,所以会导致随机性的panic,但是这种panic又和STR强相关,且与GPU/camera AIS强相关

进一步怀疑,在进入STR之前,系统是正常的,在进入STR时,或者在从STR恢复后,LA的内存遭到了破坏

基于这个猜想,我们加了各种条件进行验证,或者直接注入故障.

最终发现,当QNX和LA的STR状态同步出现问题时,有一定概率会出现QNX把LA的内存空间写坏的可能。大致原理为

1,整车进入STR信号发出

2,LA切换到STR,停止AIS相关信号及数据接收

3,QNX切换到STR,也停止AIS相关数据发送

4,在这个过程中,如果QNX和LA出现了同步问题,那么会导致QNX错误的往LA上已经释放的AIS的内存地址上存放数据,细节有点忘了,总之此时会出现LA内存被破坏的情况进而导致系统panic

最后解决的办法是确保进入和退出STR的时候LA和QNX一定是同步的