专家们好,最近在搞AM1808的UBL,EVM用的是mDDR,我的板子改成了DDR,用SPImem启动,在编译BUL之前,我改了device.c,具体如下:Uint32 DEVICE_init()
{
Uint32 status = E_PASS;
// Ensure the kick registers are unlocked
// Note these lines have no effect on 2.0 and later silicon
DEVICE_kickLock();
DEVICE_kickUnlock();
SYSTEM->SUSPSRC &= ( (1 << 27) | (1 << 22) | (1 << 20) | (1 << 5) | (1 << 16));
#ifndef SKIP_LOW_LEVEL_INIT
// System PSC Setup
DEVICE_PSCInit();
// System PLL Setup
if (status == E_PASS)
{
#if defined(AM1808)
// CPU(s) at 456 MHz
status |= DEVICE_PLL0Init(0, 18, 0, 0, 0, 18, 8);
//--------------------------------------------------------------//
// paul_20120219
/* #elif defined(INTDEV0)
// CPU(s) at 300 MHz
status |= DEVICE_PLL0Init(0, 24, 0, 1, 0, 11, 5);
#else
// CPU(s) at 300 MHz
status |= DEVICE_PLL0Init(0, 24, 0, 1, 0, 11, 5);*/
//--------------------------------------------------------------//
#endif
}
if (status == E_PASS)
{
// mDDR @ 150MHz
//status |= DEVICE_PLL1Init(24, 1, 0, 1, 2);
//DDR @ 132MHZ
status |= DEVICE_PLL1Init(21, 1, 0, 1, 2);
}
// External Memory Timing Setup
if (status == E_PASS)
{
//#if defined(INTDEV0)
// Timings for DDR2 at 132 MHz
status |= DEVICE_ExternalMemInit(0x00000047, 0x08934832, 0x204929C9, 0x0C12C722, 0x00000406, 0x00000000);
// #else
// Timings for mDDR at 150 MHz
//status |= DEVICE_ExternalMemInit(0x000000C4, 0x0A034622, 0x1C912A08, 0x3811C700, 0x00000494, 0x00000000);
//#endif
}
#endif
编译完后,用AISgen工具生成ubl.bin,然后把Uboot烧入SPI Flash的0x00010000,reset后,串口输出:
AM1808 initialization passed!
Booting TI User Boot Loader
UBL Version: 1.65
UBL Flashtype: SPI
Starting SPI Memory Copy
DONE
Jmping to entry point at 0xC1080000.
然后就停止了,不知道是怎么回事?希望专家们指点,谢谢!