AR# 53499

PetaLinux v1.1 - U-BOOT から PetaLinux をブートできない

説明

u-boot がカーネルを開始後に PetaLinux イメージをカーネルまたはネットワーク (netboot を使用) からブートしますが、何も起こらず、ボードも起動していなように見えます。

## Booting kernel from Legacy Image at 50002000 ... Image Name: PetaLinux Kernel 2.6-MMU Image Type: MicroBlaze Linux Kernel Image (uncompressed) Data Size: 9481732 Bytes = 9 MB Load Address: 50000000 Entry Point: 50000000 Verifying Checksum ... OK Loading Kernel Image ... OK OK ## Transferring control to Linux (at address 50000000), 0x50000000 ramdisk 0x00000000, FDT 0x00000000...

しかし、Linux カーネル image.elfpetalinux-jtag-boot を使用して直接、問題なくブートできます。

PetaLinux v1.1 を使用しています。

ソリューション

背景

ボードが起動しない原因としては、クロックやリセット信号などハードウェアの不適切な設定や、シリアル ポート インターフェイスの設定の誤りなど、さまざまな要素が考えられます。

ただ PetaLinux SDK 1.1 リリースには、カーネル ブートの初期段階における CPU の初期化に関連して、この問題を引き起こすバグがあります。次の回避策を実行し、それでも問題が発生するかを確認してください。

PetaLinux SDK v1.2 およびそれ以降では、この問題は発生しません。

回避策

この問題を回避するには、次のファイルを修正します。

$PETALINUX/software/linux-2.6.x/arch/microblaze/kernel/setup.c

56 行付近で、次のようにします。

        /* Add this line */ invalidate_dcache(); enable_dcache()

これにより、CPU データ キャッシュが有効になる前に、正しく無効化されます。

この後、カーネルおよびシステム イメージを再構築し、再びブートしてください。

この変更後も問題が発生する場合、その原因はその EDK ハードウェア プロジェクトなど、ほかのところにあると考えられます。

解決策

この問題は、PetaLinux v1.2 およびそれ以降のリリースで修正されています。

AR# 53499
日付 02/05/2014
ステータス アクティブ
種類 一般
デバイス
ツール
IP