1124193_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

1124193_ja-JP

1124193_ja-JP

LS1043ARDB - TF-A バイナリを NAND フラッシュにデプロイする方法<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Cortex-A 用の信頼できるファームウェア (TF-A) は、EL3 セキュアファームウェアの実装です。TF-A はセキュアファームウェアの役割で PPA を置き換えます。

このトピックに記載されている手順はLSDK 18.12以降のリリースでのみ実行可能です。

以前のブートフロー(PPA 使用)から TF‑A ブートフローへ移行するには、bl2_..pbl と fip.bin をコンパイルし、対応するブートメディアにフラッシュする必要があります。

NANDブートの場合、次のTF-Aバイナリをコンパイルする必要があります。

TF-A バイナリ名コンポーネント

bl2_nand

  • BL2 バイナリ: プラットフォーム初期化用バイナリ
  • NANDブート用のRCWバイナリ

fip.bin

  • BL31:セキュアランタイムファームウェア
  • BL32: 信頼できるOS、例えば、OPTEE(オプション)
  • BL33: U-Boot/UEFIイメージ

次の手順に従って、TF-A バイナリ (bl2_nand.NANDフラッシュのpbl and fip.bin)。

  1. RCWソースファイルからPBLバイナリをコンパイルする
  2. U-Boot バイナリをコンパイルする
  3. [オプション] OP‑TEE バイナリをコンパイル
  4. TF-A バイナリ (bl2_nand.NANDブート用のpbl and fip.bin)
  5. TF-A バイナリを NAND フラッシュにプログラム

ステップ1:RCWソースファイルからPBLバイナリをコンパイルする

rcw_1600_nandboot.binをコンパイルする必要がありますbinary は bl2_nand.pbl バイナリをビルドします。

rcwリポジトリをクローンし、PBLバイナリをコンパイルしてください。 

  1. $ git clone https://source.codeaurora.org/external/qoriq/qoriq-components/rcw
  2. $ cd rcw
  3. $ git checkout -b  例: $ git checkout -b LSDK-19.03 LSDK-19.03 
  4. $ cd ls1043ardb
  5. 必要に応じて、rcw ファイルに変更を加えてください。
  6. $ make

LS1043ARDB での NAND ブート用にコンパイルされた PBL バイナリ rcw_1600_nandboot.bin は、rcw/ls1043ardb/RR_FQPP_1455/ から入手できます。 

RCWソースファイルとバイナリファイルを含むディレクトリの命名規則の説明については、rcw/ls1043ardb/READMEファイルを参照してください。

ステップ2:U-Bootバイナリをコンパイルする

u‑boot.bin をコンパイルして fip.bin をビルドする必要があります。

u-boot リポジトリをクローンし、TF-A用のU-Bootバイナリをコンパイルしてください。

  1. $ git clone https://source.codeaurora.org/external/qoriq/qoriq-components/u-boot.git
  2. $ cd u-boot
  3. $ git checkout -b  LSDK-. 例: $ git checkout -b LSDK-19.03 LSDK-19.03 
  4. $ export ARCH=arm64
  5. $ export CROSS_COMPILE=aarch64-linux-gnu-
  6. $ make distclean
  7. make ls1043ardb_tfa_defconfig
  8. $ make

makeコマンドでエラー " *** お使いのGCCが6.0より古く、サポートされていません " が表示される場合は、LSDK 18.12 U-BootバイナリのビルドにUbuntu 18.04 64ビットバージョンを使用していることを確認してください。

                                                    

コンパイルされたU-Bootバイナリu-boot.binは、 u-boot/で入手可能です。

ステップ3: [オプション] OPTEEバイナリをコンパイルする

OP‑TEE を利用して fip.bin をビルドするには、tee.bin をコンパイルする必要があります。 OP‑TEE を使用しない場合は、OP‑TEE のコンパイル手順を省略できます。

optee_os リポジトリをクローンして OP‑TEE バイナリをビルドします。

  1. $ git clone https://source.codeaurora.org/external/qoriq/qoriq-components/optee_os
  2. $ cd optee_os
  3. $ git checkout -b  LSDK-. 例: $ git checkout -b LSDK-19.03 LSDK-19.03
  4. $ export ARCH=arm
  5. $ export CROSS_COMPILE=aarch64-linux-gnu-
  6. $ make CFG_ARM64_core=y PLATFORM=ls-ls1043ardb
  7. $ aarch64-linux-gnu-objcopy -v -O binary out/arm-plat-ls/core/tee.elf out/arm-plat-ls/core/tee.bin

コンパイルされた OP‑TEE イメージ tee.binoptee_os/out/arm-plat-ls/core/ にあります。


ステップ4:NANDブート用のTF-Aバイナリのコンパイル

atf リポジトリをクローンし、TF-A バイナリ bl2_nand をコンパイルしますPBL および fip.bin

  1. $ git clone https://source.codeaurora.org/external/qoriq/qoriq-components/atf
  2. $ cd atf
  3. git checkout -b  LSDK-. 例: $ git checkout -b LSDK-19.03 LSDK-19.03
  4. $ export ARCH=arm64
  5. $ export CROSS_COMPILE=aarch64-linux-gnu-
  6. OP‑TEE を使用して BL2 バイナリをビルドします。
    • $ make PLAT=ls1043ardb bl2 SPD=opteed BOOT_MODE=nand BL32=/tee.bin pbl RCW=/rcw_1600_nandboot.bin

      コンパイルされた BL2 イメージ、bl2.binおよび bl2_nand.pblatf/build/ls1043ardb/release/ で入手できます。

      BL2 ソース コードまたは RCW バイナリを更新するには、bl2_nand.pbl バイナリを再コンパイルする必要があります。

      OPTEEを使用せずにBL2バイナリをコンパイルするには:

      make PLAT=ls1043ardb bl2 BOOT_MODE=nand pbl RCW=/rcw_1600_nandboot.bin

                      
  7. OP‑TEE を使用し、Trusted Board Boot なしで FIP バイナリをビルドします。
    • $ make PLAT=ls1043ardb fip BL33=/u-boot.bin SPD=opteed BL32=/tee.bin

      コンパイルされたBL31およびFIPバイナリのbl31.binfip.binatf/build/ls1043ardb/release/にあります

      BL31、BL32、またはBL33バイナリのいずれかの更新をした場合、fip.binバイナリを再コンパイルする必要があります。

      OP‑TEE および Trusted Board Boot を使用せずに FIP バイナリをコンパイルするには:

      $ make PLAT=ls1043ardb fip BOOT_MODE=nand BL33=/u-boot.bin

      Trusted Board BootでFIPバイナリをコンパイルする場合は、/plat/nxp/README.TRUSTED_BOOTのread meを参照してください。

                                   

ステップ5:TF-AバイナリをNANDフラッシュにプログラムする

  1. LS1043ARDBをNORフラッシュからブートします。スイッチがボードをNORバンク0からブートするように設定されていることを確認してください。NORバンク0から起動する場合、スイッチ設定は以下のとおりです。
    • SW3[1:8] = 10110011
    • SW4[1:8] = 00010010
    • SW5[1:8] = 10100010
  2. NORバンク 0からブート: => CPLDリセット

    LS1043ARDB の場合、ブートログに次の内容が表示されます。

    ボード: LS1043ARDB、vBank 0 からブート

 

イーサネット接続をセットアップする

ボードが起動すると、U-Bootは有効なイーサネット・インターフェースのリストを表示します。

FM1@DTSEC1, FM1@DTSEC2, FM1@DTSEC3 [PRIME], FM1@DTSEC4, FM1@DTSEC5

  1. サーバーのIPアドレスを、TFTPサーバーを設定したホストマシンのIPアドレスに設定してください。

    => setenv serverip

  2. ethactethprimeをTFTPサーバに接続されたイーサネット・インターフェースとして設定します。

    LS1043ARDB EthernetおよびFMC ポートマッピング を参照して、シャーシ前面パネルに表示されるイーサネット・ポート名とU-BootおよびLinuxでのポート名のマッピングを参照してください。

                                                     

    => setenv ethprime

    例:

    => setenv ethprime FM1@DTSEC4

    => setenv ethact

    例:

    => setenv ethact FM1@DTSEC4

  3. ボードの IP アドレスを設定します。静的 IP アドレスを設定するか、ボードが DHCP サーバーに接続できる場合は、dhcp コマンドを使用できます。

    静的IPアドレスの割り当て:=> setenv ipaddr => setenv netmask

    動的IPアドレスの割り当て:=> dhcp

  4. 設定を保存します。 => saveenv
  5. ボードとTFTPサーバー間の接続を確認してください。

=> ping $serverip

FM1@DTSEC4デバイスを使用する

host 192.168.1.1 is alive

 

TFTPサーバーからTF-Aバイナリをロードします

注:TF-Aバイナリのフラッシュイメージレイアウトの詳細については、 LSDK memory layout for TF-A boot flowを参照してください。

                             
  1. Flash bl2_nand.pbl:

    • => tftp 82000000 bl2_nand.pbl
    • => nand 消去 0x0 $filesize;nand 0x82000000 0x0 $filesizeを書きます。

  2. Flash fip.bin:
    • => tftp 82000000 fip.bin
    • => nand 消去0x100000 $filesize;nand は $filesize 0x82000000 0x100000書き込みます。

  3. NANDフラッシュ からの起動: = > cpld リセットNAND

    LS1043ARDBはTF-Aでブートします。ブートログには、以下の内容が表示されます。

    オンボードの固定DDR

    注意: 2 GB DDR4、32 ビット、CL=11、ECC オフ
    BL2:v1.5(リリース):LSDK-19.03
    注意: BL2: 構築 : 14:46:39, Jun 13 2019
    BL31:v1.5(リリース):LSDK-19.03
    注意:BL31:2019年6月13日14:52:37
    注意:LS1043 BL31フェーズへようこそ


    U-Boot 2018.09 (Jun 13 2019 - 12:27:15 +0530)

    SoC:LS1043AE Rev1.1(0x87920011)
    クロック構成:
    CPU0(A53):1600 MHz CPU1(A53):1600 MHz CPU2(A53):1600 MHz
    CPU3(A53):1600メガヘルツ
    バス:400 MHz DDR:1600 MT/s FMAN:500 MHz
    リセット構成ワード(RCW):
    00000000: 08100010 0a000000 00000000 00000000
    00000010:14550002 80004012 E0106000 C1002000
    00000020: 00000000 00000000 00000000 00038800
    00000030: 00000000 00001100 00000096 00000001
    モデル:LS1043A RDBボード
    ボード:LS1043ARDB、NANDから起動

QorIQ LS1デバイス
Tags (1)
No ratings
Version history
Last update:
‎01-06-2026 01:08 AM
Updated by: