天使的翅膀--BCM5300X平台调试笔记

转载地址:http://blog.chinaunix.net/uid-8447633-id-143648.html

10月20到11月19日,bcm53003平台花一个月时间终于完成了。
 
大概情况如下
1)bootloader
  排除硬件CPU大小端配置错误后Bootloader一版起机,意料之中。
---
 
2)nandflash驱动
 
  bcm53003的nandflash比较bt,现在local bus框架下的底层驱动接口要全部重构。相当于nand是基类,local bus接口的只需要实现hwcontrol()和读写数据的地址即可。但由于bcm53003 nand控制器的特殊,通过框架下的nand_base.c下的较多驱动接口不在适用,需要根据bcm53003 nand控制器重构上述驱动接口。在nand初始化的时候,将重新实现的nand接口注册到nand驱动框架。相当于在nand基类实例化的时候,重载了部分接口。加载ctrl(>6MB)到nandflash过程中死机,跟踪到是内存改写导致死机。(10月21日)
 
  有个地方主要注意的是:Programer's Gudie中控制器中行列地址长度寄存器不能按实际的长度设置,否则会写坏oob区。行列地址长度都要设为1byte才能正常。(很bt是不?) 这个问题反馈给FAE,FAE也确认是要这样配置。
---
 
3)pcie驱动
 
  10月22日例会沟通:先调试PCIe把文件系统问题放到后面再找。
  可以扫到PCIe设备、可以分配到地址空间。(10月25)
 
  访问PCIe设备memory地址空间遇到bus error异常。查文档、检查代码、查cfe源代码,没有发现问题。
拿demo板上cfe来跑一把,发现cfe也有同样的问题。发现邮件反馈给FAE,FAE隔日来访与之讨论,没有结论。(10月28)
 
  拿demo的主程序跑一把,demo主程序可以访问PCIe设备memory空间。又发现在demo主程序跑过一次后,不掉电重启到cfe,在cfe中也可以访问PCIe设备memory空间了。因此得出结论,cfe PCIe初始化有些东西没有初始化完全,在主程序中初始化才完全。将demo main中pcie host/device的寄存器dump出来和我们程序中的寄存器值比对。发现有几个不同,其中有一个关键的是pci device command寄存器的memory位没有打开。在PCIe控制器初始化玩之后,将上述memory置位后pcie device memory可以访问。由于ssp要的比较急,现在这个修改当作一个补丁版本提交。(10月29日)
 
  按照正常PCI驱动初始化的时候应该会把设备command寄存器的memory位置上才是。检查到PCIe配置空间读写算法,对于half word和byte访问的会有问题。细节发现,这个算法对于little-endian来说是正确的,对于big-endian half word和byte访问就错了。修改配置空间读写算法使之可以大小端都使用。例会上向硬件反映这个文件系统问题怀疑可能是内存不稳定导致,提供hwtest请硬件测试信号。(11月1日)
 
4)工程支撑
  继续查找文件系统问题(11月2、3)
 
  由于spi flahs暂时无法支持8MB(只支持4MB),>6MB的ctrl无法加载到spi flash里面需要将ctrl压缩。创建ctrl解压缩工程。在ctrl解压过程挂住,跟踪发现原来ctrl解压缩工程最大只支持4MB的ctrl、2MB的ctrl压缩包。修改支持最大7MB的ctrl、3.5MB的ctrl压缩包。创建ctrl解压缩工程的另一个原因是spi flash写入速度太慢,boot通过xmdown(115200bps)加载一个2.5MB的ctrl压缩包到内存需要大约需要5分钟、从内存写入spi flash大约需要20分钟。如果直接写>6MB的ctrl,大概需要50分钟。
 
  硬件内存测试发现时序基本满足,但是可能有些临界。
 
  SSP反馈main无法加载到内存。原来main最大只支持16MB - 128KB,这次的main确有近20MB。创建main解压缩工程将内打包,在main解压后中挂住控制台没有输出,试过多中波特率后还是没有输出。使用同样的解压缩功能将hwtest打包,hwtest解压缩正常。ssp怀疑和main大小有关系,说main的bss段有30MB。将hwtest bbs段也设置到30MB后在hwtest解压缩还是正常。调整ctrl加载地址和buffer大小,使之可以直接加载main到内存,不再依赖main解压缩程序。但是直接加载main还是控制台还是没有输出。
 
  先确定有没有跳转到main。实现汇编早期串口打印并将调试开关打开,发现已经跳转到main。然后再bsp 起机路径上加打印发现在spi flash初始化的时候有调用了printf打印挂起。(11月14)
 
  未完待续...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值