TIwilliam hill官网
直播中

王希予

7年用户 147经验值
私信 关注
[问答]

初始化L138 RTC导致 "Uncompressing Linux... done, booting the kernel." 不能启动linux

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()  此函数不动了,屏蔽此函数则可以了,为什么会这样的呢?

回帖(1)

王希予

2018-6-21 13:34:59
原因找到了,是由于没有给L138 的 RTC 供电造成的。 由于我没有用L138的RTC,所以焊接时也没给L138 的 RTC 供电,即使不用它也得要给它供电才行。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分