本司一新项目 采用c6678 研发设计了一款 DSP 核心扣板,由于是和第三方合作的,单板的 硬件设计 由 我这边完成,单板的kernel 软件由对方完成。
核心扣板 除了基本的时钟、电源 ,外设 只有 PHY 88E1111,5颗DDr3 K4B1G1646G-BCH9,单板上电后从网络加载启动, 现在有两块6678核心扣板,这这两块板 每次上电 均能正常发出bootp包,但从网络 加载kernel,只有 一块单板能正常加载kernel,另外一块单板不能始终不能正常加载kernel,开始怀疑是 DDR3 初始化参数的问题,根据单板 ddr3 pcb layout 按DDR3 PHY Calc v11 1333.xlsx 生成新的kernel 进行测试,实际发现 不管 DDR3 PHY Calc v11 1333.xlsx 里面的参数 怎么改,能正常boot 的那块 单板 总是能正常boot ,而另外一块始终 不能boot起来。我的疑惑是为什么 能boot 起来的那块单板 即使用明显 错误或 差别很大(长度与实际走线的 DDR3 PHY Calc v11 1333.xlsx leveling 参数 生成的kernel,始终 boot 正常,按正常 如果如果参数 误差太大 或明显 错误,应该会导致明显的boot异常才是?
另外,本项目在研发调试时,起初单板不能正常boot,加载boot 然后电脑没有抓到成功 dsp返回的boot 成功的包,此时用一个外部cpu 的mdio 接口 去 读取 phy 芯片的 sgmii 接口的link 状态,显示 sgmii 接口 为link down, 第三合作方 定位说是内存问题导致,我的疑问是 如果内存有问题 会导致 SGMII 接口在boot 加载kernel 阶段 link 失败吗?按说sgmii 只是底层物理接口,其link 状态 的变化 应该跟boot加载是否正常 无关?
麻烦帮忙看一下 以上两个问题
谢谢!