这是我在PXA270处理器上移植linux-2.6.9的过程遇到的一个问题。
u-boot移植成功后,我开始把开发板的linux-2.6.9的内核镜像下载到最小系统中运行。
内核启动到pxa_init就不动了。经过进一步的跟踪后发现问题出在mempool_alloc_slab。
这让我想到可能是SDRAM控制器的设置有问题,因为在画原理图的时候就在SDRAM的bank选择地址线存在疑问,我们之前的PXA255平台采用的是A22、A23,而新买的PXA270的开发板是采用A23、A24。最后是选择A23、A24来作为SDRAM的bank选择。
在CPU的datasheet中可以看到:
选择SA-1110 Addressing Mode,则以A22、A23来做bank选择
2x13x9x16 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 23 22 0 9 8 7 6 5 4 3 2 1
选择非SA-1110 Addressing Mode,则以A23、A24来做bank选择
2x13x9x16 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 24 23 0 9 8 7 6 5 4 3 2 1
修改MDCNFG寄存器的值后没有再出现内存分配的问题。
现在回想起来,u-boot的正常运行反而让我以为SDRAM的设置正确,多花了些时间来分析调试linux内核源码。
阅读(1208) | 评论(0) | 转发(0) |