次は lib_arm/board.c 中の第二段階入口関数 start_armboot :
赤字は重要。
第6章 U-boot を mini2440 に移植
U-BootはS3C2440をサポートしないため、移植はS3C2410 のファイルに基づき行う。従って、移植はS3C2440 と S3C2410、及びS3C2410 と mini2440 開発ボードの外部デバイスの違いに対し、適当の変更を行い、新機能も追加する。
移植する前、 S3C2440 と S3C2410の特性、違いも理解する必要がある。移植プロセスではチップと関連する、特にNandboot の原理と Norboot の内部 ram マッチング原理など。
S3C2440 と S3C2410 の違いは2440 のメイン周波数は高い、インタフェースでは、カメラインタフェースとAC‘97 オーディオインタフェースを追加し;レジスタでは、新しいモジュールレジスタの他、 NAND FlASH コントローラーのレジスタ、チップクロック周波数制御レジスタも変更がある、他のレジスタはほぼ同じ。
下記の変更は大部分がパッチの形式で移植する:
開発ボード設定オプション説明:
6.1.2 /board でmini2440 ディレクトリとファイルを作成
/board ディレクトリで開発ボード mini2440 のディレクトリを作成し、s3c2410x のファイルをここにコピーする、適当な変更を行う。目的: s3c2410xに基づき、移植の難易度を下げる。
ボードのvender にtekkamanninjaを設定した 、開発ボード mini2440 ディレクトリは/board サブディレクトリ中の tekkamanninja ディレクトリに作成する必要がある 、そうしないと、コンパイルは失敗する。
mini2440 ディレクトリのMakefileファイル変更(後も内容を変更する):
6.1.3 include/configs/で開発ボード設定ファイルを作成
sbc2410x と mini2440が一番類似するため、sbc2410x の設定に基づき変更する。
cp include/configs/sbc2410x.h include/configs/mini2440.h
6.1.4 コンパイル環境をテスト
U-boot ソースコードのルートディレクトリ:
make mini2440_config
Configuring for mini2440 board...
make
可能なエラー:
(1)設定エラー
make mini2440_config
Makefile:????: *** 区切り記号漏れ 。 停止。
U-boot のルートディレクトリのMakefile の゛@$(MKCONFIG) $(@:_config=) arm arm920t mini2440 tekkamanninja s3c24x0 ゛前で゛Tab゛ボタンを追加、Makefile のルール:全てのコマンドは゛Tab゛で開始する。
(2)コンパイル時に下記のエラーが出る(コンパイラの問題、無視):
uses hardware FP, whereas u-boot uses software FP
修正:
テストが正常に終了後、コンパイル環境と基本の開発ボードのコードの作成は成功である。現在コンパイルのはS3C2410に基づき、次はコードの実行プロセスで mini2440用に変更する。
6.2 第一段階:起動コード
/cpu/arm920t/start.Sに入る
6.2.1 AT9200用のLED ジャンプをクローズ
6.2.2 CPU 周波数初期化設定変更
2410 と 2440異なるのは、PLL の初期化パラメータ、データマニュアルで検索出来る。先ず周波数を 405MHzに設定する。割り込みマスクコードの修正も含む。
6.2.3 lowlevel_init.S ファイル変更
mini2440用のストレージ設定(パス接続のNor Flash とSDRAM)、lowlevel_init.Sファイルを変更する。接続するNor Flashのビット数と関連する。SDRAMのパラメータはチップマニュアルで検索出来る。64MBのメモリーを128MBに変更する例もある、そのパラメータはここで変更できる、詳細は MINI2440: Auto probe for SDRAM sizeを参照 。
64MB メモリーのパラメータ変更:
lowlevel_init.Sには1つの bugがある、直接OpenJTAGを使用してメモリーにダウンロードできない、直接実行できないため下記のように修正:
6.2.4 コードリダイレクト部分変更
Tekkaman Ninjaはバージョン 2009.08から起動時のSDRAM検索機能 (OpenJTAGでロード)、及びチップNorboot/Nandbootでコードリダイレクトのモデルを決定する判断機能追加した、従ってコンパイルしたbinファイルは同時にNand FlashとNor flashをプログラミングでき、そしてOpenJTAGにロード/デバッグ出来る。
----------続く