主な理由は「複数コア」の CPU にあると思います。非対称コアの場合、非常に重要です。i.MX6SoloX (シングル チップ上の Cortex A9 および Cortex M4)。
たとえば、i.MX6SoloX では、スレーブ コア(M5)がRAM (DDR)で実行される場合、メイン コア (A9)はメイン CPU であり、RAMの正しい位置にロードされたM4 コアコードを提供する必要があります。これらのコアには、互いに認識しない異なる D キャッシュがあります。FLASH から RAM へのコピー後に A9 コアが D キャッシュをフラッシュしない場合、コードの一部は実際には RAM にコピーされません。これは、D キャッシュ メモリがまだ残っているためです。U-Boot からこのコピーを実行すると、(U-Boot を実行している) A9 は正しくコピーされたすべてのデータを参照しますが、M4 はすべてのコードを参照しますが、A9 コアの D キャッシュに残っているコードは参照しません。
あなたの場合(あなたのような単一のコアだと思います)、Dキャッシュの所有者はコア自体であるため、U-BootがDキャッシュをフラッシュすることは必須ではありません(私が推測するカーネルコピーの後):それは見ることができますすべてのメモリ内のコード。
最後の理由は、実行されたデータ コピーが特定のアドレスにデータを完全に書き込んだことを許可するには、D キャッシュをフラッシュする必要があるためです。そうしないと、一部のデータがキャッシュ内に残る可能性があります。