ti技术支持工程师你好!
我公司现在 用TI 提供的LCDK
开发板文件试小批量生产,SDK也是TI网站上下载的,linux 3.3.0,u-boot也是此SDK提供的,现在发现有些板能正常启动linux,有些板子则停止在“Uncompressing Linux... done, booting the kernel. ”不动了。
NAND: 512 MiB
MMC: davinci: 0
Bad block table found at page 262080, version 0x01
Bad block table found at page 262016, version 0x01
In: serial
Out: serial
Err: serial
Net: DaVinci-EMAC
Hit a 'f' or 'F' key to stop autoboot: 0
Loading from nand0, offset 0x200000
Image Name: Linux-3.3.0
Image Type:
ARM Linux Kernel Image (uncompressed)
Data Size: 2332896 Bytes = 2.2 MiB
Load Address: c0008000
Entry Point: c0008000
## Booting kernel from Legacy Image at c0700000 ...
Image Name: Linux-3.3.0
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2332896 Bytes = 2.2 MiB
Load Address: c0008000
Entry Point: c0008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
在u-boot下,用查看内存,经过跟踪调试发现是
static __init void omapl138_lcdk_init(void)
[
int ret;
davinci_serial_init(&omapl138_lcdk_uart_config);
/*
* shut down uart 0 and 1; they are not used on this board and
* accessing them causes endless "too much work in irq53" messages
* with arago fs
*/
__raw_writel(0, IO_ADDRESS(DA8XX_UART1_BASE) + 0x30);
__raw_writel(0, IO_ADDRESS(DA8XX_UART0_BASE) + 0x30);
omapl138_lcdk_config_emac();
ret = da850_register_edma(da850_edma_rsv);
pr_info("INIT: da850_register_edman");
if (ret)
pr_warning("%s: EDMA registration failed: %dn",
__func__, ret);
omapl138_lcdk_mmc_init();
pr_info("INIT: omapl138_lcdk_mmc_initn");
omapl138_lcdk_u***_init();
pr_info("INIT: omapl138_lcdk_u***_initn");
ret = da8xx_register_watchdog();
pr_info("INIT: da8xx_register_watchdogn");
if (ret)
pr_warning("omapl138_lcdk_init: "
"watchdog registration failed: %dn",
ret);
ret = da8xx_register_rtc();
pr_info("INIT: da850_register_rtcn");
......
]
是停止在 da8xx_register_rtc() 此函数不动了,屏蔽此函数则可以了,为什么会这样的呢?