使用uboot啟動低版本內核卡死在Starting kernel...


  在u-boot2016.11(我用的這個版本)中用串口發送的時候使能了FIFO的方法,因fifo_mask,fifo_max沒有被賦值,所以導致卡死在一個while循環里面(\linux\arch\arm\plat-samsung\include\plat\uncomperss.h static void putc(int ch))。

解決辦法:

  1.把uboot的串口FIFO關閉,linux那邊就不會走這邊的流程就沒有問題成功引導內核,打印正常,但是在uboot打印的時候就會出現問題。所以我的解決辦法是在uboot打印完最后一句話(Starting kernel...)且fifo為空的時候的時候再將程序交接給內核。

  2.還有一個辦法就是修改內核,修改方法:在\linux-3.0.8\arch\arm\mach-s5pv210\include\mach\uncompress.h中

  

static void arch_detect_cpu(void)
{
  /* we do not need to do any cpu detection here at the moment. */
  fifo_mask = S5PV210_UFSTAT_TXMASK; //yiming add
  fifo_max = 255 << S5PV210_UFSTAT_TXSHIFT; //yiming add
}

我用的第一種方法解決的,第二種方法沒事實驗過。解決方法的出處:http://www.arm9home.net/read.php?tid=86329


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM