Note: Build U-boot for Panda board

Sourcery G++ Lite 2010.09-50 (gcc 4.5.1)去 build u-boot, 會發現console顯示的記憶體大小都為零, 追了一下code, 發現問題出現在 int dram_init(void)/omap4.c 內, 當程式設定 gd->bd->bi_dram[0] 都無正確的結果, 但是取address是正確的,

之後用cast pointer去寫值驗證是成功, 但是用 gd->bd->bi_dram[0] 將會不正常, 推測是 u-boot用的optimazation 的技巧(keyword: DECLARE_GLOBAL_DATA_PTR ), 在新的gcc 4.5.1上產生了問題, 這問題, 基本上可以用 objdump 去double check, 但是懶的查, 就換了成舊的 Sourcery G++ Lite 2009q1-203 (gcc 4.3.3), 換成該版是因為很多人說 gcc 4.4的版本問題也很多

  • make distclean  # clean all objects
  • make CROSS_COMPILER=arm-none-linux-gnueabi- omap4430panda_config # setting config file for Pandaboard
  • make CROSS_COMPILER=arm-none-linux-gnueabi- # build u-boot.bin

然後在u-boot目錄內執行上述指令就可以得到 u-boot.bin

使用的 u-boot repository 是 git://git.omapzoom.org/repo/u-boot.git

目前Ti 正在implement from EFI Partitions load OS image, 所以這邊待修正

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: