qca956x flash usb
Qca9563 平台: qca956x +ap152 1.?????? Flash 地址问题 原板设计为16M nor flash,后期改为32M flash,? 出现不能访问后16M flash空间,从原理来看,访问16M及大于16M flash 空间,只有一个地址命令的区别, 发送三地址命令或者四地址命令。 首先排除的是:发送命令的原因,即驱动发送的读写命令正确 第二,用正确的读写命令,操作后16Mflash 空间。??? 结果不成功。 ? 后来内存映射才发现高通CPU对spi NorFlash的特殊的读取优化,优化的空间长度为16M,所以用标准的spi 读取命令会失败。
从映射图中可以,flash仅可以映射16M。 通常,访问SPI Nor Flash都是基于SPI总线接口,串行读取。但是高通的CPU对此做了一个硬件优化,可以将16MB及以下的Flash地址空间映射到一个内存空间直接访问(对于这些MIPS内核的高通CPU,该段空间属于kseg1区域),这样当要读取这些flash上的内容时,代码可以采用memcpy模式,很好的提升了读取速度。 这种方式虽然可以提升flash读取的速度,缺点是可以访问16M 以下flash空间,所以对于16M 以上的flash,就需要disable 这种确件优化,使用通用spi 总线去操作Nor flash. 以使可以灵活操作16M flash以的空间。 ? 修改为标准spi mode 1.如果没有设备树的情况,最简单的方式,在驱动probe的时候,将is_flash 赋值为 0 2. 如果有设备树的情况下,注释掉 is-flash这行,即切换为spi标准模式 ? 2.?????? USB 时钟问题 由于在项目中遇到usb不通的问题,奇怪的是在evt在没有问题,但在dvt上有问题,看起来是一个离奇的问题。 在驱动上debug,得到结果是usb controler收不到任何数据,接着下一步开始debug时钟,当前使用的ehci,usb2.0,最高速度480Mbit/s,所认让usb controler进入test mode,用仪器测试时钟,发现时钟高达500多M,于是重点找时钟问题。 开始查register USB_REFCLK_FREQ_SEL: 0x2? 25MHZ USB_REFCLK_FREQ_SEL: 0x5? 50MHZ 最终发现reset之后用的0x5,而我们当前所用的外部时钟为25MHZ。呵呵哒 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |