我目前一个项目使用2440+一片SDRAM(16位),nand为K9F1208,没有NOR。因为内存是16位的,所以把vboot中的相应寄存器做了修改,主要是以下两个:
#define vBWSCON 0x11111110 //原来的值是0x22111110
#define vBANKSIZE 0xB0 //原来的值是0xB2
其他未做修改(个别板子用到的GPIO口设置了初值)。VBOOT可以启动,但是反复重启。
我在main()函数中增加了打印信息:
void Main(void)
{
MMU_EnableICache();
MMU_EnableDCache();
Port_Init();
NandInit();
Uart_SendString("vboot begining...\n\r"); /////
Uart_SendString("22222222222222...\n\r"); //////
if (g_page_type == PAGE_UNKNOWN) {
Uart_SendString("\r\nunsupport NAND\r\n");
for(;;);
}
GetParameters();
Uart_SendString("load Image of Linux...\n\r");
ReadImageFromNand();
}
启动后发现VBOOT执行Uart_SendString("vboot begining...\n\r")语句,在串口正确输出打印信息后,会重新启动。不会执行到Uart_SendString("22222222222222...\n\r");
不知道什么原因,忘大侠指导!