OpenMoko Uboot 介紹(二)

July 3, 2007

在前一篇已經介紹Uboot的重要性了, 接著介紹如何編譯和在power on後進入Openmoko Uboot

1. 請先參考 Openmoko wiki的網頁使用MokoMakefile的方式, 在自己的電腦build整個project, openembedded 是個強大的工具讓開發者能使用不同種類的硬體架構, 利用bitbake的技術和version control的軟體monotone來完成編譯映像擋, 若build成功後, 會在/home/moko/build/tmp/deploy/images/下面會看到uboot, rootfs, uImage, 還有dfu-util, openocd, sjf2410的tools.

2.接下來,如果我們要編譯Uboot的話,要到/home/moko/build/tmp/work/armv4t-linux/uboot/git/目錄下面進行編譯.

3.若要download image時, 使用dfu-util的方式

#tmp/dfu-util -a 1 -D uboot.bin

4. 若要進去Uboot的console的話, 首先要先按下911按鍵再按下power key, 在Boot Menu中若是要選擇USB的方式連到neo1973, 就選擇Set console to USB, 若是要選擇serial的方式連接, 就選擇Set console to serial.

5. 在Host端用minicom的方式, boud rate設成115200, hardware/software flow control選擇無, 即可與neo1973做連結, 即可進去neo1973設備的uboot console

6. Uboot內有幾個可用的commands, 可下help能可看到在uboot中支援哪些commands及所屬的功能

這些command除了可以驗證週邊硬體以外也能夠驗證SDRAM或是Flash的功能是否正常

接下來會再介紹Openmoko再uboot project中改變了哪些source code patch 🙂


OpenMoko Uboot 介紹(一)

July 2, 2007

Das U-boot (the Universal Boot Loader) —
越來越多的embedded linux device出現在這市場上, Uboot可以想成是在開機過後馬上會被執行的程式. 像桌上型電腦在BIOS會先initial硬體週邊後, 會去執行lilo或是grub程式, 通常是長駐在硬碟的MBR上, boot loader會將系統資訊(system information)傳給kernel再執行kernel部份, 並將硬碟的partition傳遞給kernel.

在embedded system裡面是比較複雜些, 因為沒有BIOS先執行初始化的系統設定, 像類似microprocessors, memory controllers, 和不同硬體週邊.

Uboot的主要功能

  • 初始化硬體, 特別是memory controller
  • 提供boot的參數(system information)給linux kernel
  • 啟動linux kernel

還有一些附加性功能

  • 讀寫任意memory的位址
  • 透過serial line或ethernet可將binary image上傳到device memory位址
  • 從memory上拷備binary image到flash上, 完成更新binary image動作

官方資源: