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 |
|
fip.bin |
|
次の手順に従って、TF-A バイナリ (bl2_nand.NANDフラッシュのpbl and fip.bin)。
rcw_1600_nandboot.binをコンパイルする必要がありますbinary は bl2_nand.pbl バイナリをビルドします。
rcwリポジトリをクローンし、PBLバイナリをコンパイルしてください。
LS1043ARDB での NAND ブート用にコンパイルされた PBL バイナリ rcw_1600_nandboot.bin は、rcw/ls1043ardb/RR_FQPP_1455/ から入手できます。
RCWソースファイルとバイナリファイルを含むディレクトリの命名規則の説明については、rcw/ls1043ardb/READMEファイルを参照してください。u‑boot.bin をコンパイルして fip.bin をビルドする必要があります。
u-boot リポジトリをクローンし、TF-A用のU-Bootバイナリをコンパイルしてください。
makeコマンドでエラー " *** お使いのGCCが6.0より古く、サポートされていません " が表示される場合は、LSDK 18.12 U-BootバイナリのビルドにUbuntu 18.04 64ビットバージョンを使用していることを確認してください。
コンパイルされたU-Bootバイナリu-boot.binは、 u-boot/で入手可能です。
OP‑TEE を利用して fip.bin をビルドするには、tee.bin をコンパイルする必要があります。 OP‑TEE を使用しない場合は、OP‑TEE のコンパイル手順を省略できます。
optee_os リポジトリをクローンして OP‑TEE バイナリをビルドします。
コンパイルされた OP‑TEE イメージ tee.bin は optee_os/out/arm-plat-ls/core/ にあります。
atf リポジトリをクローンし、TF-A バイナリ bl2_nand をコンパイルします。PBL および fip.bin。
コンパイルされた BL2 イメージ、bl2.bin 、 および bl2_nand.pbl は atf/build/ls1043ardb/release/ で入手できます。
BL2 ソース コードまたは RCW バイナリを更新するには、bl2_nand.pbl バイナリを再コンパイルする必要があります。OPTEEを使用せずにBL2バイナリをコンパイルするには:
$ make PLAT=ls1043ardb bl2 BOOT_MODE=nand pbl RCW=
/ rcw_1600_nandboot.bin
コンパイルされたBL31およびFIPバイナリのbl31.bin、fip.binはatf/build/ls1043ardb/release/にあります。
BL31、BL32、またはBL33バイナリのいずれかの更新をした場合、fip.binバイナリを再コンパイルする必要があります。OP‑TEE および Trusted Board Boot を使用せずに FIP バイナリをコンパイルするには:
$ make PLAT=ls1043ardb fip BOOT_MODE=nand BL33=
/ u-boot.binTrusted Board BootでFIPバイナリをコンパイルする場合は、
/plat/nxp/README.TRUSTED_BOOT のread meを参照してください。
LS1043ARDB の場合、ブートログに次の内容が表示されます。
ボード: LS1043ARDB、vBank 0 からブート
ボードが起動すると、U-Bootは有効なイーサネット・インターフェースのリストを表示します。
FM1@DTSEC1, FM1@DTSEC2, FM1@DTSEC3 [PRIME], FM1@DTSEC4, FM1@DTSEC5
=> setenv serverip
ethactとethprimeをTFTPサーバに接続されたイーサネット・インターフェースとして設定します。
LS1043ARDB EthernetおよびFMC ポートマッピング を参照して、シャーシ前面パネルに表示されるイーサネット・ポート名とU-BootおよびLinuxでのポート名のマッピングを参照してください。
=> setenv ethprime
例:
=> setenv ethprime FM1@DTSEC4
=> setenv ethact
例:
=> setenv ethact FM1@DTSEC4
静的IPアドレスの割り当て:=> setenv ipaddr
動的IPアドレスの割り当て:=> dhcp
=> ping $serverip
FM1@DTSEC4デバイスを使用する
host 192.168.1.1 is alive
注:TF-Aバイナリのフラッシュイメージレイアウトの詳細については、 LSDK memory layout for TF-A boot flowを参照してください。
Flash bl2_nand.pbl:
=> nand 消去0x100000 $filesize;nand は $filesize 0x82000000 0x100000書き込みます。
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から起動