ubootカーネルとdtbの計算

ubootカーネルとdtbの計算

ubootでこれらのパラメータを計算する方法は? :

bootm_low=0
bootm_size=7ff00000
fdt_addr_r=0x40000000
fdt_high=0x100000
fdt_size_r=0x400000
fdtcontroladdr=7bc971c0
kernel_addr_r=0x18000000
kernel_comp_addr_r=0x30000000
kernel_comp_size=0x3C00000
kernel_size_r=0x10000000
loadaddr=0x8000000
pxefile_addr_r=0x10000000
ramdisk_addr_r=0x02100000

私の起動コマンド:

fatload mmc 0:1 $kernel_addr_r Image.gz
fatload mmc 0:1 $fdt_addr_r system.dtb
booti $kernel_addr_r - $fdt_addr_r

A53には4GまたはDRAMがあります。これらのパラメータの1つを変更すると、カーネルは異なる動作をします。

このパラメータがないとカーネルを起動できないため、このパラメータを使用していますが、fdt_high正しい値を計算する方法がわかりません。

助けてくれてありがとう

答え1

これらの項目をすべて設定しないでください。すべての項目にカーネルをロードして起動する必要はありません。次の記事を参照してください。https://u-boot.readthedocs.io/en/latest/usage/environment.htmlこの意味を理解し、特定のSoCの他の例を見て、使用できる合理的なデフォルト値を見つけることができます。

答え2

解決しました。 RAM構成の問題です。 4GBではなく2GBがあります。

デバイスツリーのメモリセクションを変更し、ubootパラメータのデフォルトアドレス値を使用しましたが、うまくいきました。

関連情報