imx28のJTAGファームウェア

imx28のJTAGファームウェア

私の目標は、imx28開発ボードをベースにしたwinkハブ1のメモリにカスタムカーネルとinitramfsをロードし、u-bootシェルからbootmコマンドを使用して起動することです。

そこで、u-boot 2014.01のソースコードをダウンロードし、提供されたパッチを使用して最初からビルドしました。ここ次に、最新のビルドルートをダウンロードし、imx28ボード用のカーネル、ルートファイルシステム、およびinitramfsをビルドしました。

JTAGを使用するとロードできますが、u-boot at 0x40000100, kernel at 0x42000000このinitramfs at 0x42300000アドレスをu-bootシェルに渡し、bootmを押すと解凍後にカーネルがフリーズし、何も起こりません...

カーネルに問題があるのではないかと思ったが、カーネルアドレスだけを渡してカスタムアドレスをロードしなくても(つまり、NANDメモリにカーネルをロードします)RAMでは、カーネルはまだフリーズして起動できず、コマンドとしてのみ機能しますboot (bootcmd)

これは、メモリアドレスからカーネルを手動でロードしようとしたときの出力です。解凍した後は何も起こりません。

=> bootm 42000000 42300000 
## Booting kernel from Legacy Image at 42000000 ...
   Image Name:   Linux-2.6.35.3-flex-dvt
   Created:      2014-04-30   3:15:35 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1928460 Bytes = 1.8 MiB
   Load Address: 40008000
   Entry Point:  40008000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 42300000 ...
   Image Name:   Root Filesystem
   Created:      2019-01-12  14:23:44 UTC
   Image Type:   ARM Linux RAMDisk Image (uncompressed)
   Data Size:    893637 Bytes = 872.7 KiB
   Load Address: 40800000
   Entry Point:  40800000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

しかし、u-bootシェルでは、bootコマンドをクリックすると起動し、すべてがうまく機能します。

何が間違っているのかわかりません。/include/configs/mx28evk.hカーネルのuImage、initramfs、およびfdtアドレスを確認しましたが、すべてが正しいようです。

答え1

問題がどこにあるのか調べました。

低レベルのデバッグを有効にし、すべてのprintkを組み込みのICE UARTポートにリダイレクトして、UARTコンソールに出力が表示されないようにしました。

[ ] Kernel low-level debugging functions 
      [ ] Early printk (NEW)
      [ ] Kernel low-level debugging via EmbeddedICE DCC channel (NEW)

上記のように選択しないでください。

ありがとう、アミット。

関連情報