关于ls1028ardb在uboot下面概率性卡switch交换寄存器的问题请教

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

关于ls1028ardb在uboot下面概率性卡switch交换寄存器的问题请教

765 Views
wangxiaozhuang
Contributor II

ls1028ardb这个定制主板,现在我们遇到的主要问题是概率性卡switch的问题,有些主板卡顿高达20%,各位有什么建议或者思路,请给予指导,非常感谢。下面是我们的实验情况:

        我们做了大量的实验,发现uboot下概率性卡在L2 switch初始化寄存器那里,新bsp2108和老版本bsp1906表现都一样:

一,1906的老版本BSP版本卡switch的uboot log:
        PCS: PCS[0] didn't link up yet.
        trying to set up L2 switch ...

        具体位置:u-boot/board/freescale/ls1028a/ls1028a.c 里面的setup_switch()函数读写寄存器L2SW_SYS_RAM_CTRL概率性卡死

        如果注释掉uboot这里的switch初始化,也会概率卡在内核对应的switch寄存器访问

二,2108的新版本BSP卡switch的uboot log:
        Warning: enetc-0 (eth0) using random MAC address - 26:60:94:79:5e:b3
        eth0: enetc-0
        Warning: enetc-2 (eth1) using random MAC address - 26:be:46:b6:8b:96
        , eth1: enetc-2

        具体位置:drivers/net/mscc_eswitch/felix_switch.c 里面的felix_init()函数读写寄存器FELIX_SYS_RAM_CTRL概率性卡死

        如果注释掉uboot这里的felix_init()初始化,也会概率卡在内核对应的switch寄存器访问

三,在每次卡switch的时候,我们发现通过External MDIO的接口read访问外部PHY,都可以正常读写,通过内部Internal MDIO的接口enetc_imdio_read访问内部返回都是ffff:

        1,卡switch时External MDIO和Internal MDIO的相关寄存器打印:

        PCS: ext_bus reg 0x17: 0004                                                                      
        PCS: ext_bus reg 0x10: 0184                                                                      
        PCS: ext_bus reg 0x1f: 0000                                                                                                                                               
        PCS: BMSR,enetc_imdio_read:ffff                                                                                 
        PCS: BMSR,enetc_imdio_read:ffff                                                                                 
        PCS: BMSR,enetc_imdio_read:ffff

        2,正常启动时时External MDIO和Internal MDIO的打印:

        PCS: ext_bus reg 0x17: 0004
        PCS: ext_bus reg 0x10: 0184
        PCS: ext_bus reg 0x1f: 0000
        PCS: BMSR,enetc_imdio_read:002d
        PCS: BMSR,enetc_imdio_read:002d
        PCS: BMSR,enetc_imdio_read:002d
        PCS: BMSR,enetc_imdio_read:002d

四,根据寄存器手册《LS1028ARM.pdf》,我们准备在出问题时访问对应的状态寄存器定位问题,发现出问题时可以访问iEPRC和ENETC相关寄存器,涉及到访问TSN-Switch的任何寄存器必卡死,手册具体对应章节如下:

        16.2 Integrated Endpoint Root Complex (iEPRC)      (switch卡死时,uboot可以读写这里面的寄存器)

        16.3 Ethernet Controller (ENETC)                                     (switch卡死时,uboot可以读写这里面的寄存器)

        16.4 TSN-Capable Ethernet Switch                                  (switch卡死时,uboot所有寄存器都不能访问,直接卡死在读取的地方)

wangxiaozhuang_0-1743128317016.png

0 Kudos
Reply
1 Reply

708 Views
yipingwang
NXP TechSupport
NXP TechSupport

1,我使用 ls1028ardb EVK 板没有复现客户的异常,请问的定制主板 软 硬 件有哪些ENETC相关改动?

2,客户描述的“出问题时可以访问iEPRC和ENETC相关寄存器,涉及到访问TSN-Switch的任何寄存器必卡死”,卡死了怎么访问的相关寄存器?

3,我没在uboot找到enetc_imdio_read函数?

4,在没有卡死的情况,且正常进入linux文件系统后,用devmem2频繁访问可能卡住的寄存器还会随机卡死吗?

0 Kudos
Reply