LoginSignup
2
0

More than 5 years have passed since last update.

Freescale関連置き場

Posted at

Freescale(NXP)のARM(QorIQ)でU-Boot起動したい

FreescaleだったのがNXPに変わりいろいろ検索できなくなって面倒のため、知識とリンク集として残す。
linux SDKもマニュアルも何か微妙に古いので混乱しやすい。

SDK

配布されているのはYoctoを使っているので非常に遅い。VirtualBoxでは24時間かかることを覚悟すべきである。
とてもじゃないが使えないし、linuxを使わないなら要らない。
U-Bootを単体でダウンロードして、U-Bootから好きなOSのカーネルを直接起動しよう。

Linux SDK for QorIQ 無駄にでかくて、どれをダウンロードすればいいか分かりにくい。マニュアルだけ参考用に。
Das U-Boot これが重要

U-Boot

SDKのマニュアルのメモリマップにいろいろ書かれているが、最新だと一致していない。
U-Bootは進化している。

SPL(Second Program Loader)

メモリマップにRCW+PBIが先頭にあって、別の領域にU-Boot本体があるように書いてあるが、実際は、u-boot-spl-pbl.binだけで起動できる。
PBLがRCWを読んだ後、PBIでSPLをSRAMにロードし、そちらに実行を移す。
SPLがU-bootを起動する。
これ1個書き込むだけで、RCWもPBIもU-bootも書き込み完了である。
真面目にメモリマップを見て、分離したファイルでやる意味はない。
ただし、SPLに対応していない場合は、makeしてもこのファイルは作成されない。
同じチップでも、起動する媒体(SDカード、MMC、FLASH)によってSPLが無いものがある。

順番 名称 説明
RCW 512ビットのコンフィグ
PBI SPLをSRAMに書くPBI
U-Boot U-Boot本体

RCW(Reset Configuration Word)を得るために

U-Bootで作って、spl-pblが付かないファイルしか出来ない場合、RCWのバイナリが必要である。(.pblがあれば、それはおそらくRCW+PBIのバイナリなので使用できる)
例によって、SDKのマニュアルには、Yoctoを使った全体buildしか書かれていない。
U-Bootのマニュアルも不十分であり、mkimageコマンドのhelpもずっと更新されていないので、正しい作成方法が分からない。

数百バイトのファイルのビルドに何時間も待てるわけもない。
有料の開発環境もない人間にはRCWを作ることはできないのか?

そんなことはない。SDKのRCWのソースだけを入手すればよい。
しかし、どこにもリンクが載ってない。3GBのでかいだけのisoイメージなんかゴミ箱に捨て以下からcloneか圧縮ファイルをDLしよう。
sdk/rcw.git
fsl-sdk-v2.0-1701.zip、fsl-sdk-v2.0-1701.tar.gz、fsl-sdk-v2.0-1701.tar.bz2あたりを持ってきて、解凍して、欲しいボードのフォルダでmakeすればよい。
RCWやPBIを変更も容易である。
何時間も掛かるYoctoなんて要らない。
コンパイル済みカーネルをどこかから持ってきた方が早い。

あとはRCWを各媒体で指定された領域に書き、PBIで指定したジャンプ先アドレスにu-bootイメージを書けばいい。今ならu-boot-dtb.bin(ファイル名はU-Bootバージョンによる)だろう。どのファイルが必要か各メーカーごとのREADMEに詳しく書いてあるだろう。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0