Multi Source Translation Content

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Multi Source Translation Content

ディスカッション

ソート順:
LX2160ARDB SD Card Booting, LSDK FitImage Hi, I have installed the LSDK 21.08 and the atf, rcw, u-boot, ddr-phy folders are already available but why the source isn't available in it and have to git clone for each source? For complete SD card booting, i have deployed the following files at blocks mentioned below 1. bl2_sd.pbl - 0x8 2. fip.bin - 0x800 3. fip_ddr_all.bin - 0x4000 4. mc_lx2160a_10.40.0.itb - 0x5000 5. dpc-usxgmii.dtb - 0x7000 6. fitImage--5.15.71+git0+95448dd0dc-r0-lx2160ardb-rev2-20260310070404.bin - 0x8000 And I have made partitions in SD card(64GB) as below 1. /dev/mmcblk0p1 - sector 409600 to sector 42352640 2. /dev/mmcblk0p2 - sector 42352640 to sector 121534463 and mounting the rootfs "fsl-image-networking-full-lx2160ardb-rev2-20260310091147.rootfs.tar.gz" on /dev/mmcblk0p1 partition using the bootargs command at u-boot as => setenv bootcmd 'setenv bootargs root=/dev/mmcblk0p1 rw rootwait console=ttyAMA0,115200; mmc dev 0; mmc read 0x90000000 0x8000 0x14000; bootm 0x90000000' is this the right approach do it?? Please suggest any better approach that can be done. And in LSDK how to generate the fitImage binary file for kernel and dtb, like the fitImages present in the LSDK under distro/build_lx2160ardb-rev2/tmp/deploy/images/lx2160ardb-rev2/ directory like fitImage--5.15.71+git0+95448dd0dc-r0-lx2160ardb-rev2-20260310070404.bin. Re: LX2160ARDB SD Card Booting, LSDK FitImage Hi, Thanks for the detailed explanation. We have build the LSDK setup using yocto project as given in UG10374 1. For SD card booting, in the procedure we followed we have created the partition and extracted the rootfs as mentioned by you and contains a valid /sbin/init. This was also verfied by making partition(/dev/mmcblk1p1) in emmc flash, extracting the rootfs and able to mount the system in its partition but not getting when its in SD. Is the booting possible by loading the boot images through block write into SD card and mounting rootfs on the partition(/dev/mmcblk0p1)?? Because after the mounting on SD card partition gets failed, the partitions are not listed when checked by the command lsblk after booting from qspi. 2. The actual file size fitImage binary is around 16MB and block size of 0x8000...but the log is as follows when booted => setenv bootcmd 'setenv bootargs root=/dev/mmcblk1p1 rw rootwait console=ttyAMA0,115200; mmc dev 0; mmc read 90000000 8000 8800; bootm 90000000' => => => boot switch to partitions #0, OK mmc0 is current device MMC read: dev # 0, block # 32768, count 35000 ... 35000 blocks read: OK ## Loading kernel from FIT Image at 90000000 ... Using 'conf-freescale_fsl-lx2160a-rdb.dtb' configuration Trying 'kernel-1' kernel subimage Description: Linux kernel Created: 2023-02-08 3:38:28 UTC Type: Kernel Image Compression: gzip compressed Data Start: 0x90000114 Data Size: 16608244 Bytes = 15.8 MiB Architecture: AArch64 OS: Linux Load Address: 0x80080000 Entry Point: 0x80080000 Hash algo: sha256 Hash value: 59af2bda187c7e19bd0a37818f1c22c24d30562979041f7bee01288661ae5bee Verifying Hash Integrity ... sha256+ OK ## Loading fdt from FIT Image at 90000000 ... Using 'conf-freescale_fsl-lx2160a-rdb.dtb' configuration Trying 'fdt-freescale_fsl-lx2160a-rdb.dtb' fdt subimage Description: Flattened Device Tree blob Created: 2023-02-08 3:38:28 UTC Type: Flat Device Tree Compression: uncompressed Data Start: 0x90fd6e28 Data Size: 33857 Bytes = 33.1 KiB Architecture: AArch64 Hash algo: sha256 Hash value: 32858f2c5f385a1a4410b8d4bff2414b1c4d36a13493cc8242eab6464e8d1d82 Verifying Hash Integrity ... sha256+ OK Booting using the fdt blob at 0x90fd6e28 Uncompressing Kernel Image Loading Device Tree to 000000009fff4000, end 000000009ffff440 ... OK fsl-mc: DPL not deployed, DPAA2 ethernet not work Starting kernel ... "Synchronous Abort" handler, esr 0x02000000 elr: 000000000636a000 lr : 0000000082005fd0 (reloc) elr: 0000000080080000 lr : 00000000fbd1bfd0 x0 : 000000009fff4000 x1 : 0000000000000000 x2 : 0000000000000000 x3 : 0000000000000000 x4 : 0000000080080000 x5 : 0000000000000001 x6 : 0000000000000008 x7 : 0000000000000000 x8 : 00000000fbb0e7c8 x9 : 0000010000000000 x10: 000000000a200023 x11: 0000000000000002 x12: 0000000000000002 x13: 00000000fbdfffff x14: 000000009fff4000 x15: 00000000fbd18be8 x16: 00000000fbd52f58 x17: 00000000fbb31560 x18: 00000000fbb11d90 x19: 00000000fbde6c98 x20: 0000000000000000 x21: 0000000000000400 x22: 0000000000000001 x23: 00000000fbb16538 x24: 00000000fbb16538 x25: 00000000fbdd1978 x26: 0000000000000000 x27: 00000000fbd1bff8 x28: 0000000090000114 x29: 00000000fbd1bf98 Code: 00000000 00000000 00000000 00000000 (00000000) Resetting CPU ... ### ERROR ### Please RESET the board ### 3. Once will check the sd_bootcmd sequence and try to boot through the generated firmware image 4. fip.bin and fip_ddr_all.bin are loaded according to the locations mentioned in the Flash layout table in TRM. Thanks for providing the procedure for generating a FIT image. Re: LX2160ARDB SD Card Booting, LSDK FitImage Hello, Your approach is not the recommended LSDK method. The individual raw images can work, but you must also reproduce the complete U-Boot environment and boot sequence for LX2160A. The safer method is to generate and flash the composite firmware image: flex-builder -i mkfw -m lx2160ardb_rev2 -b sd     This generates: build/images/firmware_lx2160ardb_rev2_sdboot.img     Then write it to the SD card: sudo flex-installer -f firmware_lx2160ardb_rev2_sdboot.img -d /dev/mmcblk0     Alternatively: sudo dd if=firmware_lx2160ardb_rev2_sdboot.img \ of=/dev/mmcblk0 bs=1k seek=4 conv=fsync   Problems in the proposed procedure root=/dev/mmcblk0p1 is valid only if partition 1 contains an extracted Linux root filesystem. A .tar.gz file itself is not a mounted root filesystem; it must be extracted into the partition: sudo mkfs.ext4 /dev/mmcblk0p1 sudo mount /dev/mmcblk0p1 /mnt sudo tar -xpf fsl-image-networking-full-lx2160ardb-rev2-*.rootfs.tar.gz \ -C /mnt sudo umount /mnt bash   This command assumes that the FIT image occupies exactly 0x14000 blocks: mmc read 0x90000000 0x8000 0x14000     That size must match the actual FIT file size, rounded up to 512-byte sectors. Otherwise, U-Boot may read too little or overwrite adjacent memory. You are bypassing the normal sd_bootcmd sequence. The standard sequence also loads the Management Complex firmware, DPC, and other required components. The LSDK guide defines a composite SD layout and recommends booting through the generated firmware image rather than manually placing each component. Your fip.bin and fip_ddr_all.bin entries should not be treated as interchangeable. Their correct locations and loading commands depend on the generated U-Boot environment and firmware layout. A better manual boot test, after the composite image is installed, is: => run sd_bootcmd     or simply reset the board with the boot switches configured for SD boot. Why source directories are empty The LSDK package separates the build framework from component source trees. The directories under components/firmware may contain manifests, configuration, recipes, or references, while the actual ATF, U-Boot, RCW, DDR PHY, and Linux sources are fetched according to the LSDK manifest/configuration. Therefore, cloning the component repositories is expected when building from source. Use the exact revisions specified by the LSDK release rather than arbitrary upstream branches. For example, build through Flexbuild instead of independently cloning and building each component: flex-builder -c atf -m lx2160ardb_rev2 -b sd flex-builder -c linux -m lx2160ardb_rev2 flex-builder -i mkfw -m lx2160ardb_rev2 -b sd     For a production build, use the official flexbuild_lsdk2108.tgz archive because it contains the release-matched configuration and component revisions. Generating a FIT image A FIT image is generated from an ITS description using U-Boot’s mkimage utility: mkimage -f lx2160.its lx2160.fit     The ITS file describes the kernel, device tree, optional initramfs, load addresses, compression, hashes, and configuration. The LSDK guide explicitly documents this process and gives the command format above. A minimal kernel-plus-DTB example is: /dts-v1/; / { description = "LX2160A kernel and device tree FIT"; #address-cells = <1>; images { kernel { description = "Linux kernel"; data = /incbin/("Image"); type = "kernel"; arch = "arm64"; os = "linux"; compression = "none"; load = <0x81080000>; entry = <0x81080000>; hash-1 { algo = "sha256"; }; }; fdt { description = "LX2160ARDB Rev2 device tree"; data = /incbin/("fsl-lx2160a-rdb.dtb"); type = "flat_dt"; arch = "arm64"; compression = "none"; load = <0x90000000>; hash-1 { algo = "sha256"; }; }; }; configurations { default = "conf"; conf { kernel = "kernel"; fdt = "fdt"; }; }; };     Build it with the mkimage supplied by the LSDK U-Boot tools: mkimage -f lx2160.its fitImage     For a compressed kernel, use Image.gz and set: compression = "gzip";     Ensure that the kernel, FDT, initramfs, and U-Boot load regions do not overlap. The generated file in tmp/deploy/images/.../fitImage-*.bin is normally a Yocto-generated FIT artifact; its timestamp and Git hash are packaging metadata, not a special binary format. The FIT format itself is produced by mkimage . Finally, note that the documented LSDK 21.08 FIT example includes an initramfs/rootfs as well as kernel and DTB. If you boot with root=/dev/mmcblk0p1 , you can omit the initramfs, but the root filesystem must be properly extracted and contain a valid /sbin/init . Regards
記事全体を表示
LX2160ARDB SDカードブート、LSDK FitImage こんにちは、 LSDK 21.08をインストールしましたが、atf、rcw、u-boot、ddr-phyフォルダは既に存在しているのに、なぜソースコードがその中に含まれておらず、各ソースコードをgit cloneする必要があるのでしょうか? SDカードの完全なブートのために、以下のブロックに次のファイルを配置しました。 1. bl2_sd.pbl - 0x8 2. fip.bin - 0x800 3. fip_ddr_all.bin - 0x4000 4. mc_lx2160a_10.40.0.itb - 0x5000 5. dpc-usxgmii.dtb - 0x7000 6. fitImage--5.15.71+git0+95448dd0dc-r0-lx2160ardb-rev2-20260310070404.bin - 0x8000 SDカード(64GB)に以下のようにパーティションを作成しました。 1. /dev/mmcblk0p1 - セクター409600~セクター42352640 2. /dev/mmcblk0p2 - セクター42352640からセクター121534463 u-boot で bootargs コマンドを使用して、rootfs "fsl-image-networking-full-lx2160ardb-rev2-20260310091147.rootfs.tar.gz" を /dev/mmcblk0p1 パーティションにマウントします。 => setenv bootcmd 'setenv bootargs root=/dev/mmcblk0p1 rw rootwait console=ttyAMA0,115200; mmc dev 0; mmc read 0x90000000 0x8000 0x14000; bootm 0x90000000' これは正しいやり方でしょうか?もっと良い方法があれば教えてください。 また、LSDK では、カーネルと dtb 用の fitImage バイナリ ファイルを生成する方法、例えば distro/build_lx2160ardb-rev2/tmp/deploy/images/lx2160ardb-rev2/ ディレクトリにある fitImage のようなファイルを生成する方法、例えば fitImage--5.15.71+git0+95448dd0dc-r0-lx2160ardb-rev2-20260310070404.bin のようなファイルを生成する方法。 Re: LX2160ARDB SD Card Booting, LSDK FitImage こんにちは、 詳しい説明をありがとうございました。 UG10374で示されたYoctoプロジェクトを使ってLSDKのセットアップを構築しました 1.SD カードからのブートについては、ご指摘のとおり、パーティションを作成し、rootfs を抽出しました。rootfs には有効な /sbin/init が含まれています。これは、emmc フラッシュにパーティション (/dev/mmcblk1p1) を作成し、ルートファイルシステムを抽出して、システムをそのパーティションにマウントできるが、SD にある場合はマウントできないことでも検証されました。 SDカードにブロック書き込みによってブートイメージをロードし、パーティション(/dev/mmcblk0p1)にrootfsをマウントすることでブートは可能ですか? SDカードパーティションへのマウントが失敗した後、qspiから起動した後にlsblkコマンドで確認してもパーティションが表示されないためです。 2. fitImageバイナリの実際のファイルサイズは約16MBで、ブロックサイズは0x8000ですが、起動時のログは次のようになります。 => setenv bootcmd 'setenv bootargs root=/dev/mmcblk1p1 rw rootwait console=ttyAMA0,115200; mmc dev 0; mmc read 90000000 8000 8800; bootm 90000000' => => => ブート パーティション#0に切り替える、OK MMC0は現在のデバイスです MMC読み込み:dev # 0、ブロック#32768、カウント35000 ...35000ブロック読み込み:OK ## Loading kernel from FIT Image at 90000000 ... Using 'conf-freescale_fsl-lx2160a-rdb.dtb' configuration Trying 'kernel-1' kernel subimage Description: Linux kernel Created: 2023-02-08 3:38:28 UTC Type: Kernel Image Compression: gzip compressed Data Start: 0x90000114 Data Size: 16608244 Bytes = 15.8 MiB Architecture: AArch64 OS: Linux Load Address: 0x80080000 Entry Point: 0x80080000 Hash algo: sha256 Hash value: 59af2bda187c7e19bd0a37818f1c22c24d30562979041f7bee01288661ae5bee Verifying Hash Integrity ... sha256+ OK ## FITからFDTを読み込み中 90000000 の画像 ... 'conf-freescale_fsl-lx2160a-rdb.dtb'構成の使用 'fdt-freescale_fsl-lx2160a-rdb.dtb' のfdtサブイメージを試しています 説明:平坦なデバイスツリーの塊 作成日:2023-02-08 3:38:28 UTC タイプ:フラットデバイスツリー 圧縮:非圧縮 データ開始:0x90fd6e28 データサイズ:33857バイト = 33.1 KiB アーキテクチャ:AArch64 ハッシュアルゴリズム:sha256 ハッシュ値:32858f2c5f385a1a4410b8d4bff2414b1c4d36a13493cc8242eab6464e8d1d82 ハッシュ整合性の検証中...sha256+ OK 0x90fd6e28のFDTブロブを使って起動します カーネルイメージの非圧縮 デバイスツリーを0000000009fff4000にロード、終了00000009ffff440 ...OK FSL-MC:DPL未展開、DPAA2イーサネットが動作しない カーネルを起動中… 「同期中止」ハンドラ、esr 0x02000000 elr: 000000000636a000 lr : 0000000082005fd0 (再配置) elr: 0000000080080000 lr : 00000000fbd1bfd0 x0 : 000000009fff4000 x1 : 0000000000000000 x2 : 0000000000000000 x3 : 0000000000000000 x4 : 0000000080080000 x5 : 0000000000000001 x6 : 0000000000000008 x7 : 0000000000000000 x8 : 00000000fbb0e7c8 x9 : 0000010000000000 x10: 000000000a200023 x11: 0000000000000002 x12: 0000000000000002 x13: 00000000fbdfffff x14: 000000009fff4000 x15: 00000000fbd18be8 x16: 00000000fbd52f58 x17: 00000000fbb31560 x18: 00000000fbb11d90 x19: 00000000fbde6c98 x20: 0000000000000000 x21: 0000000000000400 x22: 0000000000000001 x23: 00000000fbb16538 x24: 00000000fbb16538 x25: 00000000fbdd1978 x26: 0000000000000000 x27: 00000000fbd1bff8 x28: 0000000090000114 x29: 00000000fbd1bf98 コード: 00000000 00000000 00000000 00000000 (00000000) CPUをリセットしています... # ## ERROR ## # ボードをリセットしてください ### 3. sd_bootcmdシーケンスを確認し、生成されたファームウェアイメージを介して起動を試みます。 4. fip.bin と fip_ddr_all.bin は、TRM の Flash レイアウト テーブルに記載されている場所に従ってロードされます。 FITイメージを生成する手順を教えていただき、ありがとうございます。 Re: LX2160ARDB SD Card Booting, LSDK FitImage こんにちは、 あなたの方法は推奨される LSDK方法ではありません。個々のRAW画像は動作しますが、LX2160AにはU-Bootの環境と起動シーケンスを完全な再現しなければなりません。より安全な方法は、コンポジットファームウェアイメージを生成し、フラッシュすることです。 flex-builder -i mkfw -m lx2160ardb_rev2 -b sd     これにより以下が生成されます。 build/images/firmware_lx2160ardb_rev2_sdboot.img     次に、それをSDカードに書き込みます。 sudo flex-installer -f firmware_lx2160ardb_rev2_sdboot.img -d /dev/mmcblk0     または: sudo dd if=firmware_lx2160ardb_rev2_sdboot.img \ of=/dev/mmcblk0 bs=1k seek=4 conv=fsync   提案された手順における問題点 root=/dev/mmcblk0p1 はパーティション1に解凍されたLinuxルートファイルシステムが含まれている場合にのみ有効です。 .tar.gz ファイル自体はマウントされたルートファイルシステムではありません。パーティションに展開する必要があります。 sudo mkfs.ext4 /dev/mmcblk0p1 sudo mount /dev/mmcblk0p1 /mnt sudo tar -xpf fsl-image-networking-full-lx2160ardb-rev2-*.rootfs.tar.gz \ -C /mnt sudo umount /mnt バッシュ   このコマンドは、FITイメージが正確に 0x14000 ブロックを占めることを前提としています。 mmc read 0x90000000 0x8000 0x14000     そのサイズは、実際のFITファイルのサイズを512バイトセクターに切り上げた値と一致する必要があります。そうしないと、U-Bootが読み込むメモリ量が少なすぎたり、隣接するメモリを上書きしてしまう可能性があります。 通常の sd_bootcmd シーケンスをバイパスしています。標準シーケンスはまた、マネジメント Complexのファームウェア、DPC、その他必要なコンポーネントを読み込みます。LSDKガイドでは、複合SDカードのレイアウトを定義しており、各コンポーネントを手動で配置するのではなく、生成されたファームウェアイメージを使用して起動することを推奨しています。 fip.bin と fip_ddr_all.bin のエントリは、互換性のあるものとして扱ってはなりません。それらの正しい配置場所とロードコマンドは、生成されたU-Boot環境とファームウェアのレイアウトによって異なります。 複合イメージのインストール後に行う、より適切な手動ブートテストは次のとおりです。 => run sd_bootcmd     または、ブートスイッチをSDブート用に設定したままボードをリセットするだけでもいいです。 ソースディレクトリが空なのはなぜですか? LSDKパッケージはビルドフレームワークをコンポーネントソースツリーから分離しています。 components/firmware のディレクトリにはマニフェスト、設定、レシピ、参照が含まれることがあり、実際のATF、U-Boot、RCW、DDR PHY、LinuxのソースはLSDKのマニフェスト/設定に従って取得されます。したがって、ソースから構築する際にはコンポーネントリポジトリのクローン作成が期待されます。任意のアップストリームブランチではなく、LSDKリリースで指定されている正確なリビジョンを使用してください。 例えば、各コンポーネントを独立してクローンしてビルドするのではなく、Flexbuildでビルドするのが良いでしょう。 flex-builder -c atf -m lx2160ardb_rev2 -b sd flex-builder -c linux -m lx2160ardb_rev2 flex-builder -i mkfw -m lx2160ardb_rev2 -b sd     本番ビルドの場合は、リリースマッチされた構成やコンポーネントのリビジョンを含む公式の flexbuild_lsdk2108.tgz アーカイブを使用してください。 FITイメージを生成する U-Bootの mkimage ユーティリティを使用して、ITS記述からFITイメージが生成されます。 mkimage -f lx2160.its lx2160.fit     ITSファイルには、カーネル、デバイスツリー、オプションのinitramfs、ロードアドレス、圧縮、ハッシュ、および構成に関する情報が記載されています。LSDKガイドにはこのプロセスが明確に記載されており、上記のコマンド形式が示されています。 カーネルとDTBを組み合わせた最小限の例は以下のとおりです。 /dts-v1/; / { description = "LX2160A kernel and device tree FIT"; #address-cells = <1>; images { kernel { description = "Linux kernel"; data = /incbin/("Image"); type = "kernel"; arch = "arm64"; os = "linux"; compression = "none"; load = <0x81080000>; entry = <0x81080000>; hash-1 { algo = "sha256"; }; }; fdt { description = "LX2160ARDB Rev2 device tree"; data = /incbin/("fsl-lx2160a-rdb.dtb"); type = "flat_dt"; arch = "arm64"; compression = "none"; load = <0x90000000>; hash-1 { algo = "sha256"; }; }; }; configurations { default = "conf"; conf { kernel = "kernel"; fdt = "fdt"; }; }; };     LSDK U-Bootツールに付属の mkimage を使用してビルドしてください。 mkimage -f lx2160.its fitImage     圧縮カーネルの場合は、 Image.gz を使用し、以下のように設定してください。 compression = "gzip";     カーネル、FDT、initramfs、およびU-Bootのロード領域が重複しないようにしてください。 tmp/deploy/images/.../fitImage-*.bin で生成されるファイルは通常、Yoctoが生成したFITアーティファクトであり、そのタイムスタンプやGitハッシュは特別なバイナリ形式ではなく、パッケージングされたメタデータです。FITフォーマット自体は mkimage によって生成されます。 最後に、ドキュメントに記載されているLSDK 21.08 FITの例には、カーネルとDTBだけでなく、initramfs/rootfsも含まれていることに注意してください。 root=/dev/mmcblk0p1 で起動する場合はinitramfsを省略できますが、rootファイルシステムは正しく解凍され、有効な /sbin/init を含める必要があります。 よろしくお願いします。
記事全体を表示
Enable Secure Boot in Falcon Mode (6.12.49 - Kernel Version) || iMX8MP_EVK Hi Team, Could you please help me enable Secure Boot in Falcon Mode? I have successfully achieved Falcon Mode with the help of the meta-imx-fastboot GitHub repository. However, I observed that the meta-imx-fastboot implementation intentionally removes OP-TEE during the Falcon Mode boot flow. Since OP-TEE is also required for my use case, I raised a query on the NXP forum, where @elena_popa provided a solution to retain and enable OP-TEE. I have attached the forum link for reference. Currently, I am facing an issue with enabling Secure Boot, as I could not find any document for Secure Boot with falcon mode for my current kernel version. Environment details: Board: i.MX8M Plus EVK (i.MX8MP EVK) Kernel Version: 6.12.49 Yocto Environment: Yocto-based NXP BSP Boot Mode: Falcon Mode Requirement: Falcon Mode + OP-TEE + Secure Boot Yocto Project Re: Enable Secure Boot in Falcon Mode (6.12.49 - Kernel Version) || iMX8MP_EVK Hello, Could you please share which error are you getting? Best regards. Re: Enable Secure Boot in Falcon Mode (6.12.49 - Kernel Version) || iMX8MP_EVK Hi @JorgeCas What I did: Extended the imx-boot-signature recipe to also sign our Falcon FIT bundles (kernel-atf-dtb.itb, u-boot-atf.itb) using imx_signer + the same sign.cfg used for the main imx-boot container. Issue: With HAB open (no fuses burned), hab_status shows: u-boot=> hab_status Secure boot disabled HAB Configuration: 0xf0, HAB State: 0x66 --------- HAB Event 1 ----------------- event data: 0xdb 0x00 0x14 0x45 0x33 0x0c 0xa0 0x00 0x00 0x00 0x00 0x00 0x40 0x1f 0xdd 0xc0 0x00 0x00 0x00 0x20 STS = HAB_FAILURE (0x33) RSN = HAB_INV_ASSERTION (0x0C) CTX = HAB_CTX_ASSERT (0xA0) ENG = HAB_ENG_ANY (0x00) --------- HAB Event 2 ----------------- event data: 0xdb 0x00 0x14 0x45 0x33 0x0c 0xa0 0x00 0x00 0x00 0x00 0x00 0x40 0x1f 0xad 0xc0 0x00 0x00 0x00 0x04 STS = HAB_FAILURE (0x33) RSN = HAB_INV_ASSERTION (0x0C) CTX = HAB_CTX_ASSERT (0xA0) ENG = HAB_ENG_ANY (0x00) --------- HAB Event 3 ----------------- event data: 0xdb 0x00 0x3c 0x45 0x33 0x18 0xc0 0x00 0xca 0x00 0x34 0x00 0x02 0xc5 0x00 0x00 0x00 0x00 0x0b 0x50 0x40 0x1f 0xad 0xc0 0x00 0x00 0x30 0x20 0x40 0x20 0x00 0x00 0x00 0x12 0x12 0xb8 0x40 0x32 0x12 0xb8 0x00 0x01 0x44 0x68 0x00 0x97 0x00 0x00 0x00 0x00 0xbd 0x00 0x56 0x00 0x00 0x00 0x00 0x09 0x57 0x50 STS = HAB_FAILURE (0x33) RSN = HAB_INV_SIGNATURE (0x18) CTX = HAB_CTX_COMMAND (0xC0) ENG = HAB_ENG_ANY (0x00) --------- HAB Event 4 ----------------- event data: 0xdb 0x00 0x3c 0x45 0x33 0x18 0xc0 0x00 0xca 0x00 0x34 0x00 0x02 0xc5 0x00 0x00 0x00 0x00 0x0b 0x50 0x40 0x1f 0xad 0xc0 0x00 0x00 0x30 0x20 0x40 0x20 0x00 0x00 0x00 0x12 0x12 0xb8 0x40 0x32 0x12 0xb8 0x00 0x01 0x44 0x68 0x00 0x97 0x00 0x00 0x00 0x00 0xbd 0x00 0x56 0x00 0x00 0x00 0x00 0x09 0x57 0x50 STS = HAB_FAILURE (0x33) RSN = HAB_INV_SIGNATURE (0x18) CTX = HAB_CTX_COMMAND (0xC0) ENG = HAB_ENG_ANY (0x00) The failing block addresses/sizes match exactly u-boot-atf.itb's loadables (U-Boot, ATF, OP-TEE). This is deterministic across clean rebuilds. Meanwhile the signed imx-boot SPL+ATF+U-Boot container (signed via the same recipe/tool) authenticates fine. Question: Does signing a Falcon-mode u-boot-atf.itb (multi-loadable FIT: U-Boot + ATF + OP-TEE) need a different CSF structure than what imx_signer's default csf_hab4.cfg produces for the standard imx-boot SD container? Is there a reference for signing Falcon u-boot-atf.itb/kernel-atf-dtb.itb specifically? Re: Enable Secure Boot in Falcon Mode (6.12.49 - Kernel Version) || iMX8MP_EVK Hello, I apologize for the delay. As mentioned in repository, the secure Boot support is enabled in lf-6.6.36-2.1.0-secure branch and can be used as reference but, unfortunately, unfortunately, lf-6.12.20-2.0.0-secure Falcon branch explicitly states that Secure Boot is not supported for that BSP and newer. There is no documentation available for porting the secure Falcon implementation from the 6.6 secure branch. The authentication of the imx-boot container suggests a mismatched FIT CSF block map or CSF insertion offset. Best regards. Re: Enable Secure Boot in Falcon Mode (6.12.49 - Kernel Version) || iMX8MP_EVK Please help here..!
記事全体を表示
Falconモードでセキュアブートを有効にする(カーネルバージョン6.12.49)|| iMX8MP_EVK チームの皆さん、こんにちは。 Falcon ModeでSecure Boot を有効にするのを手伝ってもらえます か? meta-imx-fastboot GitHubリポジトリ の助けを借りて、Falcon Modeの実現に成功しました 。しかし、meta-imx-fastbootの実装では 、Falcon Modeのブートフロー中に 意図的に OP-TEE が削除されていることがわかりました。 OP-TEEも私のユースケースに必要なので、NXPフォーラムで質問をしました。@elena_popa OP-TEEを保持・有効化するソリューションを提供してくれました。参考のためにフォーラム のリンク を添付しました。 現在、Secure Bootを有効にする際に問題に直面しています 現在のカーネルバージョンでファルコンモード付きのセキュアブートに関するドキュメントが見つからなかったためです。 環境詳細: ボード: i.MX8M Plus EVK(i.MX8MP EVK) カーネルバージョン: 6.12.49 Yocto Environment: Yocto拠点のNXP BSP ブートモード:ファルコンモード 要件:ファルコンモード + OP-TEE + セキュアブート Yocto Project Re: Enable Secure Boot in Falcon Mode (6.12.49 - Kernel Version) || iMX8MP_EVK こんにちは、 どのエラーが出ているのか教えていただけますか? よろしくお願いいたします。 Re: Enable Secure Boot in Falcon Mode (6.12.49 - Kernel Version) || iMX8MP_EVK こんにちは、@JorgeCasさん 私がやったこと: imx-boot-signature レシピを拡張して、Falcon FIT バンドル (kernel-atf-dtb.itb、u-boot-atf.itb)imx_signerと、メインのimx-bootコンテナで使用されているものと同じsign.cfgを使用します。 問題: HABが開いている状態(ヒューズが焼損していない状態)で、hab_statusには以下が表示されます。 u-boot=> hab_status セキュアブートが無効になっています HAB 構成:0xf0、HAB 状態:0x66 --------- HABイベント1 ----------------- イベントデータ: 0xdb 0x00 0x14 0x45 0x33 0x0c 0xa0 0x00 0x00 0x00 0x00 0x00 0x40 0x1f 0xdd 0xc0 0x00 0x00 0x00 0x20 STS = HAB_FAILURE (0x33) RSN = HAB_INV_ASSERTION (0x0C) CTX = HAB_CTX_ASSERT (0xA0) ENG = HAB_ENG_ANY (0x00) --------- HABイベント2 ----------------- イベントデータ: 0xdb 0x00 0x14 0x45 0x33 0x0c 0xa0 0x00 0x00 0x00 0x00 0x00 0x40 0x1f 0xad 0xc0 0x00 0x00 0x00 0x04 STS = HAB_FAILURE (0x33) RSN = HAB_INV_ASSERTION (0x0C) CTX = HAB_CTX_ASSERT (0xA0) ENG = HAB_ENG_ANY (0x00) --------- HABイベント3 ----------------- イベントデータ: 0xdb 0x00 0x3c 0x45 0x33 0x18 0xc0 0x00 0xca 0x00 0x34 0x00 0x02 0xc5 0x00 0x00 0x00 0x00 0x0b 0x50 0x40 0x1f 0xad 0xc0 0x00 0x00 0x30 0x20 0x40 0x20 0x00 0x00 0x00 0x12 0x12 0xb8 0x40 0x32 0x12 0xb8 0x00 0x01 0x44 0x68 0x00 0x97 0x00 0x00 0x00 0x00 0xbd 0x00 0x56 0x00 0x00 0x00 0x00 0x09 0x57 0x50 STS = HAB_FAILURE (0x33) RSN = HAB_INV_SIGNATURE (0x18) CTX = HAB_CTX_COMMAND (0xC0) ENG = HAB_ENG_ANY (0x00) --------- HABイベント4----------------- イベントデータ: 0xdb 0x00 0x3c 0x45 0x33 0x18 0xc0 0x00 0xca 0x00 0x34 0x00 0x02 0xc5 0x00 0x00 0x00 0x00 0x0b 0x50 0x40 0x1f 0xad 0xc0 0x00 0x00 0x30 0x20 0x40 0x20 0x00 0x00 0x00 0x12 0x12 0xb8 0x40 0x32 0x12 0xb8 0x00 0x01 0x44 0x68 0x00 0x97 0x00 0x00 0x00 0x00 0xbd 0x00 0x56 0x00 0x00 0x00 0x00 0x09 0x57 0x50 STS = HAB_FAILURE (0x33) RSN = HAB_INV_SIGNATURE (0x18) CTX = HAB_CTX_COMMAND (0xC0) ENG = HAB_ENG_ANY (0x00) 障害が発生したブロックのアドレス/サイズは、u-boot-atf.itb のものと完全に一致します。ロード可能なファイル(U-Boot、ATF、OP-TEE)。これはクリーンな再建でもデターミニスティックです。一方、署名済みのimx-boot SPL+ATF+U-Bootコンテナ(同じレシピ/ツールで署名済み)は正常に認証される。 質問: Falconモードのu-boot-atf.itb(マルチロード可能なFIT:U-Boot + ATF + OP-TEE)に署名する場合、imx_signerのデフォルトのcsf_hab4.cfgが標準のimx-boot SDコンテナ用に生成するものとは異なるCSF構造が必要ですか?Falconのu-boot-atf.itb/kernel-atf-dtb.itbに署名するための具体的なリファレンスはありますか? Re: Enable Secure Boot in Falcon Mode (6.12.49 - Kernel Version) || iMX8MP_EVK どうか助けてください! Re: Enable Secure Boot in Falcon Mode (6.12.49 - Kernel Version) || iMX8MP_EVK こんにちは、 遅れて申し訳ありません。 リポジトリで述べられているように、安全なブートサポートはlf-6.6.36-2.1.0-secureで有効化されていますBranch と は参照として使用できますが、残念ながら lf-6.12.20-2.0.0-secure(安全)は使えますFalconブランチでは、そのBSPおよびそれ以降のバージョンではセキュアブートがサポートされていないことが明記されています。 6.6のセキュアブランチから安全なFalcon実装を移植するためのドキュメントは存在しません。imx-bootコンテナの認証は、FIT CSFブロックマップまたはCSF挿入オフセットの不一致を示唆しています。 よろしくお願いいたします。
記事全体を表示
TUSB321AI - i.MX8M プラスコントローラ こんにちは、チームのみなさん。 USB1とIDピンが必要なため、TIのTUSB321AI CCコントローラーをUSB1で使う予定です。 デフォルトではCCコントローラーを初期・中断なしの点滅としてこれだけ良い状態に設定しています DRP.Is? Re: TUSB321AI - i.MX8M plus Controller こんにちは、 @ramkrishさん お元気でお過ごしのことと思います。 i.MX8M Plus ROM/UUUシリアルダウンロードの場合、プロセッサはUSBペリフェラルとして動作し、ROMコードはUSB IDピンを必要とせず、チェックも必要としません。 SO、デターミニスティックで途切れのない初期点滅には最適な選択肢ではありません。 よろしくお願いいたします。 サラス。
記事全体を表示
T1042 DDR4 初始化失败 我有一个使用64位接口连接DDR4内存的T1042设计。我们已经发现接口最高字节中存在半字节间位交换错误的问题,我们知道这个问题无法通过软件设置进行补偿。我们将在PWB版本中实施修复。然而,由于其余位均正确,且交换操作符合参考手册的允许范围,我们希望改为以 32 位模式运行,以便我们仍能继续启动软件和完成设计的其余部分。我尝试使用QCVS DDR验证工具,但是内存无法初始化。我已经输入了设备的参数,并确保按照我的设计设置了DQ[0:31]的DQ映射值,但是ERR_DETECT寄存器中的ACE位仍然是1。处理器通过SPI接口接收RCW信号,DDR频率设置为800MHz。是否可以使用CodeWarrior/QCVS来验证它是否接收到了正确的RCW值?还有哪些其他设置可能导致32位模式工作无法正常工作?任何支持我都将不胜感激。谢谢。 QorIQ T1 设备 Re: T1042 DDR4 Initialization Failure 是否可以使用 CodeWarrior/QCVS 来验证它是否接收到了正确的 RCW 值? [A] 是的,这是可能的,您可以连接 CCS,并读取DCFG_CCSR_RCWSR1-DCFG_CCSR_RCWSR16 与 SPI 闪存中的 RCW 进行比较。 还有哪些其他设置可能导致 32 位模式工作不正常? [A]它是独立DDR4吗?一般规则请参考QCVS_DDR_User_Guide 。 硬件设计请参考…… AN5097,DDR4 同步动态随机存取存储器(SDRAM) 内存接口的硬件和布局设计考虑因素 谢谢! Re: T1042 DDR4 Initialization Failure 你好,六月, 谢谢回复。我使用 CCS 读取了 RCW 状态寄存器,并确认 RCW 已按预期编程。 我使用的是独立DDR4内存,并且已经仔细阅读了用户指南和布局注意事项。 我已经确认我们有一个 650MHz 的时钟,可以以 1300MT/s 的速率运行,以满足勘误表 A-007864 中关于使用 32 位接口的要求。一位同事建议检查一下片选信号是否在切换。我发现,一旦QCVS工具开始向处理器发送配置信息,CS0信号就会被保持在足够低的水平。编程完成后,当尝试运行验证程序时,CS0信号不再完全钳位。我独立使用JTAG边界扫描工具确认信号连接正常,并且T1042 I/O能够将网络驱动到足够低的电平,以满足DDR4内存器件的VIL要求。我还确认了网络布线良好,信号完整性正常,并且没有与其他任何东西短路。似乎是内存控制器配置存在问题,导致片选信号无法正常工作。还有其他想法吗?谢谢。 Re: T1042 DDR4 Initialization Failure 没错,我指的是 D1_MCS0_B。 当我运行命令时 (bin)% ccs::reset_to_debug 我收到一条消息,提示“找不到库”。 Re: T1042 DDR4 Initialization Failure 请问您描述中的 CS0 是否指的是 D1_MCS0_B? 请在您的 ccs 系统中运行该命令并更新完整的 ccs 日志。 (bin)% ccs::reset_to_debug 谢谢! Re: T1042 DDR4 Initialization Failure 内存控制器现在设置为以 650MHz 或 1300MT/s 的频率运行。结果相同。我们尝试将DDR4内存设置为32位模式,因为64位接口的第8字节出现了意外的位交换(半字节之间的错误交换)。该设计原本计划采用 64 位 + ECC 编码,但目前我们尝试暂时采用 32 位 + ECC 编码作为替代方案。这意味着我们目前连接了 5 个 16 位芯片,但希望只使用其中 3 个芯片进行操作。 我尝试了多种设置组合,但QCVS工具的行为似乎没有任何改变。奇怪的是,我也尝试过使用GreenHills模拟器,其启动脚本中的值与QCVS类似,结果能够顺利通过DDR_SDRAM_CFG_2[D_INIT]清除的等待循环,这意味着初始化已经完成。然后,它在初始读写验证时失败,返回值全部为0x00,这很合理,因为它使用了次优的写入均衡值。我不明白为什么QCVS工具的行为会有所不同。 Re: T1042 DDR4 Initialization Failure 读取 RCW 状态寄存器后,请输入命令。 请将完整的 ccs 日志分享给我,而不是命令“ccs::reset_to_debug”的执行结果,例如: “我收到一条消息,提示‘找不到库’。” 完整日志从您使用 ccs 的第一个命令开始。 谢谢! Re: T1042 DDR4 Initialization Failure 附件是一个 .txt 文件。采用RCW输出。我运行了您最后指定的命令“ccs::reset_to_debug”,它没有显示“找不到库”消息,但也没有显示任何其他信息。 我还对DDR配置寄存器进行了类似的捕获,并已附上。我没发现任何问题。事实上,这些值用GreenHills探针测试时似乎能够通过,D_INIT也会被清除;但是,当我用相同的值配合QCVS工具时,D_INIT却不会被清除。我不太清楚使用GH探针和CWTAP有什么区别。任何建议我都非常感激。 Re: T1042 DDR4 Initialization Failure ACE 错误是自动校准错误,当内存控制器在其训练序列中检测到错误时,就会设置该错误。如果将时钟频率从 800MHz 降低,训练结果会如何? 同时,对于 64 位或 32 位总线宽度,DDR4 选择使用哪一种?计划将多少块 DDR4 连接到 T1042? Re: T1042 DDR4 Initialization Failure “ccs::reset_to_debug” 工作正常。 请确认是否需要 errata_A009942 ,如果需要,请解压缩附件中的 hotfix Optimization.zip 文件,以覆盖 CodeWarrior PA 安装文件夹中现有的 Optimization 文件夹。解压缩后,C:\Freescale\CW_PA_v10.5.1\eclipse\Optimization\resources\QorIQ\DDR\templates\init\errata_A009942.py 文件将存在。 请确认以下一般指南: 创建一个新的 QCVS 项目 - 选择“自动配置”和“动态随机存取存储器(DRAM)” 动态随机存取存储器(DRAM) 速度等级 = 最大速度(例如,最大 3200 MT/s,请参阅数据手册)。 - “输出数据速率”选择“xxx MT/s”(当前工作速度,例如1300MT /s,此数据速率必须与 RCW 映像中配置的动态随机存取存储器(DRAM)速度相匹配) - “排名/芯片选择” 选择“x”                   (单 CS 或双 CS) - "tCL" 选择 "xx"(根据 动态随机存取存储器(DRAM) 数据手册中的速度分级表)   - "每个设备的动态随机存取存储器(DRAM) 配置" 选择“xx”    (参见 动态随机存取存储器(DRAM) 数据手册) - 填充正确的 CLK 到 QDS 偏移量(通过 EDA 工具测量 CLK 和 DQS 信号的长度,CLK 长度 - DQS 长度) CLK 时长减去 DQS 时长,例如: CLK 到 DRAM0 的长度 = 100 毫米 CLK 到 DRAM1 的长度 = 101 毫米 DQS[0] 长度 = 75 毫米 DQS[1] 长度 = 110 毫米 CLK 到 DQS[0] 的偏移量 = 100 毫米 - 75 毫米 = 25 毫米 CLK 到 DQS[1] 的偏移量 = 101 毫米 - 110 毫米 = -9 毫米 - CLK 走线长度必须等于或长于 DQS 走线长度,且相差不超过 10 英寸。 - 如果 MCK 走线长度短于 DQS 走线长度,则必须在 2.0 英寸以内。 DQ映射 - 控制器引脚: 如果您的实际电路板上使用了 DQ 位交换,则用户必须在 QCVS 中进行配置,以匹配实际的 PCB 布局。 TIMING_CFG_1_and_3: - tCL/tRCD/rRP/tRAS 此值参考 动态随机存取存储器(DRAM) 数据手册,以匹配当前工作速度速率。    - tWR(写入恢复时间,最后数据到预充电的最小间隔),此值参考 动态随机存取存储器(DRAM) 数据手册。        - tRRD(激活间隔)此值参考 动态随机存取存储器(DRAM) 数据手册。     TIMING_CFG_2: - tFAW(四激活窗口),此值参考 动态随机存取存储器(DRAM) 数据手册。 用户应确保板特定配置和动态随机存取存储器 (DRAM) 特定配置与实际硬件匹配。 对于其他大多数选项,请使用默认的 QCVS 预设值。 谢谢! Re: T1042 DDR4 Initialization Failure 我目前正在与采购部门合作,办理保密协议,以便获取完整的勘误表文件。但是,我使用的是元器件 T1042NXE7MQB,Google/NXP 论坛搜索似乎表明勘误表 A009942 适用。 请提供您提到的“Optimization.zip”文件。我没看到它被附加在任何地方。 Re: T1042 DDR4 Initialization Failure 你好,六月, 感谢您提供文件并给予持续支持。我按照您的指南设置了QCVS DDRv工具,今天也尝试了勘误表#A009942中的解决方法,但似乎并没有什么效果。我查看了脚本本身,发现它似乎只针对667MHz和800MHz这两个特定频率应用了这种变通方案。由于勘误表 #007864 指出,当内存宽度为 32 位或更低时,如果以 800MHz 的频率运行,DDR 接口可能会出现问题,因此我目前将内存运行频率设为 650MHz。650MHz频率下是否需要设置某个调试寄存器值? 该设计采用单个 100MHz 时钟源,因此我可选的 DDR 内存频率似乎只有 650MHz、700MHz、750MHz 和 800MHz(DDR4)。对于 32 位模式,我是否应该使用 650MHz 以外的其他频率? 我仍然对DQ映射值持怀疑态度。几个月前,您在另一篇帖子中帮我验证了这些值: T1042 DDR4 DQ MAP 寄存器设置 这是该设计与我们网站上另一个正在运行的T1042 DDR4实例之间的一个显著区别。他们使用了64位架构,只在最高有效字节上进行了少量位交换。我们的64位接口的最高有效位(MSB)存在已知的错误位交换,因此我们尝试使用32位模式作为临时解决方案。我们的交换操作比工作设计要多得多,包括字节通道内的完整半字节交换,但是接口的32位最低有效位似乎遵循T1042控制器允许的规则。已知不同的DQ映射交换组合均可正常工作吗?您能再看一下我们用来验证的数值吗?为方便起见,已包含寄存器值和原理图截图。DDR4 设备的另一端是直接的 1:1 映射,因此为了清晰起见,交换只出现在 T1042 端。 再次感谢大家一直以来的支持。 Re: T1042 DDR4 Initialization Failure 抱歉,我漏看了附件。 Re: T1042 DDR4 Initialization Failure @dbevans42 脚本中应应用 650 MHz 的 A-009942,您可以添加一行与 667 相同的代码来包含它。 请提供DDR器件的部件原理图,以便确认DQ映射关系。 如果 DQ 映射与 MAP 相交,我们有一种调试模式,这是一种临时解决方案,直到您修复电路板为止。 将数据速率设置为 1200MT/s 设置 DDR_SDRAM_CFG_2[DDR_SLOW] = 1 将偏移量 0x8F04[27] 处的 DDR 寄存器设置为 1,或者将值 0x10 写入偏移量 0x8F04。 清除所有DDR_DQ_MAPn寄存器 谢谢! Re: T1042 DDR4 Initialization Failure 不确定DDR4是否支持64位总线宽度。您指的是LPDDR4吗? Re: T1042 DDR4 Initialization Failure 它是DDR4内存。这是一个分立式设计,不是 DIMM,所以我们有五个 1G x 16 位设备(64 位 + 8 位 ECC)。 Re: T1042 DDR4 Initialization Failure 我在9月24日星期四发给你的最后一封邮件中附上了DQ[0:31]和ECC的相关原理图截图。我再次附上整个 64 位接口的快照,并突出显示了错误的位交换。 感谢您提供的其他解决方法。 问题: 1)如果我在A009942脚本中添加 650MHz,应该写入什么值?它应该和 667MHz 一样吗? 2) 您列出的新的1200MT/s变通方案是否旨在使 64 位模式即使在交换错误的情况下也能工作,还是我们需要继续尝试 32 位模式? 3)是否可以使用DDRv工具来实现此解决方法?否则,我将在我们的 GreenHills 探测启动脚本中尝试一下,并将结果汇报给我们。 Re: T1042 DDR4 Initialization Failure 你好,六月, 我已将您列出的解决方法应用到我们的 GreenHills 探针启动脚本中,目前看来 DDR4 接口已正常工作。我们可以将代码加载到DDR4内存中并开始执行,我可以使用GH探针内存视图看到DDR4内存中已初始化的数据值。剧本已附上,供审阅。 问题: 1)能否提供更多关于调试模式的详细信息? 2)调试模式的解决方法是否只能在 1200MT/s 的速度下运行,还是可以运行得更快? 3)DQ映射寄存器的功能是否存在缺陷?我需要确保 DQ 映射寄存器确实像宣传的那样工作,并且如果我在新版本中修复了错误的 DQ57 和 DQ63 互换,它仍然可以在没有调试模式的情况下工作。 4)32位模式是否存在漏洞/问题?32 位模式在没有调试变通方法的情况下无法工作,这说不通,因为我们遵循了这些位的映射规则。 5) 是否有办法运行变通调试模式并使用 QCVS DDRv 工具来获取正确的写入电平值? Re: T1042 DDR4 Initialization Failure 你好,六月, 我认为你已经找到了问题的根源。我们有一些几年前的设计,使用了错误的MPU符号,搭配运行速度为1000MT/s的DDR3L内存,但从未出现过任何问题。我们从未想到符号可能会因此而出错。我们正在审查映射关系,更正符号,并查明此问题为何长期存在。我们应该能够在即将进行的新一届董事会会议上解决这个问题。非常感谢大家一直以来的支持。现在我们应该可以继续推进了。 此致, 道格 Re: T1042 DDR4 Initialization Failure 嗨@dbevans42 这是一个仅用于调试的变通方法,它允许存在错误位交换的 DDR4 板以降低的数据速率运行,从而有助于确认是否存在其他板级问题。但是,根据 AN5097,板设计最终必须进行修正。 此模式下支持的最大数据速率为 1200 MT/s。 以下是内部团队的解释: DEBUG_2[27:FRC_SE] 表示慢速使能被强制拉低,这可以用来让 DDR4 通过在写入内存期间减慢接口速度来训练 CAS 进行前导码和 RX 位校正。通常情况下,DDR4 会通过向多用途寄存器发出 MRS 命令而不是写入操作来进行训练。如果设置了 FRC_SE 位,则不支持 MPRR 和 MPRW 命令。此外,这也意味着如果设置了 FRC_SE,则不支持 VRef 训练(对于内部或 动态随机存取存储器(DRAM) VRef 训练)。   QCVS 验证不支持此变通方法;它仅对 DDR 初始化软件调试有用,并且必须在启用内存之前将所需的设置纳入 DDR 初始化中。   我已查看您提供的原理图截图,并注意到您的 MPU 库中显示的 T1042 引脚编号与数据手册中的引脚编号不符。 请确认是否使用了正确的MPU库?此外,请提供 T1042 和 DDR4 设备 的完整原理图符号(库定义)。您可能还需要仔细检查一下原理图中的 T1042 引脚编号与数据手册中指定的引脚编号有何不同。   谢谢! Re: T1042 DDR4 Initialization Failure 要使初始化正常工作,最低时钟频率是多少?或者初始化根本无法进行。您是否已根据硬件指南检查过原理图和布局?如果您能提供DDR4内存的部件号,将有助于我们更好地进行审核。 Re: T1042 DDR4 Initialization Failure 很高兴我们能找到根本原因。 如果可能的话,在下一次电路板修改之前,调整当前设计中的 DQ 映射也可能是有益的。 如果你能在结果出来后分享一下,那就太好了。 如有任何疑问,请随时告诉我。 我将外出超过一周,因此我的回复可能会延迟。如有任何更新,我会及时通知您。 谢谢。
記事全体を表示
RT1051: ENET IEEE1588 Timer Clock source Hi, In the RT1050 reference manual, I find the following: mastupristi_0-1789736651417.png I would like to know what the clock sources for the IEEE1588 timer can be. For example, can I choose a root clock derived from AUDIO_PLL? Which registers control the clock source of the IEEE1588 timer? best regards Max i.MXRT 105x Re: RT1051: ENET IEEE1588 Timer Clock source As far as I am aware, this timer is clocked by the clock labeled "ENET_25M_REF_CLK" (from MCUXpresso Config Tools), and it is always 25MHz. I think that by "independently of network speed" they just mean that it doesn't get slower if Ethernet is running at 10Mbps. P.S. If you are planning on using the 1588 timer compare/capture feature, be aware that it is (IMO) one of the most difficult peripherals on RT1050 to use correctly and has a large amount of gotchas to watch out for. For instance, you cannot use the Event In n and Event Out n pins at the same time (where n is 0..3). For example, you cannot use Event Out 1 and Event In 1 at the same time, but you can use Event In 1 and Event Out 0 at the same time. Also, only two of the four channels have DMA support.
記事全体を表示
our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly our customed board with LS1043AXN8QQB and 2GB DDR4 can't be poweron reset porperly. HW arch: LS1043A 2GB DDR4(512MB x8bit), with eMMC bootmode. eMMC was flash with all boot image(uboot, kernel, ...). Poweron reset was controlled by some logic gates to check some power status, RESET signals, which followed the RDB reference design, detail design, please refer to the attached circuit. Failure: after poweron, the board can't poweron reset properly with random failrate. we can captured the PORESET_B、RESET_REQ_B、and HRESET_B with periodly pluse if poweron reset failed. we also can captured that, there's always have SDHC_CLK output from LS1043A to eMMC chip. as below, and Zoom in the wave as below, can find the HRESET_B is pull-HIGH by LS1043A after bootup, meas that the system already finished PLL lock action, and begin to stop driving HRESET_B, but failed in [PBL fetchs PBI command from SD card, PBI writes to CCSR space and programs OCRAM with SPL] operation, and then GPP jumps to the boot ROM at 0x0000_0000, because the ASLEEP with NOT be driver LOW according the boot process sequence as below, if there any suggestions to debug and fix this issue? Thanks. Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly During the debugging phase, the RESET_REQ_B needs to be able to communicate with the PORESET to prevent the MPU to prevent the MPU from continuously reset CPU The RESET For circuit design, please refer to AN5012, LS1043A Design Checklist - Application Note JTAG interface connection, Figure 18. and LS1043ARDB board. Please find PORESET has gone low. PORESET is triggered. CPU cannot operate normally. Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly The control logic for PORESET_B does not refer to the RDB reference design which is controlled with a CPLD, but instead uses a watchdog as shown below, and a combination of the aforementioned logic lines for the power-up reset. In the first power-on startup, after the system is powered on the TPS3828 this watchdog chip comes with an internal 200ms delay output to control the release of PORESET_B, through the aforementioned logic gate line, and power detection logic with the gate logic, the output of CPU_PORESET_B to the LS1043A processor to start the reset. After entering uboot or system, you can control the watchdog chip by reset or reboot command, and finally control RESET_REQ_B to perform system soft reset reboot. The existence of such a reset control may affect the normal power-up startup of the system. Currently, the analysis is suspected to be a failure of the LS1043A to enter the OCRAM for initialization after startup. Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly It seems the PORESET causes the POR repeated. Please check which signal cause the PORESET change from high to low. DDR part will not affect the POR in this step. You could use Chinese to reply. Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly Add more information, the DDR4 chip we used on the board is MT40A512M8SA-062E IT, which is 3200MT/s version, and used the LS1043ARDB(LS2108) default setting in ddr_init.c. Is the DDR chip or DDR settings impact the system poweron reset during initialized DDR controller in OCRAM? Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly I encountered a similar problem, an intermittent fault (occurring only once out of thousands of reboots): the software freezes during the u-boot startup process. The fault message is: "Synchronous Abort" handler, esr 0x02000000. Disassembling the call details, I found it to be : initr_pci→pci_init→dm_pciauto_config_device (pci_auto.c:371)→dm_pci_hose_probe_bus (pci-uclass.c:607)→dm_pciauto_prescan_setup_bridge→bl dm_pci_get_bdf. When ret returns, an exception occurs at address 0x8202fc20. The problem lies in ret reaching an incorrect address, while the called esr is merely a register shift; it itself has no inherent error-prone aspects (no memory access, no jumps). The software uses cpld to actively feed the watchdog (external watchdog), and the external watchdog is reset using PORESET, but it failed. Could you please advise on the problem? Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly I suggest starting a new topic for this question, thank you. Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly 已开启新的话题“软件启动时出现Synchronous Abort" handler, esr 0x02000000”
記事全体を表示
美国领先的燃油配送应用程序开发公司是哪家? 如果您正在美国寻找一家燃油配送应用程序开发公司,JPLoft 是一家值得考虑的公司。JPLoft 拥有 16 年以上的经验,已交付 1250 多个项目,为初创公司、燃料供应商和企业开发定制燃料配送解决方案。 其解决方案包括实时 GPS 跟踪、燃油订购和调度、司机管理、安全支付、管理仪表板、通知和分析。JPLoft 还提供端到端服务,从 UI/UX 和应用程序开发到测试、部署和发布后支持。 在选择开发合作伙伴之前,请比较相关的行业经验、技术专长、可扩展性、网络安全实践和持续支持。
記事全体を表示
TagInfo - how does it verify Desfire EV3 originality? TagInfo has the capability to verify both the Symmetric and Asymmetric Originality signatures for a given DESFIRE EV3 card.   Does anyone know if TagInfo has the keys needed for the symmetric originality checks embedded in the application, or does TagInfo outsource the checks to a remote server? Online authentication Re: TagInfo - how does it verify Desfire EV3 originality? When the symmetric check is triggered in TagInfo, it performs an online authentication toward NXP's Hardware Security Module (HSM) to execute the check. The symmetric originality check in TagInfo requires an active internet connection to NXP's backend, and it will fail in offline scenarios.
記事全体を表示
启用 Falcon 模式下的安全启动(内核版本 6.12.49)|| iMX8MP_EVK 大家好, 请问您能帮我启用Falcon模式下的安全启动吗? 我已成功借助 meta-imx-fastboot GitHub 代码库实现了 Falcon 模式。但是,我发现 meta-imx-fastboot 的实现会 在 Falcon 模式启动过程中 有意移除 OP-TEE 。 由于我的用例也需要用到 OP-TEE,我在 NXP 论坛上提出了一个问题, @elena_popa提供了一个保留并启用 OP-TEE 的解决方案。我附上了论坛链接供您参考。 目前,我在启用 安全启动 时遇到了问题 ,因为我找不到任何关于我的当前内核版本在 Falcon 模式下启用安全启动的文档。 环境详情: 主板: i.MX8M Plus EVK(i.MX8MP EVK) 内核版本: 6.12.49 Yocto 环境:基于 Yocto 的 NXP 电路板支持包。 启动模式:猎鹰模式 要求:猎鹰模式 + OP-TEE + 安全启动 Yocto Project Re: Enable Secure Boot in Falcon Mode (6.12.49 - Kernel Version) || iMX8MP_EVK 你好, 请问您遇到了什么错误? 顺祝商祺! Re: Enable Secure Boot in Falcon Mode (6.12.49 - Kernel Version) || iMX8MP_EVK 嗨@JorgeCas 我所做的:扩展了 imx-boot-signature 配方,使其也能对我们的 Falcon FIT 包(kernel-atf-dtb.itb)进行签名。u-boot-atf.itb)使用 imx_signer + 与主 imx-boot 容器相同的 sign.cfg。 问题: HAB 处于打开状态(未烧断熔丝),hab_status 显示: u-boot=> hab_status 安全启动已禁用 HAB配置:0xf0,HAB状态:0x66 --------- HAB 事件 1 ----------------- 事件数据: 0xdb 0x00 0x14 0x45 0x33 0x0c 0xa0 0x00 0x00 0x00 0x00 0x00 0x40 0x1f 0xdd 0xc0 0x00 0x00 0x00 0x20 STS = HAB_FAILURE (0x33) RSN = HAB_INV_ASSERTION (0x0C) CTX = HAB_CTX_ASSERT (0xA0) ENG = HAB_ENG_ANY (0x00) --------- HAB 事件 2 ----------------- 事件数据: 0xdb 0x00 0x14 0x45 0x33 0x0c 0xa0 0x00 0x00 0x00 0x00 0x00 0x40 0x1f 0xad 0xc0 0x00 0x00 0x00 0x04 STS = HAB_FAILURE (0x33) RSN = HAB_INV_ASSERTION (0x0C) CTX = HAB_CTX_ASSERT (0xA0) ENG = HAB_ENG_ANY (0x00) --------- HAB 事件 3 ----------------- 事件数据: 0xdb 0x00 0x3c 0x45 0x33 0x18 0xc0 0x00 0xca 0x00 0x34 0x00 0x02 0xc5 0x00 0x00 0x00 0x00 0x0b 0x50 0x40 0x1f 0xad 0xc0 0x00 0x00 0x30 0x20 0x40 0x20 0x00 0x00 0x00 0x12 0x12 0xb8 0x40 0x32 0x12 0xb8 0x00 0x01 0x44 0x68 0x00 0x97 0x00 0x00 0x00 0x00 0xbd 0x00 0x56 0x00 0x00 0x00 0x00 0x09 0x57 0x50 STS = HAB_FAILURE (0x33) RSN = HAB_INV_SIGNATURE (0x18) CTX = HAB_CTX_COMMAND (0xC0) ENG = HAB_ENG_ANY (0x00) --------- HAB 事件 4 ----------------- 事件数据: 0xdb 0x00 0x3c 0x45 0x33 0x18 0xc0 0x00 0xca 0x00 0x34 0x00 0x02 0xc5 0x00 0x00 0x00 0x00 0x0b 0x50 0x40 0x1f 0xad 0xc0 0x00 0x00 0x30 0x20 0x40 0x20 0x00 0x00 0x00 0x12 0x12 0xb8 0x40 0x32 0x12 0xb8 0x00 0x01 0x44 0x68 0x00 0x97 0x00 0x00 0x00 0x00 0xbd 0x00 0x56 0x00 0x00 0x00 0x00 0x09 0x57 0x50 STS = HAB_FAILURE (0x33) RSN = HAB_INV_SIGNATURE (0x18) CTX = HAB_CTX_COMMAND (0xC0) ENG = HAB_ENG_ANY (0x00) 失败的块地址/大小与 u-boot-atf.itb 的完全匹配。可加载程序(U-Boot、ATF、OP-TEE)。这是在全新重建过程中确定性的。同时,已签名的 imx-boot SPL+ATF+U-Boot 容器(通过相同的配方/工具签名)验证正常。 问题:对 Falcon 模式的 u-boot-atf.itb(多加载 FIT:U-Boot + ATF + OP-TEE)进行签名时,是否需要与 imx_signer 为标准 imx-boot SD 容器生成的默认 csf_hab4.cfg 不同的 CSF 结构?是否有专门针对 Falcon u-boot-atf.itb/kernel-atf-dtb.itb 签名的参考资料? Re: Enable Secure Boot in Falcon Mode (6.12.49 - Kernel Version) || iMX8MP_EVK 你好, 很抱歉耽搁了这么久。 如仓库中所述,lf-6.6.36-2.1.0-secure 已启用安全启动支持。分支可以作为参考,但遗憾的是,lf-6.12.20-2.0.0-secure 版本存在问题。Falcon 分支明确指出,该 电路板支持包 及更新版本不支持安全启动。 目前没有关于如何将 6.6 安全分支上的安全 Falcon 实现移植到新版本系统的文档。imx-boot 容器的身份验证表明 FIT CSF 块映射或 CSF 插入偏移量不匹配。 顺祝商祺! Re: Enable Secure Boot in Falcon Mode (6.12.49 - Kernel Version) || iMX8MP_EVK 请帮帮忙!
記事全体を表示
我们配备 LS1043AXN8QQB 和 2GB DDR4 的定制板无法正常开机RESET 我们配备 LS1043AXN8QQB 和 2GB DDR4 的定制板无法正常开机RESET。 硬件架构:LS1043A 2GB DDR4(512MB x8bit),eMMC 启动模式。eMMC 是闪存的,里面装有所有启动映像(uboot、内核等)。 上电复位由一些逻辑门控制,用于检查一些电源状态,RESET信号,这些信号遵循RDB参考设计,详细设计,请参考所附电路。 故障:开机后,主板无法以随机故障率正确开机 RESET。如果开机RESET失败,我们可以定期捕获PORESET_B、RESET_REQ_B 和 HRESET_B。我们也可以捕获到,从 LS1043A 到 eMMC 芯片总是有 SDHC_CLK 的输出。如下所示、 并放大波浪,如下图所示、 可以发现 HRESET_B 在启动后被 LS1043A 拉高,这意味着系统已经完成了 PLL 锁定操作,并开始停止驱动 HRESET_B,但是在 [PBL 从 SD 卡中获取 PBI 命令,PBI 写入 CCSR 空间并使用 SPL 编程 OCRAM] 操作失败,然后 GPP 以 0x0000_0000 跳到启动 ROM,因为没有驱动程序的 SLEEP 根据启动过程顺序设置为LOW,如下所示, 是否有任何建议来调试和修复这个问题?谢谢。 Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly 在调试阶段,RESET_REQ_B需要能与PORESET 断开,防止MPU工作不正常是,持续reset CPU。 RESET电路的设计请参考AN5012, LS1043A Design Checklist - Application Note,Figure 18. JTAG interface connection 和LS1043ARDB 板卡。 请先找到PORESET变低的原因,PORESET触发,CPU无法正常工作。 Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly PORESET_B的控制逻辑并没有参考RDB参考设计中用CPLD控制,而是用如下图的看门狗,以及前述的逻辑线路组合进行上电复位, 在首次上电启动时,系统上电后TPS3828这颗看门狗芯片内部自带200ms延时输出,控制释放PORESET_B,通过前述逻辑门线路,与电源检测逻辑进行与门逻辑,输出CPU_PORESET_B给到LS1043A处理器开始复位。 进入uboot或系统后,可通过reset或reboot命令,最终控制RESET_REQ_B来控制看门狗芯片,进行系统软复位重启。 这样的复位控制是否存在可能影响系统正常上电启动,目前分析下来怀疑是LS1043A启动后进入OCRAM进行初始化失败。 Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly 似乎是 PORESET 导致重复 POR。 请检查是哪个信号导致 PORESET 从高电平变为低电平。 在此步骤中,DDR 部分不会影响 POR。 您可以用中文回复。 Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly 补充更多信息,我们在板上使用的 DDR4 芯片是 MT40A512M8SA-062E IT,版本为 3200MT/s,使用了 ddr_init.c 中的 LS1043ARDB (LS2108) 默认设置。在 OCRAM 中初始化 DDR 控制器期间,DDR 芯片或 DDR 设置是否会影响系统开机 RESET? Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly 我遇到了类似的问题,一个偶现故障(上千次重启出现1次):软件在uboot启动过程中卡死,故障现场是:"Synchronous Abort" handler, esr 0x02000000,根据反汇编查看具体调用,发现是:initr_pci→pci_init→dm_pciauto_config_device(pci_auto.c:371)→ dm_pci_hose_probe_bus(pci-uclass.c:607)→dm_pciauto_prescan_setup_bridge → bl dm_pci_get_bdf 后 ret 返回时取指 0x8202fc20 发生异常。问题出在ret到了不正确的地址,而调用的asr只是寄存器移位,它本身没有任何可能出错的地方(不访问内存、不跳转)。 软件使用cpld主动喂狗(外部看门狗),外部看门狗使用PORESET进行复位,但未能成功,请教一下其中的问题。 Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly 这个问题建议新开一个话题,谢谢 Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly 开启新的话题“软件启动已时出现Synchronous Abort” handler, esr 0x02000000 ”
記事全体を表示
TagInfoは、Desfire EV3の真正性をどのように検証するのですか? TagInfoは、特定のDESFIRE EV3カードについて、対称署名と非対称署名の両方のオリジナリティを検証する機能を備えています。 TagInfoがアプリケーションに埋め込まれた対称的なオリジナリティチェックに必要なキーを持っているか、それともTagInfoがリモートサーバーにチェックをアウトソースしているのか知っている方はいらっしゃいますか? オンライン認証 Re: TagInfo - how does it verify Desfire EV3 originality? TagInfoで対称チェックがトリガーされると、NXPのハードウェアセキュリティモジュール(HSM)に対してオンライン認証を行い、チェックを実行します。TagInfoの対称的なオリジナリティチェックには、NXPのバックエンドへのアクティブなインターネット接続が必要であり、オフライン環境では失敗します。
記事全体を表示
TagInfo——它如何验证Desfire EV3的原创性? TagInfo能够验证给定DESFIRE EV3卡的对称和非对称原创性签名。 有人知道 TagInfo 是否将对称原创性检查所需的密钥嵌入到应用程序中,还是 TagInfo 将检查外包给远程服务器吗? 在线身份验证 Re: TagInfo - how does it verify Desfire EV3 originality? 当 TagInfo 中触发对称检查时,它会向 NXP 的硬件安全模块 (HSM) 进行在线身份验证以执行检查。TagInfo 中的对称原创性检查需要与 NXP 后端保持有效的互联网连接,在离线情况下会失败。
記事全体を表示
LS1043AXN8QQBと2GB DDR4を搭載したカスタムボードは、パワーオンリセットが適切にCANません。 LS1043AXN8QQB と 2GB DDR4 を搭載したカスタム ボードでは、パワーオン リセットを正しく CAN ません。 HW アーキテクチャ: LS1043A 2GB DDR4 (512MB x8 ビット)、eMMC ブートモード付き。eMMC にはすべてのブート イメージ (uboot、カーネルなど) がフラッシュされていました。 パワーオン リセットは、いくつかの電源状態、RESET 信号をチェックするためのいくつかのロジック ゲートによって制御されます。これは RDB リファレンス・デザインに従います。詳細設計については、添付の回路を参照してください。 障害: 電源投入後、ボードはランダムな障害率で正常に電源投入リセットCANません。パワーオンリセットに失敗した場合、定期的なパルスでPORESET_B、RESET_REQ_B、およびHRESET_BをCANキャプチャします。また、LS1043A から eMMC チップへの SDHC_CLK 出力が常に存在することもCAN。以下のように 以下のように波を拡大すると、 起動後、LS1043A によって HRESET_B が HIGH にプルアップされていることがわかります。これは、システムがすでに PLL ロック動作を終了し、HRESET_B の駆動を停止し始めたことを意味しますが、[PBL が SD カードから PBI コマンドをフェッチし、PBI が CCSR スペースに書き込み、OCRAM に SPL をプログラムする] 操作に失敗し、その後、GPP が 0x0000_0000 のブート ROM にジャンプします。これは、ブート プロセス シーケンスに従って、ASLEEP がドライバ LOW にならないためです。 この問題をデバッグして修正するための提案はありますか?ありがとう。 Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly デバッグフェーズでは、 MPUが故障しているときにCPU が継続的にリセットされるのを防ぐために、 RESET_REQ_B をPORESETから切断できる必要があります。 RESET 回路の設計については、 AN5012、LS1043A設計チェックリスト - アプリケーションノート 、図18、JTAGインターフェース接続 、および LS1043ARDB ボード を参照してください 。 まず、 PORESETが低い原因を特定します。PORESETがトリガーされると、 CPUは正常に動作しなくなります。 Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly PORESET_Bの制御ロジックは、RDBリファレンスデザインのようにCPLD制御を使用しません。代わりに、下図に示すようにウォッチドッグタイマーと、前述のパワーオンリセット用のロジック回路を使用します。 TPS3828ウォッチドッグチップは、システムの電源投入後、初期起動時に200msの遅延出力を内蔵しており、PORESET_Bの解除を制御します。前述の論理ゲート回路を介して、電源検出ロジックとのANDゲートロジックを実行し、CPU_PORESET_BをLS1043Aプロセッサに出力してリセットを開始します。 uboot またはシステムに入った後、reset または reboot コマンドを使用して、最終的に RESET_REQ_B を介してウォッチドッグ チップを制御し、システムのソフト リセットと再起動を実行できます。 このようなリセット制御がシステムの正常な電源投入時の起動に影響を与えるかどうかという疑問が残ります。現状の分析に基づくと、LS1043Aは起動後にOCRAMにアクセスした後、初期化に失敗したと考えられます。 Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly PORESET により POR が繰り返されるようです。 PORESET がハイからローに変化する原因となる信号を確認してください。 このステップでは、DDR 部分は POR に影響しません。 中国語で返事をすることもできます。 Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly さらに情報を追加しますと、ボードで使用した DDR4 チップは MT40A512M8SA-062E IT (3200MT/s バージョン) であり、ddr_init.c で LS1043ARDB (LS2108) のデフォルト設定を使用しました。DDR チップまたは DDR 設定は、OCRAM で DDR コントローラを初期化する際のシステムのパワーオン リセットに影響しますか? Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly 同様の問題、断続的な障害(数千回の再起動のうち1回のみ発生)に遭遇しました。u-boot の起動プロセス中にソフトウェアがフリーズします。障害メッセージは「Synchronous Abort」ハンドラ、esr 0x02000000 です。呼び出しの詳細を逆アセンブルしたところ、次のことがわかりました。initr_pci →pci_init→dm_pciauto_config_device (pci_auto.c:371)→dm_pci_hose_probe_bus (pci-uclass.c:607)→dm_pciauto_prescan_setup_bridge→bl dm_pci_get_bdf。ret が戻ると、アドレス 0x8202fc20 で例外が発生します。問題は、ret が誤ったアドレスに到達することですが、呼び出された esr は単なるレジスタシフトであり、それ自体には本質的にエラーが発生しやすい側面はありません (メモリへのアクセスもジャンプもありません)。 このソフトウェアはcpldを使用してウォッチドッグ(外部ウォッチドッグ)にアクティブに信号を送り、 PORESETを使用して外部ウォッチドッグをリセットしようとしましたが、失敗しました。この問題についてご助言いただけますでしょうか? Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly この質問については、新しいトピックを立てることをお勧めします。ありがとうございます。 Re: our customed board with LS1043AXN8QQB and 2GB DDR4 can't poweron reset properly すでに新しい通知「ソフトウェア起動時に同期アボートが発生しました」ハンドラー、esr 0x02000000
記事全体を表示
RT1051:ENET IEEE1588 定时器时钟源 您好, 在 RT1050 参考 手册 中 , 我 发现了 以下内容 : mastupristi_0-1789736651417.png 我想知道IEEE1588定时器的时钟源有哪些。例如,我可以选择从 AUDIO_PLL 派生的根时钟吗? 哪些寄存器控制 IEEE1588 定时器的时钟源? 顺祝商祺! 最大值 i.MX RT105x Re: RT1051: ENET IEEE1588 Timer Clock source 据我所知,这个定时器由标记为“ENET_25M_REF_CLK”(来自 MCUXpresso 配置工具)的时钟提供时钟信号,并且始终为 25MHz。我认为他们所说的“与网络速度无关”仅仅是指,如果以太网以 10Mbps 的速度运行,速度不会变慢。 附言如果您打算使用 1588 定时器比较/捕获功能,请注意,在我看来,它是 RT1050 上最难正确使用的外设之一,并且有很多陷阱需要注意。例如,你不能同时使用 Event In n 和 Event Out n 引脚(其中 n 为 0..3)。例如,你不能同时使用 Event Out 1 和 Event In 1,但你可以同时使用 Event In 1 和 Event Out 0。此外,四个通道中只有两个支持 DMA。
記事全体を表示
Who Is the Leading Fuel Delivery App Development Company in USA? If you’re looking for a fuel delivery app development company in the USA, JPLoft is one company worth considering. With 16+ years of experience and 1,250+ projects delivered, JPLoft develops custom fuel delivery solutions for startups, fuel suppliers, and enterprises. Its solutions can include real-time GPS tracking, fuel ordering and scheduling, driver management, secure payments, admin dashboards, notifications, and analytics. JPLoft also provides end-to-end services, from UI/UX and app development to testing, deployment, and post-launch support. Before choosing a development partner, compare relevant industry experience, technology expertise, scalability, security practices, and ongoing support.
記事全体を表示
S32K312 ISELED NXPのエキスパートの方、こんにちは。S32K312NHT0MPAITはどの世代のISELEDに対応していますか?第1世代のみに対応しているのでしょうか? Re: S32K312 ISELED Chenxu1 さん、こんにちは。 返信が遅くなり申し訳ありません。この問題は当社のソフトウェアチームに調査のために割り当てられており、今日ようやく彼らのフィードバックを受け取りました。 現在、当社のドライバーはISELED 1.0およびILaSをサポートしています。しかし、ISELED 2.0とほぼ互換性があり、 ILaS_Read_Register コマンドを除きほとんどの機能をサポートする必要があります。コマンドはまだ検証が必要です。また、ISELED 2.0との完全な互換性を実現するために、追加のアップデートが必要かどうかを判断するための包括的な評価はまだ実施していません。 よろしくお願いいたします ロビン
記事全体を表示
RT1051: ENET IEEE1588タイマークロックソース こんにちは、 RT1050 の リファレンス マニュアル には 以下の 情報 があります: mastupristi_0-1789736651417.png IEEE1588タイマーのクロックソースが何なのか知りたいです。例えば、AUDIO_PLLから派生したルートクロックを選べますか? IEEE1588タイマーのクロックソースを制御するレジスタはどれですか? よろしくお願いいたします 最大 i.MXRT 105x Re: RT1051: ENET IEEE1588 Timer Clock source 私の知る限り、このタイマーは「ENET_25M_REF_CLK」とラベル付けされたクロック(MCUXpressoの設定ツールより)でクロックされており、常に25MHzです。「ネットワーク速度に関係なく」というのは、イーサネットが10Mbpsで動作しているときに速度が遅くならないという意味だと思います。 追伸もし1588タイマーの比較・キャプチャ機能を使う予定なら、これはRT1050で正しく使うのが最も難しいペリフェラルの一つであり、注意すべき多くの落とし穴があることを覚えておいてください。例えば、イベントインnとイベントアウトのnピンを同時に使うことはできません(ここでnは0..3です)。例えば、Event Out 1とEvent In 1を同時に使うことはできませんが、Event In 1とEvent Out 0を同時に使うことは可能です。また、4チャネルのうちDMAサポートは2つだけです。
記事全体を表示
T1042 DDR4初期化失敗 私は64ビットインターフェースでDDR4に接続したT1042デザインを持っています。インターフェースの最上位バイトのニブル間で不適切なビットスワップの問題が既に見つかりましたが、これはSW設定では補正できないことがわかっています。PWBの改訂版で修正を実施する予定です。しかし、他のビットは正しく、スワッピングもリファレンスマニュアルで許可されている範囲に入っているため、代わりに32ビットモードで動作させて、SWや他の設計を引き続き表示できるようにしたいと考えています。QCVS DDRの検証ツールを使って試しましたが、メモリの初期化ができません。デバイスのパラメータを入力し、DQのマッピング値を自分のデザイン通りに設定しましたが、ERR_DETECTレジスタでビットACE= 1が出続けています。プロセッサはSPIインターフェース経由でRCWを取得し、DDR周波数は800MHzに設定されています。CodeWarrior/QCVSを使用して、正しいRCW値が受信されたことを確認する方法はありますか?32ビットモードの動作で考慮すべき他の設定は何でしょうか?なぜ動作しないのか説明がつきます。どんなサポートでも大変ありがたいです。ありがとう。 QorIQ T1デバイス Re: T1042 DDR4 Initialization Failure CodeWarrior/QCVSを使用して、正しいRCW値が受信されたことを確認する方法はありますか? [A] はい、可能です。CCSを接続して、DCFG_CCSR_RCWSR1-DCFG_CCSR_RCWSR16を読み取って、SPIフラッシュのRCWと比較できます。 32ビットモードの動作で考慮すべき他の設定は何でしょうか?なぜ動作しないのか説明がつきます。 [A]これはディスクリートDDR4ですか?一般的なルールについては、 QCVS_DDR_User_Guideを参照してください。 ハードウェア設計については、 AN5097、DDR4 SDRAMメモリインターフェースのハードウェアおよびレイアウト**デザイン**の考慮事項 よろしくお願いします。 Re: T1042 DDR4 Initialization Failure こんにちは、ジューンさん。 ご返信ありがとうございます。CCSを使用してRCWステータスレジスタを読み取り、RCWが想定どおりにプログラムされていることを確認できました。 私はディスクリートDDR4を使っており、ユーザーガイドやレイアウトの考慮事項も確認済みです。 32ビットインターフェース使用に関するエラッタA-007864を満たすため、1300MT/sで動作するための650MHzクロックがあることを確認しました。同僚が、チップセレクトがトグルしているかどうか確認するように提案した。QCVSツールがプロセッサに設定を送信し始めると、CS0信号は十分に低く保たれることがわかりました。プログラミングが完了し、検証ルーチンを実行しようとすると、CS0信号が完全にアサートされなくなる。JTAGの境界スキャンツールを独自に使い、信号が期待通りに接続されていること、そしてT1042のI/Oが正味を十分に低くしてDDR4メモリデバイスのVILを満たすことができるかを確認しました。信号の整合性に関するルーティングの面でも、ネットワークが良好であり、どこにも短絡していないことも確認しました。どうやらメモリコントローラの設定に何か問題があり、チップセレクト信号が正しく機能しないようです。他に何かアイデアはありますか?ありがとう。 Re: T1042 DDR4 Initialization Failure 説明中のCS0がD1_MCS0_Bを指しているのか確認していただけますか? ご使用のCCSでコマンドを実行し、CCSのログ全体を更新してください。 (bin) % ccs::reset_to_debug よろしくお願いします。 Re: T1042 DDR4 Initialization Failure その通りです。私が言及しているのはD1_MCS0_Bのことです。 コマンドを実行すると (bin) % ccs::reset_to_debug 「ライブラリが見つかりません」というメッセージが表示されます。 Re: T1042 DDR4 Initialization Failure メモリコントローラは650MHzまたは1300MT/sの動作に設定されています。結果は同じだった。64ビットインターフェースのバイト8で意図しないビットスワップ(ニブル間の誤スワップ)が発生しているため、DDR4で32ビットモードを使おうとしています。設計は64ビット+ECCを想定していましたが、一時的な回避策として32ビット+ECCを運用しようとしています。つまり、現在5台の16ビットチップが接続されていますが、そのうち3台だけで動作させることを目指しています。 様々な設定の組み合わせを試してみましたが、QCVSツールの動作に変化は見られません。少し奇妙なのは、QCVSと同様の値をスタートアップスクリプトに設定したGreenHillsエミュレーターを使ってみたところ、DDR_SDRAM_CFG_2[D_INIT]がクリアされるまでの待機ループを通過できたことです。これは初期化が完了していることを示唆しています。そして、初期書き込み/読み出し検証で全て0x00となり失敗します。これは、最適ではない書き込みレベル設定値を使用しているため当然の結果です。QCVSツールだけ動作が異なる理由が分かりません。 Re: T1042 DDR4 Initialization Failure RCWステータスレジスタを読み出した後、コマンドを入力してください。 コマンド「ccs::reset_to_debug」の結果ではなく、完全なccsログを共有してください。 「ライブラリが見つかりません」というメッセージが表示されます。 完全なログは、ccs を使用した最初のコマンドから始まります。 よろしくお願いします。 Re: T1042 DDR4 Initialization Failure ACEエラーは、メモリコントローラがトレーニングシーケンス中にエラーを検出した場合に設定される自動キャリブレーションエラーです。では、クロック速度を800MHzから下げた場合、トレーニング結果はどうでしょうか? 一方、DDR4では64ビットまたは32ビットのバス幅のどちらが採用されるのでしょうか?T1042にはDDR4が何個接続される予定ですか? Re: T1042 DDR4 Initialization Failure 添付ファイルは.txtファイルです。RCW出力による。最後に指定したコマンド「ccs::reset_to_debug」を実行しましたが、「ライブラリが見つかりません」というメッセージは表示されませんでしたが、その他の情報も表示されませんでした。 DDR構成レジスタについても同様のキャプチャを行い、添付しました。問題は見つかりません。実際、GreenHillsプローブで使用したこれらの値は正常に動作し、D_INITもクリアされるようですが、同じ値をQCVSツールで使用した場合はD_INITがクリアされません。GHプローブとCWTAPの違いがよく分かりません。何かアイデアがあれば教えてください。 Re: T1042 DDR4 Initialization Failure 現在、調達部門と協力してNDAを成立させ、完全な訂正書を作成できるようにしています。しかし、コンポーネントT1042NXE7MQBを使っていて、GoogleやNXPフォーラム検索ではエラッタA009942適用されるようです。 参照された「Optimization.zip」を教えていただけますか?どこにも添付されていないようです。 Re: T1042 DDR4 Initialization Failure 「ccs::reset_to_debug」は正しく動作します。 errata_A009942 が必要かどうか確認してください。必要な場合は、添付のホットフィックス Optimization.zip を解凍して、CodeWarrior PA インストールフォルダ内の既存の Optimization フォルダを上書きしてください。C:\Freescale\CW_PA_v10.5.1\eclipse\Optimization\resources\QorIQ\DDR\templates\init\errata_A009942.py が存在します。 以下の一般的なガイドラインをご確認ください。 新しいQCVSプロジェクトを作成する - 「自動設定」と「離散DRAM」を選択する - DRAM速度定格 = 最大速度 (例: 最大3200 MT/s、データシートを参照) - 「出力データレート」で「xxx MT/s」を選択してください(現在の動作速度、例: 1300MT /s。このデータレートはRCWイメージで設定されているDRAM速度と一致している必要があります)。   - 「ランク/チップ選択」で「x」を選択                   (シングルCSまたはデュアルCS)   - 「tCL」は「xx」を選択します(DRAMデータシートの速度ビン表に従って)。   - 「デバイスごとのDRAM構成」で「xx」を選択してください(DRAMデータシートを参照)。   - 適切な CLK-to-QDS スキューを埋める               (EDA ツールを使用して CLK 信号と DQS 信号の長さを測定します。CLK の長さ - DQS の長さ) CLKの長さからDQSの長さを引いた値。例: CLK-DRAM0間の長さ = 100 mm CLK-DRAM1間の長さ = 101 mm DQS[0]の長さ = 75 mm DQS[1]の長さ = 110 mm CLK-to-DQS[0]のスキュー = 100 mm - 75 mm = 25 mm CLK-to-DQS[1]のスキュー = 101 mm - 110 mm = -9 mm - CLK配線の長さは、DQS配線の長さと10インチ以内で等しいか、それ以上でなければなりません。 - MCKの配線長がDQSの配線長より短い場合、その差は2.0インチ以内でなければなりません。 DQマッピング - コントローラピン: 実際のボードでDQビットスワッピングが使われている場合、ユーザーはQCVSで実際のPCBレイアウトに合わせて設定する必要があります。 タイミングCFG_1と3: - tCL/tRCD/rRP/tRAS この値は、現在の動作速度に合わせるためにDRAMデータシートを参照します。      - tWR (書き込み回復時間、プリチャージの最小間隔となる最後のデータ)。この値はDRAMデータシートを参照してください。          - tRRD(アクティブ化間隔)この値はDRAMデータシートを参照します。     タイミングCFG_2:   - tFAW(4つのアクティブウィンドウ)、この値はDRAMデータシートを参照します。 ユーザーは、これらのボード固有の構成やDRAM固有の構成が実際のハードウェアと一致していることを確認する必要があります。 その他のほとんどのオプションについては、QCVSのデフォルト値を使用してください。 よろしくお願いします。 Re: T1042 DDR4 Initialization Failure 添付ファイルが見当たらなくて申し訳ありません。 Re: T1042 DDR4 Initialization Failure こんにちは、ジューンさん。 ファイルの提供と継続的なサポートに感謝します。QCVS DDRvツールの設定に関するガイドラインに従い、本日、エラータ#A009942の回避策を試してみましたが、効果は見られませんでした。スクリプト自体を調べてみたところ、667MHzと800MHzという特定の周波数に対してのみ回避策が適用されているようです。現在、訂誤#007864により、幅32ビット以下の800MHzで動作するとDDRインターフェースに問題がある可能性があるとされ、現在650MHzで動作しています。650MHzの場合、設定する必要のあるデバッグレジスタ値はありますか? この設計は単一の100MHzクロックソースを使用しているため、DDR周波数の選択肢はDDR4用に650MHz、700MHz、750MHz、800MHzしかないように思えます。32ビットモードの場合、650MHz以外の周波数を使用すべきでしょうか? 私は依然としてDQマップの値に疑念を抱いています。数ヶ月前の別の投稿で、 T1042 DDR4 DQ MAPレジスタ設定の値を確認するのを手伝っていただきました。 これは、当サイトで動作しているT1042 DDR4の他の例とこの設計との違いが顕著です。彼らは64ビットを使用し、最上位バイトでわずかなビットスワップを行っただけだった。64ビットインターフェースのMSBで既知の悪いビットスワップがあり、そのため32ビットモードを回避策として試みています。動作設計よりも多くのスワップがあり、1バイトレーン内での完全なニブルスワップも含まれますが、インターフェースの32ビットLSBはT1042コントローラーで許可されているルールに従っているようです。DQマップの入れ替えに関する様々な組み合わせが機能することが知られていますか?検証に使っている値をもう一度見ていただけますか?便宜上、レジスタ値と回路図のキャプチャを添付しています。DDR4デバイスのもう一方の端は直接1:1のマッピングなので、スワッピングはT1042側にのみ表示されています。 改めて、サポートありがとうございます。 Re: T1042 DDR4 Initialization Failure @dbevans42 スクリプトには650 MHzのA-009942を適用し、667と同じラインをもう1行追加すれば良いでしょう。 DQマッピングを確認するため、DDRデバイスの部品回路図をご提供いただけますでしょうか。 DQマッピングがMAPを横切る場合、デバッグモードが1つありますが、これはボードを修正するまでの暫定的な解決策です。 データレートを1200MT/sに設定する DDR_SDRAM_CFG_2[DDR_SLOW] = 1 に設定します オフセット0x8F04[27]のDDRレジスタを1に設定するか、オフセット0x8F04に0x10の値を書き込みます。 DDR_DQ_MAPnレジスタをすべてクリアします よろしくお願いします。 Re: T1042 DDR4 Initialization Failure DDR4です。これはDIMMではなく離散設計なので、1G x 16ビットのデバイスが5台(64ビット+8ビットECC)です。 Re: T1042 DDR4 Initialization Failure DDR4に64ビットバス幅の製品があるかどうかはわかりません。LPDDR4のことですか? Re: T1042 DDR4 Initialization Failure 9月24日(木)に投稿した前回のメッセージでは、DQ[0:31]とECCに関する回路図のスクリーンショットを添付しました。誤ったビットスワップをハイライトした64ビットインターフェース全体のスナップショットを再度含めます。 追加の回避策を教えていただきありがとうございます。 質問: 1) A009942スクリプトに650MHzを追加する場合、どのような値を書き込むべきですか?667MHzと同じであるべきでしょうか? 2) あなたが挙げた新しい1200MT/sの回避策は、誤ったスワップが発生しても64ビットモードが動作するようにするためのものですか、それとも引き続き32ビットモードを試す必要がありますか? 3) DDRvツールを使用して回避策を実行する方法はありますか?そうでなければ、GreenHillsプローブの起動スクリプト内で試してみて、結果を報告します。 Re: T1042 DDR4 Initialization Failure こんにちは、ジューンさん。 GreenHillsのプローブ起動スクリプト内でご紹介いただいた回避策を実装でき、DDR4インターフェースが動作しているようです。DDR4にコードを読み込んで実行を開始でき、GHプローブメモリビューを使ってDDR4で初期化されたデータ値を確認できます。確認のため、スクリプトを添付しました。 質問: 1) デバッグモードについてもう少し詳しく教えてもらえますか? 2) デバッグモードの回避策は1200MT/sでしか動作しないのか、それとももっと速く動かせるのか? 3) DQマップレジスタの機能にバグはありますか?DQマップレジスタが宣伝どおりに動作すること、そして新しいスピンでDQ57とDQ63の入れ替わりの誤りを修正した場合でも、デバッグモードなしでも正常に動作することを確認する必要があります。 4) 32ビットモードにバグや問題はありますか?デバッグ回避策なしの32ビットモードが機能しないのは理にかなっていません。なぜなら、それらのビットのマッピング規則に従っているからです。 5) 回避策としてデバッグモードを実行し、QCVS DDRvツールを使用して正しい書き込みレベル値を取得する方法はありますか? Re: T1042 DDR4 Initialization Failure こんにちは、ジューンさん。 あなたは問題の根本原因を特定したと思います。数年前から異なるMPUシンボルを使った**デザイン**がいくつかあり、**DDR3L**は1000MT/sで動作していますが、問題は一度もありません。そのため、記号に誤りがあるとは考えもしませんでした。私たちはマッピングの見直し、記号を修正し、この問題がなぜ長期間続いているのかを特定しようとしています。今後の新しいボードスピンでこの問題を修正できるはずです。引き続きサポートいただき、心からありがとうございます。この時点で、私たちは前に進むことができるはずです。 よろしくお願いいたします。 ダグ Re: T1042 DDR4 Initialization Failure こんにちは、@dbevans42さん これはデバッグ専用の回避策であり、ビットスワップが正しく行われていないDDR4ボードを低データレートで動作させることで、ボードレベルで他の問題が存在しないことを確認するのに役立ちます。しかし、基板設計は最終的にAN5097に従って修正される必要があります。 このモードでサポートされる最大データレートは1200 MT/sです。 社内チームからの説明は以下のとおりです。 DEBUG_2[27:FRC_SE]はスローイネーブを強制的にローに設定することを意味し、DDR4はメモリへの書き込み時にインターフェースを遅くすることでCASをプレアンブルやRXビットの調整に訓練できます。通常、DDR4は書き込みではなく、多目的レジスタにMRSコマンドを発行することによってトレーニングを行います。FRC_SEビットが設定されている場合、MPRRおよびMPRWコマンドはサポートされません。さらに、FRC_SE設定されている場合、内部トレーニングやDRAM VRefトレーニングはサポートされません。   QCVS検証はこの回避策をサポートしていません。DDRのinitソフトウェアデバッグにのみ有用であり、メモリを有効にする前に必要な設定をDDR initに組み込む必要があります。   ご提供いただいた回路図のスクリーンショットを確認したところ、MPUライブラリに表示されているT1042のピン番号がデータシートのピン番号と一致していないことに気づきました。 正しいMPUライブラリを使用しているか確認していただけますか?さらに、T1042とDDR4デバイスの両方について、完全な回路図シンボル(ライブラリ定義)を提供してください。また、回路図上のT1042のピン番号がデータシートに記載されているピン番号と異なる理由を再確認することをお勧めします。   よろしくお願いします。 Re: T1042 DDR4 Initialization Failure 初期化を正常に行うために必要な最低クロック周波数は?あるいはイニティリアザイオンが全く機能しないかも。ハードウェアガイドラインに基づいて回路図とレイアウトを確認しましたか?DDR4の部品番号を教えていただければ、より詳しくレビューできます。 Re: T1042 DDR4 Initialization Failure 根本原因を特定できて嬉しいです。 可能であれば、次の基板リビジョン前に現行設計のDQマッピングを調整することも有益かもしれません。 結果が出たら共有していただけると嬉しいです。 ご質問がありましたら、お気軽にお知らせください。 私は1週間以上OoOになるので、返答が遅れるかもしれません。何か進展があればご連絡いたします。 ありがとうございます。
記事全体を表示