uboot イメージの複製を理解する

uboot イメージの複製を理解する

以下は から抜粋した内容です。u-boot-xarm/include/configs/zynq_zc702.h

"qspiboot=echo Copying Linux from QSPI flash to RAM...; \
                cp 0xFC100000 0x8000 ${kernel_size}; \
                cp 0xFC600000 0x1000000 0x8000; \
                echo Copying ramdisk...; \
                cp 0xFC800000 0x800000 ${ramdisk_size};\
                ping 10.10.70.101;\
                go 0x8000\0" \

誰かが次の2行で何が起こっているのか説明できますか?

                    cp 0xFC100000 0x8000 ${kernel_size}; \
                    cp 0xFC600000 0x1000000 0x8000; \

このアドレスはどのように選択されますか?住所がなぜこんなに多いの?

答え1

Linuxを起動する前に、フラッシュメモリに保存されているカーネルとinitrdをRAMにコピーしてください。 cp コマンドは次に記録されます。cp - メモリコピー

ソースアドレスは、フラッシュu-bootコードを保持しないフラッシュメモリ領域です。宛先アドレスは、u-bootが実行中に独自のコード/データに使用しないRAM領域です。

答え2

QSPI flash-to-RAMコピーコマンドの構文定義を見たことはありませんが、パターンは次のとおりです。

cp src_addr dst_addr copy_size

2番目のコピーは、devicetree.dtbRAM上のLinuxカーネルの開始アドレス(0x8000)とまったく同じサイズ(0x8000)のデバイスツリー()用です。

関連情報