项目

一般

简介

错误 #4205

cpri pma初始化失败,导致tfu 挂死/CPU锁死

高 峰3 个月 之前添加. 更新于 11 天 之前.

状态:
进行中
优先级:
一般
指派给:
开始日期:
2025-09-29
计划完成日期:
% 完成:

0%

预期时间:

历史记录

#1

高 峰 更新于 3 个月 之前

CP端:
CPRI PMA初始化成功后,stc_pclk_init 中有轮询一个判断标致,如果没有初始化成功时会一直锁死在这个位置:
while (1 != (do_read_volatile(SERDES_INIT_FLAG_ADDR)));

会导致AP端读取CP的寄存器异常,比如:TFU中读取STC CLK频率寄存器;
进而会导致操作系统异常(RCU)

#2

高 峰 更新于 3 个月 之前

此问题一般发生在以下几种情况下:
1. PHY 没有启动,L2或TFU就启动了
2. PHY的版本文件损坏,无法正常初始化
3. PHY的版本不正确,无法正常初始化

#3

高 峰 更新于 3 个月 之前

目前的猜测是:
CP面的寄存器空间,mmap 内核底层逻辑和DDR是不一样的;驱动重构了CP寄存器访问的mmap
有可能内核态访问CP寄存器空间时,会一直等待对方的类似反馈标志之类的;
由于CP没有初始化成功,AP访问CP寄存器的总线不可用,导致操作系统一直阻塞在读取CP寄存器位置。

以上逻辑是我们自己的猜测,需要和思朗确认

#4

杨 晋 更新于 3 个月 之前

后续遇到类似问题,可以在phy启动后,协议栈启动前,读一下寄存器test_mem 0xb7e060b0 32,看看cpri 初始化函数走到哪里

#5

战 弋戈 更新于 3 个月 之前

  • 状态新建 变更为 进行中
#6

战 弋戈 更新于 3 个月 之前

  • 状态进行中 变更为 反馈
#7

战 弋戈 更新于 2 个月 之前

经常发生在不读取stc时钟位置。

#8

战 弋戈 更新于 大约一个月 之前

  • 状态反馈 变更为 审视
#9

战 弋戈 更新于 大约一个月 之前

  • 指派给战 弋戈 变更为 高 峰
#10

高 峰 更新于 大约一个月 之前

  • 状态审视 变更为 进行中
  • 指派给高 峰 变更为 战 弋戈

问题解决了吗?问题单中没有看到【定位原因】,【解决方案】的描述 ,就转到我着来审视?

#11

战 弋戈 更新于 大约一个月 之前

【原因】当cp端的cpri没有初始化成功时,这时就在ap端访问cp端的地址空间,就会发生ap端挂死。
【解决方法】可以在AP端检查cp端初始化状态成功过后再进行下一步读取cp端地址空间的操作。

#12

战 弋戈 更新于 22 天 之前

需要对 start_phy.sh 中增加对cpri 状态的检查,当cpri没有初始化完成时,会一直等待。

#13

战 弋戈 更新于 11 天 之前

问了横联phy的同事start_phy.sh 现在还没有出现在代码库中。 现在是谁用谁修改。

导出 Atom PDF