LS1046Aを使用してカスタムボードの起動を確認しています。 QSPIモードでの起動を有効にするために、https://github.com/nxp-qoriq/atf.git でPBLを作成しました。ただし、実行すると、コンソール メッセージは "NOTICE: BL2: Built: [date and time]" で停止します。
アドバイスに従って、QCVS DDRツールを使用してDDRにアクセスしましたが、読み取りと書き込みの両方が失敗しました。また、[対象接続]タブの[接続診断]を実行した際、[DDRメモリアクセスのテスト]部分に「0x80000000アドレスにデータを書き込めません」というエラーが出力されました。
カスタム ボードの DDR を初期化するために 、https://github.com/nxp-qoriq/atf.git でどの領域を変更する必要があります か?現在は、そのLS1046ARDBをもとにPBLを作成しています。
ありがとうございます。
はい、DDRvツールで提供されているパラメータを使用してください。
おかげさまでDDRの初期化は成功しました。ただし、3番目のステップも必要だったので、書き留めておきます。
ATF コード 3.In、エラータ A09803 では ddr_out: address=0x1080114, value=0x401160" と設定されていますが、DDRv ツールで生成された DDR 初期化ファイルでは CCSR_BE_M(0x01080114, 0x00401150 | 0x00000020) と記載されていました。したがって、ddr_init.c を変更することにより、0x114に0x401170を書き込むには、うまくいきました。
これはバグですか?
1.まず、カスタムボードで新しいDDRを起動するには、QCVS DDRvツールを使用して検証と最適化を行い、atfソースコードで使用するための最適化されたパラメータを取得することをお勧めします。
QCVS DDRv ツールの使用方法については、次のドキュメントを参照してください。
https://www.nxp.com.cn/docs/en/user-guide/QCVS_DDR_User_Guide.pdf
「SPDからの読み取り」方法を使用してQCVS DDRプロジェクトを作成し、カスタムボードに接続して検証を行い、最適化されたパラメータを取得し、ビルドしてコードddr_init.cを生成できます。ATFソースコードで使用します。
2.カスタムボードに従ってatfソースコードを変更します。
フォルダflexbuild_lsdk2108_githubに戻り、次のコマンドを実行してatfソースコードを取得します。
$ flex-builder -c atf -m ls1046ardb -b qspi
atfソースコードフォルダcomponents / firmware / atf /に移動し、カスタムボードに応じてDDRコントローラ初期化ファイルplat / nxp / soc-ls1046a / ls1046ardb / ddr_init.cを変更してください。
次のコマンドで atf を再構築します。
$ flex-builder -c atf -m ls1046ardb -b qspi
atf イメージ bl2_qspi.pbl と fip_uboot.bin が flexbuild_lsdk2108_github/build/firmware/atf/ls1046ardb/ フォルダにあります。
bl2_qspi.pbl を 0 に、fip_uboot.bin を QSPI フラッシュの 0x100000 に展開してください。