拡大し続けるサイズに画像を適応させるDRAMの問題

拡大し続けるサイズに画像を適応させるDRAMの問題

Zynq700 SoCを搭載した専用ボードには512MiBのメモリがあります。これはアドレス範囲[0x00000000,0x20000000]に対応します。

私はRAMベースのOSを実行しており、次のように変更するまでは正常に動作しました。

  • 追加の変更なしでrootfsにvalgrind、gdb、gdbserver、およびstraceパッケージを追加しました。

ついに:

  • 私のピット画像が大きくなりました(〜x2)。
  • JTAGを介してclobstartからこのitbをロードします(アドレス0x10000000で定義しました)。
  • イメージに適したホストでcrc32を計算し、u-boot crc32ユーティリティを使用して対応するRAMアドレスからファイルサイズに移動しましたが、crcは同じです。
  • ブートを続けましたが、以下のメッセージが表示され、カーネルがハングします。

おそらく、DRAMの対応する領域にすでにロードされているものが重なっている可能性があると思いました。詳細については、以下にfitImageの詳細を残してください。

==> bootm $clobstart
## Loading kernel from FIT Image at 10000000 ...
   Using 'conf@1' configuration
   Verifying Hash Integrity ... OK
   Trying 'kernel@1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x100000cc
     Data Size:    46423824 Bytes = 44.3 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x00008000
     Entry Point:  0x00008000
     Hash algo:    crc32
     Hash value:   3d108223
   Verifying Hash Integrity ... crc32+ OK
## Loading fdt from FIT Image at 10000000 ...
   Using 'conf@1' configuration
   Trying 'fdt@1' fdt subimage
     Description:  Flattened device tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x12c460c0
     Data Size:    16036 Bytes = 15.7 KiB
     Architecture: ARM
     Hash algo:    crc32
     Hash value:   15b17b33
   Verifying Hash Integrity ... crc32+ OK
   Booting using the fdt blob at 0x12c460c0
   Loading Kernel Image ... OK
   Loading Device Tree to 07ff9000, end 07fffea3 ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

Error: unrecognized/unsupported machine ID (r1 = 0x00000000).

Available machine support:
ID (hex)     NAME
ffffffff     Generic DT based system
ffffffff     ARM Versatile Express
ffffffff     Xilinx Zynq Platform

Please check your kernel config and/or bootloader.

関連情報