Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
Support for Direct Framebuffer Write to Display on i.MX8QXP Hi NXP Team,   Soc : iMX8qxpC0mek Linux O.S : yocto [Scarthgap L6.6.5 ] We would like to check whether direct framebuffer writing to the display is supported on the i.MX8QXP Yocto Linux platform. Our requirement is to display graphics or an image directly during the early boot stage, before the Weston/Wayland compositor and HMI application are initialized. Could you please clarify: Whether direct framebuffer access, such as /dev/fb0, is supported. Whether the display can be updated directly using DRM/KMS without starting Weston. Whether NXP provides any reference application or sample code for direct display rendering The required kernel configurations, device-tree changes, or display-driver settings. Whether direct framebuffer access could conflict with Weston when the compositor starts later. Please share the recommended approach for implementing early display output on the i.MX8QXP platform. Re: Support for Direct Framebuffer Write to Display on i.MX8QXP Hello @Ram2  Hope you are doing very well. 1. Is /dev/fb0 (fbdev) supported? No, not natively on i.MX 8. The NXP i.MX Linux Reference Manual explicitly shows ins chapter 6.2.2 Frame buffer: Frame buffer drivers are supported for i.MX 6 and i.MX 7, but not for i.MX 8 2. Direct DRM/KMS access without Weston Yes, this is the correct and supported approach. On i.MX 8, Weston uses the DRM backend, which means Weston must not be running when an application directly accesses DRM/KMS.  You can take a look to the chapter 7.3.10.7 cam test application of UG10163. 3. NXP Reference Application / Sample Code You can take a look to the SDK_2_9_0_MEK-MIMX8QX\boards\mekmimx8qx\driver_examples\dpu\character example. Download it from MCUXpresso SDK. 4. Kernel Configuration, Device Tree, and Display Driver Settings Kernel configuration (in imx_v8_defconfig): CONFIG_DRM=y # DRM framework CONFIG_DRM_IMX=y # i.MX DPU DRM driver (drivers/gpu/drm/imx) CONFIG_DRM_IMX_DPU=y # DPU-specific DRM module CONFIG_DRM_IMX_MIPI_DSI_NORTHWEST=y # MIPI DSI (for OLED panel support) CONFIG_DRM_IMX_LDB=y # LVDS Display Bridge Please take a look to the Table 10. Kernel and device tree configurations of RN00210, in section Video Display. 5. Conflict with Weston When It Starts Later Yes, there is a conflict. Since both the early-boot DRM/KMS application and Weston fight for exclusive control of /dev/dri/card0, the early application must release the DRM master before Weston starts. You can try display via U-Boot logo. U-Boot supports BMP images rendered via DRM/simplefb. This completely avoids the Linux-layer conflict and produces the earliest possible splash screen. Best regards, Salas.
View full article
如何在 i.MX 8QuadXPlus / i.MX 8DualXPlus 上测试边带 ECC 错误注入? 您好,NXP团队, 我正在测试 i.MX 8QuadXPlus / i.MX 8DualXPlus 平台上的 DDR 边带 ECC 功能,该平台具有 40 位 DDR3L 接口(32 位数据 + 8 位 ECC)。 根据 AN13566,可以通过 ECC_REGION_PARITY_LOCK 解锁 ECC 奇偶校验区域并修改 ECC 奇偶校验位来注入内联 ECC 错误。然而,我找不到关于边带 ECC 的详细错误注入或验证程序。 AN13566 提到边带 ECC 使用额外的 ECC 字节,并且控制器在 DDR 读取期间检查此字节。它还提到,边带 ECC 在检测到可纠正的单比特错误后,支持自动清除 RMW 操作。 请问测试边带ECC的推荐方法是什么? 边带ECC是否有硬件错误注入或数据投毒寄存器? 软件如何注入一个可纠正的单比特错误? 软件如何注入双比特不可纠正错误? 应该检查哪些ECC状态寄存器和中断信号? 如何验证边带 ECC 纠错操作是否已纠正数据并将其写回? 是否有示例代码、测试步骤或DDR控制器寄存器序列可供参考? 我们的配置如下: SoC:i.MX 8 QuadXPlus / i.MX 8 DualXPlus DDR类型:DDR3L DDR接口:40位、32位数据+8位ECC 谢谢。 Re: How to test Sideband ECC error injection on i.MX 8QuadXPlus / i.MX 8DualXPlus? 嗨@kkfly 您可以参考 IMX8DXL RM 文档中的 ECC 寄存器描述。 https://www.nxp.com/products/iMX8XLite 具体而言,是ECC 配置寄存器 0 (ECCCFG0)和ECC 配置寄存器 1 (ECCCFG1)寄存器。 BR Re: How to test Sideband ECC error injection on i.MX 8QuadXPlus / i.MX 8DualXPlus? 文档中写道:“注意:此SoC不支持ECC数据投毒。”请确保此位设置为 0。那么,这是否意味着 IMX8DXL 和 IMX8QXP 不支持 ECC 错误注入?
View full article
支持 i.MX8QXP 直接帧缓冲区写入显示器 您好,NXP团队:   SoC:iMX8qxpC0mek Linux 操作系统:yocto [Scarthgap L6.6.5] 我们想检查一下 i.MX8QXP Yocto Linux 平台是否支持直接向显示器写入帧缓冲区。 我们的要求是在启动初期,在 Weston/Wayland 合成器和 HMI 应用程序初始化之前,直接显示图形或图像。 请问您能否澄清一下: 是否支持直接访问帧缓冲区,例如/dev/fb0 。 是否可以直接使用 DRM/KMS 更新显示内容,而无需启动 Weston。 NXP是否提供任何用于直接显示渲染的参考应用程序或示例代码 所需的内核配置、设备树更改或显示驱动程序设置。 直接访问帧缓冲区是否会与 Weston 在合成器稍后启动时发生冲突。 请分享在 i.MX8QXP 平台上实现早期显示输出的推荐方法。 Re: Support for Direct Framebuffer Write to Display on i.MX8QXP 你好@Ram2 希望你一切都好。 1. 是否支持 /dev/fb0 (fbdev)? 不,i.MX 8 本身并不支持。NXP i.MX Linux 参考手册在第 6.2.2 章“帧缓冲区”中明确指出: 帧缓冲区驱动程序支持 i.MX 6 和 i.MX 7,但不支持 i.MX 8。 2. 无需 Weston 即可直接访问 DRM/KMS 是的,这是正确且有依据的方法。 在 i.MX 8 上,Weston 使用 DRM 后端,这意味着当应用程序直接访问 DRM/KMS 时,Weston 不能运行。 您可以参阅UG10163的 7.3.10.7 章 cam 测试应用。 3. NXP 参考应用/示例代码 您可以查看 SDK_2_9_0_MEK-MIMX8QX\boards\mekmimx8qx\driver_examples\dpu\character 示例。从MCUXpresso SDK下载。 4. 内核配置、设备树和显示驱动程序设置 内核配置(在 imx_v8_defconfig 中): CONFIG_DRM=y # DRM framework CONFIG_DRM_IMX=y # i.MX DPU DRM driver (drivers/gpu/drm/imx) CONFIG_DRM_IMX_DPU=y # DPU-specific DRM module CONFIG_DRM_IMX_MIPI_DSI_NORTHWEST=y # MIPI DSI (for OLED panel support) CONFIG_DRM_IMX_LDB=y # LVDS Display Bridge 请看表10。RN00210的内核和设备树配置,在视频显示部分。 5. 与韦斯顿的冲突(稍后开始) 是的,存在冲突。 由于早期启动的 DRM/KMS 应用程序和 Weston 都争夺 /dev/dri/card0 的独占控制权,因此早期应用程序必须在 Weston 启动之前释放 DRM 主设备。 您可以尝试通过 U-Boot 徽标进行显示。U-Boot 支持通过 DRM/simplefb 渲染的 BMP 图像。这样就完全避免了 Linux 层冲突,并能尽早生成启动画面。 顺祝商祺! 萨拉斯。
View full article
S32Gコアリセット こんにちは、NXPさん。 S32G399特定のM7コアの独立リセットを他のコアの通常の動作に影響を与えずにサポートしているのか知りたいです。 Re: S32G Core RESET こんにちは、 @ChuanG 投稿ありがとうございます。 はい、サポートされています。一般的には、M7_1/2/3のオン/オフをM7_0上で動作するアプリケーションで行われます BR チェイン
View full article
使用 IMXRT1172 LPSPI EDMA 传输 API 时,DMA IRQ 处理程序在 SPI 传输完成之前被调用。 您好, 我一直在使用 IMXRT1172 上的 SDK (2.16.100) 中的 LPSPI EDMA 传输 API 同时读取和写入 SPI 数据(即在两个大小相同的缓冲区的两个 DMA 通道上进行 TX+RX 传输)。不幸的是,EDMA 回调似乎在传输实际完成之前就被调用了。在回调中,检查 LPSPI 的 SR、FSR 和 RSR 显示,即使 DMA 认为它已完成,SPI 仍然认为它很忙。IEMBF 仍然已设置,TXCOUNT 为 1。 SR = 0x01000100(MBF、WCF) FSR TXCOUNT = 1,RXCOUNT = 0 RSR = 0x00000002 (RXEMPTY, !SOF) 如果我只执行 TX 操作,这在某种程度上是有意义的,因为 SPI 外设可能仍然会输出从 DMA 加载的最后一个字节。因此,在这种情况下,DMA 外设实际上已经完成了将最后一个字节从 RAM 加载到 SPI 数据 TX 寄存器,但 SPI 仍然需要做一些工作才能将其发送出去。 但是,当同时执行 TX 和 RX 时,我原本预期如果 TXCOUNT 为 1,那么 RXCOUNT 也应该为 1。也就是说,在所有 TX 数据时钟输出完毕之前,DMA 不应该完成 RX,因为最后一个字节需要通过 DMA 从 SPI RX 数据寄存器传输到 RAM 中,而这只会在传输的最后一个时钟周期发生。 这真的是个问题吗? 如果是这样,是用SDK实现的吗?还是用硬件IP实现的? 我希望能够在 DMA 回调中检查 LPSPI SR,以确定是否存在任何 SPI 错误。 谢谢! -m Re: Using IMXRT1172 LPSPI EDMA transfer API, DMA IRQ handler called before SPI transfer is done 嗨@nxp16 , 非常感谢您对我们产品的关注以及对我们社区的使用。 DMA 完成和 SPI 总线完成是两个不同的概念。 eDMA 回调表明 DMA 引擎已完成在内存和 LPSPI FIFO/寄存器路径之间移动配置的字节数。这并不一定意味着 LPSPI 总线状态机已经完成最后一帧或返回空闲状态。 对于 LPSPI 总线完成情况,请检查 SR[TCF] 或等待 SR[MBF] 清除。 希望对你有帮助 顺祝商祺! 5月 Re: Using IMXRT1172 LPSPI EDMA transfer API, DMA IRQ handler called before SPI transfer is done 是的,但在 TX/RX 传输中,我预期 DMA 完成后 TX_COUNT 和 RX_COUNT 都应为零。也就是说,RX DMA 不可能在最后一个 SPI 时钟之前完成,因为 SPI 外设要到那时才会将数据的最后一位移入 RX FIFO,而 DMA 要到最后一位移入 RX FIFO 后才能将最后一个字节复制到 RAM 中。因此,在这种情况下,TX 和 RX 都应该在 DMA 完成之前完成。如果只是 TX 传输,那么是的,DMA 可能在 SPI 完成之前完成,TX_COUNT 仍然可能为 1。 谢谢! -m Re: Using IMXRT1172 LPSPI EDMA transfer API, DMA IRQ handler called before SPI transfer is done 嗨@Mike_M3 , 感谢您的反馈。 你的观点对于 RX 数据路径是有效的:一旦 RX EDMA 通道完成,预期的 RX 数据就已经被移动到 RAM 中。然而,这仍然与 LPSPI 总线完成不同。 TXCOUNT/RXCOUNT 是先进先出 (FIFO) 占用指示符。RXCOUNT=0 表示 RX FIFO 已被 DMA 清空,而 TXCOUNT=1 可能仍然表示发送/命令 FIFO 中有一个待处理的条目。在 LPSPI 中,发送 FIFO 也用于命令/TCR 条目,因此 TXCOUNT 不仅仅是 RX 完成的镜像。MBF=1 表示 LPSPI 总线状态机尚未完全恢复到空闲状态。 因此,我不会使用 TXCOUNT/RXCOUNT 相等作为转账完成的条件。对于 LPSPI 总线完成条件,请改用 SR[TCF]=1 或 SR[MBF]=0。如果更倾向于基于中断的指示,请启用 kLPSPI_TransferCompleteInterruptEnable,并将 EDMA 回调仅保留为 DMA 完成指示。 顺祝商祺! 5月
View full article
将开发板 PCB 导入 Altium 我们的团队正在使用 S32K148-Q176 评估板 RevB。我们正在设计一个与评估板连接的板,并试图获得该板的模型以帮助我们完成这项工作。从您的网站下载时,文件将保存为 BRD 文件。我们这里使用的是 Altium,所以无法导入该文件。你们的工程团队能否将 .BRD 文件转换为 ASCII .alg 文件?文件,还是 Altium 可以导入的其他文件格式? Re: Getting a Dev Board PCB imported to Altium 嗨@rollypoli 遗憾的是,我没有办法将 Allegro BRD 数据库转换为 Altium 格式。 对于过去类似的请求,我通常建议使用免费的 Cadence Allegro 查看器。Cadence 提供了一个免费的查看器,可以打开 BRD 文件,并允许您直接检查 PCB 数据库。 使用查看器中提供的测量和检查工具,您应该能够准确地确定连接器、安装孔和其他机械特征的位置和间距。通常情况下,这样做足以在您自己的 Altium 设计中复制电路板轮廓和连接器位置,从而使新的 PCB 在机械上与原电路板保持兼容。 您可以从以下网址下载免费的 Cadence 查看器: https://www.cadence.com/en_US/home/tools/pcb-design-and-analysis/allegro-downloads-start.html 虽然这不如拥有原生 Altium 设计文件方便,但对于需要参考 Allegro PCB 布局并在其他 CAD 工具中重新创建相关机械尺寸的客户来说,这种方法效果很好。 此致, Lukas Re: Getting a Dev Board PCB imported to Altium 您能否将其从 .brd 文件转换为 .alg 文件?(ascII) allegro 文件? 我会看看观众。 Re: Getting a Dev Board PCB imported to Altium 抱歉,我没有这样的机会。
View full article
i.MX8M Plus — ECSPI/SPI NOR 上のセカンダリイメージブート (IMG_CNTN_SET1_OFFSET): OP で ROM がフォールバックするか i.MX8M Plus -- ECSPI/SPI NOR 上のセカンダリ イメージ ブート (IMG_CNTN_SET1_OFFSET): OPEN 構成では ROM がフォールバックしますか? ==== セットアップ ==== - SoC:i.MX8M Plus(カスタムSMARCモジュール) - ブートデバイス: ECSPI2 / CS1 上のシリアル NOR (Winbond W25Q128、16 MiB)。これはFlexSPIではなく、レガシーのeCSPIコントローラーです。 - セキュリティ:OPEN構成(デバイスがHABクローズドでない)。 - ヒューズ IMG_CNTN_SET1_OFFSET (ヒューズ読み取り 2 1) = 0x00000000。 - フラッシュマップ: プライマリブートローダーは0x000000、セカンダリコピーは0x400000 (4 MiB) にあります。 文書化されたSPIマッピングによると: 「SPIの場合:ヒューズが10より大きい場合はセカンダリブートが無効になります。n == 0の場合はオフセット = 4 MB、n == 2の場合は1 MB、その他でn <= 10の場合は1 MB * 2^nとなります。」 ヒューズ n = 0 (工場出荷時のデフォルト設定、書き込み不要) の場合、セカンダリオフセットは正確に 0x400000 になります。 ==== 問題点 ==== バイト単位で同一で、cmp.bで検証済みのプライマリイメージのコピーを0x400000に配置し、プライマリブートヘッダーを無効化(sf erase 0 0x1000)してリセットしました。 ROMはセカンダリイメージにフォールバックしないため、ボードは起動不能状態になります(USB SDP経由でのみ復旧可能)。 また、プライマリボディ内部の穴を消去する(sf erase 0x100000 0x40000)ことも試みましたが、結果は同じでした。 ==== 質問 ==== 1. SPI/ECSPI NORで、ROMがIMG_CNTN_SET1_OFFSETの二次映像に切り替わるのは具体的に何をトリガーするのか? これは無効なプライマリブートヘッダーやイメージ解析失敗、それとも特定のHAB認証失敗なのでしょうか? 2. セカンダリイメージブートは、OPEN(非セキュア)構成でも機能しますか、それともデバイスがHABで閉じられている場合にのみ機能しますか? 3. 同じリセットにフォールバックするのか、それとも電源のオンオフ/2回目のリセット(永続ブート方式)が必要なのか? 4. 0x400000 のセカンダリ イメージは、別々に構築されたブート可能なイメージ (そのオフセット用の独自の IVT/ブート データ) である必要があります。 それとも、プライマリとバイト単位で同一のコピーで十分なのでしょうか? ==== ロジックアナライザによる証拠(リセット中にキャプチャされたSPIバス) ==== リセット中に、Saleae Logic Pro 16を使用してECSPI2バス(CLK、MOSI、MISO、CS)を500 MS/sでプローブし、すべてのSPIトランザクションをデコードしました。比較のために、FlexSPI NORから起動し、セカンダリへのフォールバックも正常に行われるi.MX8QMモジュールでも同様のテストを実施しました。 ---- i.MX8M Plus (ECSPI NOR)、プライマリが破損しています ---- ROMは0x03のREADコマンドのみを発行し、オフセット0から厳密に順次読み取ります。 0x03 00 00 FC -> 0x0000FC を読み込む 0x03 00 04 EC -> 0x0004EC を読み込む 0x03 00 08 DC -> 0x0008DC を読み込む ...(64 KiBブロックあたり約50回の読み取り、増加傾向)... 0x03 00 13 xx -> ここで読み取りカウントが減少(0x100000-0x140000 の領域が消去され、MISO=0xFF) 0x03 00 18 xx -> 穴を越えて直線的に続く ...最大で約0x1A69E8まで... ROMはプライマリ領域全体を直線的に読み取り、消去/無効領域をそのまま通過し(0xFFを取得)、0x400000または0x800000(セカンダリ領域)への読み取りは決して行いません。 キャプチャ全体(2500万サンプル、デコードされたトランザクション654件)には、「0x03 40 xx xx」はどこにも存在しません。 完全に消去されたヘッダーの場合、ROMは0xFFをロードし実行し、同期アボートでクラッシュします。フォールバックは一切ありません。 ---- i.MX8QM (FlexSPI NOR) は比較のために使用しています -- セカンダリフォールバックは正常に動作します ---- プライマリコンテナヘッダーのみが無効化された場合(FCBは0x000400にそのまま残された場合)、QM ROMは次の動作をします。 0x0B 00 04 00 -> 高速読み取り FCB @0x000400、MISO: 46 43 46 42 ("FCFB" マジック、FlexSPI 設定有効) ...FCB構成データを読み込む... 0x0B 00 10 00 -> 高速読み取りプライマリコンテナ @0x001000、MISO: FF FF FF FF (無効!) 0x0B 40 10 00 -> 高速読み取りセカンダリコンテナ@0x401000、MISO:有効な<-- ROMスイッチ、同じリセット 0x0B 40 30 00、0x0B 40 40 00、... -> 2次画像全体を読み込みます(0x40xxxxで~90リード) QM ROMはFCBを読み取り、FlexSPIを設定し、0x001000のプライマリコンテナをチェックし、0xFFを認識します。 そして直ちに(同じリセットで)0x401000のセカンダリコンテナに切り替わります。これはうまくいきます。 代わりに最初の4MB(FCBを含む)をすべて消去すると、QM ROMは2回だけの読み込みを行います 0x000400で、0xFFを得て撤退しません。つまり、撤退が作戦するには有効なFCBが必要です。 - - 比較 - - i.MX8M Plus (このボード): コントローラ:eCSPI(レガシーSPI) オペコードを読みます:0x03 READ FCBの現状:いいえ(eCSPIにはFCBの概念はありません) 破損したプライマリでセカンダリーを読み取る:いいえ ― バスは「0x03 40 xx xx」を表示しません。 結果:レンガ(ロード0xFF ->クラッシュ) i.MX8QM(参考文献): コントローラー:FlexSPI オペコードを読んでください:0x0B 速読 FCBの提示:はい(0x400、魔法の「FCFB」) 破損したプライマリで二次を読み取る:はい -- 「0x0B 40 10 00」、同じリセット 結果:セカンダリーブーツ成功 ==== 要約 ==== バスキャプチャから、i.MX8M Plus の IMG_CNTN_SET1_OFFSET セカンダリイメージの起動が確認できる。 FlexSPI専用であるか、HABクローズド構成によって制限されているかのどちらかで、有効になりません。 OPEN構成のeCSPI NORの場合。 NXPの皆さん、確認いただけますか: - i.MX8M Plus上で、eCSPI(FlexSPIとは異なる)NORがセカンダリイメージブートにサポートされているかどうか; - トリガーがHAB-auth-failure(閉じた設定のみ)か、無効なヘッダー(開設定も含む)か; - フォールバックが同じリセットか電源サイクルが必要か; - セカンダリはそのオフセットのために別途構築する必要があるのか、それともバイト同一のコピーで問題ないのか。 よろしくお願いします。 Re: i.MX8M Plus — Secondary image boot (IMG_CNTN_SET1_OFFSET) on ECSPI/SPI NOR: does ROM fall back i こんにちは、 @djordje_nodさん。 お元気でお過ごしのことと思います。 Q1.ECSPI NORにおいて、ROMがセカンダリROMにフォールバックするトリガーは何ですか? OPENモードでは、ROM/HABがイメージ認証を行いますが、すべての認証エラーは無視され、イメージは実行されます。 閉鎖モード(SEC_CONFIGフューズ)では、主イメージのHAB認証が失敗すると、ROMはPERSIST_SECONDARY_BOOT(SRC_GPR10[30])を1に設定し、ソフトウェアリセットを実行します。 Q2。OPEN構成でセカンダリイメージブートは動作しますか? OPENモードでは、ROMはHABエラーを無視するため、PERSIST_SECONDARY_BOOTを自律的に設定することはありません。 Q3。同じリセットですか、それとも2回目のリセットですか? プライマリブートはHAB認証に失敗します(クローズドモード)---->ROMセットSRC_GPR10[30] = 1---->ソフトウェアリセットを引き起こします。 次のリセットサイクルで、ROMはパーシステントビットを読み取り、それが1であることを確認し、プライマリオフセットではなくセカンダリオフセットからロードします。 Q4。0x400000でバイト同一のコピーか、別途ビルドされたイメージか? IVT/ブートデータフィールドにはフラッシュアドレスではなくRAMアドレスが含まれているため、バイト単位で同一のコピーで十分です。 よろしくお願いいたします。 サラス。
View full article
RT1170 NVCC_XXX電源シーケンスと未使用のIOバンク こんにちは、 1 - 未使用の IO バンク NVCC_XXX の電源を、DCDC_IN と Pswitch がオン (コアもオン) の状態でオフにしても安全かどうかを尋ねています。未使用の IO バンク ピンは外部から駆動されていないものとします。 2 - また、他のIOバンクをオフにした状態で、IO状態を維持するためにIOバンクを1つだけオンにしておくことは問題ないでしょうか? 前もって感謝します Re: RT1170 NVCC_XXX power sequence and unsued IO banks こんにちは、@Marwan。 未使用の電源グループの電源を切断しようと考えていると理解しています。私の理解は正しいでしょうか? 最適な方法は、対応するNVCC_xxx電源を常時供給し、使用されていないGPIOをフローティング状態にしておくことです。しかし、RT1170は柔軟なPower Architectureを備えており、特定のドメインをダウンして全体の消費電力を削減できます。 RT1170の電源アーキテクチャと低消費電力アーキテクチャ設計について詳しく説明されているAN13148を参照することをおすすめします。AN13104も有用な参考資料であり、電力ドメインとLP状態に関する有用な情報を提供しています。 さらに、カスタムボードを開発する場合は、 MIMXRT1160/1170 のハードウェア開発ガイドを参照することを強くお勧めします。この文書は、ファーストパス成功を確保し、ボードのブランクアップ問題を避けるためのボードレイアウト推奨事項やデザインチェックリストに関する情報を提供します。 BR ハビブ Re: RT1170 NVCC_XXX power sequence and unsued IO banks ご返信と参考資料をありがとうございます。 その通りです。使用しないIOバンクはオフにしておきたいのですが、推奨されないとは明確に記載されていませんが、参照した文書の行間から私が理解した内容はそういうことです。 2つ目の質問について: DCDC_IN と DCDC_PSWITCHが オフ(接地)になっている間(SNVSとIOバンクを除くすべてのドメインがオフになっている間)、IOバンクを 常にオン (IOの状態を維持し、外部から駆動されないようにするため)にしておくのはどうでしょうか? MCUはホストではないので、この質問をするのは、MCUがSNVSモードの間、IOが外部から駆動されるのを防ぐためです。 敬具 マルワン Re: RT1170 NVCC_XXX power sequence and unsued IO banks こんにちは、 @Marwan さん。 ご説明ありがとうございます。 ご質問をよりよく理解するために、「IOバンクを常にオンにする」という言葉で、具体的に何を指しているのか教えていただけますか?各I/Oバンクに関連付けられたNVCC_xxx電源レールに継続的に電力を供給することを指しているのでしょうか? 最適な方法は、対応するNVCC_xxx電源を常時供給し、使用されていないGPIOをフローティング状態にしておくことです。Setpoint機能を使うことを強くおすすめします。パワーモードスイッチがより簡単で安全になります。 DCDCを無効にしつつ、SNVS電源のみをアクティブにする可能性について。もしあなたのアプリケーションがM7を使う必要があり、外部PMICを使わない場合は、DCDCを無効にすることはできません。M7はWAKEUPMIXドメインに属しており、このドメインはVDD_SOC_INによって電源供給され、 AN13104の第2章「RT1170電源ドメイン」で述べられているようにDCDCによって直接供給されているからです。 消費電力を最小限に抑えることが目的であれば、SNVSドメインのみに電力を供給したまま、デバイスを低電力状態に移行させるためにSetpointsを使用することを検討してください。詳細については、表4.1.5を参照してください。データシートの「標準的な電源モード供給電流」を参照して、さまざまな設定値構成を確認してください。 さらに、 AN13104には、ウェイクアップソースの設定方法を示す実践的な例が含まれています。実装の際の参考として、第4.9章「ウェイクアップソースの設定」が役立つかもしれません。 最後に、IO状態を維持するためにはSSARCが有用かもしれません。デフォルトでは、ペリフェラルが属する電力ミックスが電源が切れている場合、ペリフェラルの構成は失われ、再初期化されるまで直接使用できません。しかしSSARCでは、電源オフ前に機能モジュールのレジスタをメモリに保存し、モジュールの電源を入れた後にメモリからレジスタを復元できます。これはAN13104の第4.14章「ウェイクアップ後の周辺機器の状態」にも記載されています。「ssarc_software_trigger_cm7」と呼ばれるペリフェラル機能を示すSDKの例があれば参考にできます。 BR ハビブ Re: RT1170 NVCC_XXX power sequence and unsued IO banks 詳しい説明をありがとうございます。 添付の図をご確認ください。 私の目標は SNVSモード(スイッチ以降はすべてオフ)にして、他の回路の状態を維持するためにNVCC_XX SNVSもオンにしておくことです。 これは可能でしょうか、それとも RT1170のMCUにダメージを与えますか? NVCC_XXをオンにしたままにする場合、余分なリーク電流を防ぐためにIOを適切に設定する必要があることは理解しています。 よろしくお願いいたします。ご協力に感謝いたします。 Re: RT1170 NVCC_XXX power sequence and unsued IO banks こんにちは、 @Marwan さん。 外部PMICを使用する予定だと理解しています。私の理解は正しいでしょうか? その場合は、外部PMICをRT1170、特にPF5020と外部PMICのインターフェース方法を説明している AN13213を参照してください。PF5020は、Hardware開発ガイドMIMXRT1160の第3.2章「外部PMICの使用」で推奨されているPMICです。このアプリノートでは、推奨される接続方法は以下のとおりです。 また、ハードウェア開発ガイドの表2と表3を確認することをお勧めします。これらの表には、外部PMICの使用に関する有用なガイダンスと、SNVSドメインに関連する推奨事項が記載されています。 さらに、SDKの例power_mode_switch_bm_pmic_rt1xxx_core0役立つかもしれません。この例では、外部PMICと設定値構成を組み合わせて、異なる低電力状態間を遷移させる方法を示します。サンプルの動作方法の詳細については、READMEファイルをご覧ください。 最後に、 AN13104の第4章13「低消費電力モードにおけるペリフェラルの状態」のレビューをお勧めします。ここでは、デバイスが低消費電力状態にある場合のペリフェラルの動作について説明しています。 BR ハビブ Re: RT1170 NVCC_XXX power sequence and unsued IO banks こんにちは、 @Marwan。 はい、NVCC_xxxレールは外部電源から電力を供給し続けることができます。図14-2「RMのPower Architecture」に示されています。   ただし、この構成では、CM7が存在するWAKEUPMIXドメインに電力を供給するため、DCDC電源も引き続き必要となることにご注意ください。さらに、予期せぬ動作を避けるため、データシートのセクション4.2.1「電源の要件と制限」に記載されている電源投入シーケンスが正しく実装されていることを確認してください。 最後に、 MIMXRT1160/1170のハードウェア開発ガイドを参照することを強くお勧めします。この文書には、成功するボード設計を確保し、故障を防ぐための重要な設計ガイドライン、レイアウト推奨事項、ハードウェアチェックリストが含まれています。 BR ハビブ Re: RT1170 NVCC_XXX power sequence and unsued IO banks いいえ、外部PMICは使いません。共有されたブロック図は私には合っています。ただ、DCDC_IN中は 電源がオンで、MCUがSNVSモードNVCC_XXX時はオフ(接地)されているか確認したいだけです。 これは可能ですか? 敬具
View full article
RT1170 NVCC_XXX 电源时序和未使用的 I/O 组 你好, 1 - 我想问一下,在 DCDC_IN 和 Pswitch 开启(内核也开启)的情况下,关闭未使用的 IO 组 NVCC_XXX 的电源是否安全,因为没有未使用的 IO 组引脚由外部驱动。 2 - 另外,为了维持 IO 状态,是否可以保持某个 IO 存储体开启,而其他存储体关闭? 提前致谢 Re: RT1170 NVCC_XXX power sequence and unsued IO banks 你好@Marwan , 我了解到您正在考虑断开一个未使用的电源组的电源。我的理解正确吗? 最佳做法是保持相应的 NVCC_xxx 电源供电,并将未使用的 GPIO 浮空。然而,RT1170 包含一个灵活的电源架构,允许关闭某些域的电源,以降低整体功耗。 我建议参考AN13148 ,其中详细解释了 RT1170 的电源架构和低功耗架构设计。AN13104也是一个有用的参考资料,因为它提供了有关功率域和 LP 状态的有用信息。 此外,如果您正在开发定制板,我强烈建议您参阅MIMXRT1160/1170 的硬件开发指南。本文档提供有关电路板布局建议和设计清单的信息,以确保一次性成功并避免电路板启动问题。 BR 哈比卜 Re: RT1170 NVCC_XXX power sequence and unsued IO banks 感谢您的回复和提供的参考资料。 没错,如果某些 IO 库不使用,我希望将其关闭。虽然没有明确说明不建议这样做,但这是我从相关文档的字里行间理解到的意思。 关于第二个问题: 如果将 IO 库始终保持开启状态(以保持 IO 状态,并且不被外部驱动),而将DCDC_IN和DCDC_PSWITCH关闭(接地),(除 SNVS 和 IO 库外,所有功能域都关闭),这样可以吗? MCU 不是主机,所以我问这个问题是为了防止 MCU 处于 SNVS 模式时 IO 被外部驱动。 此致敬礼, 马尔万 Re: RT1170 NVCC_XXX power sequence and unsued IO banks 你好@Marwan , 谢谢你的解释。 为了帮助我更好地理解您的问题,您能否解释一下您提到的“使 IO 库始终处于开启状态”指的是什么?您是指保持每个 I/O 组的 NVCC_xxx 供电轨持续供电吗? 最佳做法是保持相应的 NVCC_xxx 电源供电,并将未使用的 GPIO 浮空。我强烈建议使用设定点功能,因为它使电源模式切换更简单、更安全。 关于在禁用 DCDC 的同时仅保持 SNVS 电源处于活动状态的可能性。如果您的应用需要使用 M7 且不使用外部 PMIC。禁用 DCDC 是不可能的,因为 M7 位于 WAKEUPMIX 功能域中,该功能域由 VDD_SOC_IN 供电,并由 DCDC 直接供电,如AN13104的第 2 章“RT1170 功率域”中所述。 如果您的目标是最大限度地降低功耗,您可以考虑使用设定点将设备过渡到低功耗状态,同时仅保持 SNVS 域供电,请参阅表 4.1.5。请参阅数据手册中的“典型电源模式供电电流”,以了解不同的设定点配置。 此外, AN13104还包含一个实际示例,演示如何配置唤醒源。您可能会发现第 4.9 章“唤醒源配置”对您的实现很有用。 最后,关于维护 IO 状态,SSARC 可能很有用。默认情况下,如果外设所属的电源组合断电,则外设配置将丢失,必须重新初始化后才能直接使用。但是,使用 SSARC,您可以在断电前将功能模块的寄存器保存到内存中,并在模块上电后从内存中恢复寄存器,如 AN13104 的 4.14 章“唤醒后的外设状态”中所述。您可以找到一个名为“ssarc_software_trigger_cm7”的 SDK 示例,其中展示了外围设备的功能,您可以将其作为参考。 BR 哈比卜 Re: RT1170 NVCC_XXX power sequence and unsued IO banks 你好@Marwan , 我了解到您计划使用外部电源管理集成电路 (PMIC)。我的理解正确吗? 在这种情况下,请参阅AN13213 ,其中描述了如何将外部 PMIC 与 RT1170 连接,特别是 PF5020,这是 MIMXRT1160/1170 硬件开发指南第 3.2 章“使用外部 PMIC”中推荐的 PMIC。本应用说明中推荐的连接方式如下: 我还建议查阅硬件开发指南中的表 2 和表 3,因为它们提供了有关外部 PMIC 使用以及与 SNVS 域相关的建议的有用指导。 此外,您可能会发现 SDK 示例 power_mode_switch_bm_pmic_rt1xxx_core0 很有帮助。本示例演示了如何使用外部 PMIC 和设定点配置在不同的低功耗状态之间进行转换。请查看 README 文件,了解示例的详细工作原理。 最后,我建议复习AN13104的第 4.13 章“低功耗模式下的外设状态”,其中解释了设备处于低功耗状态时外设的行为。 BR 哈比卜 Re: RT1170 NVCC_XXX power sequence and unsued IO banks 感谢您的进一步解释。 请查看附图: 我的目标是进入SNVS 模式(开关关闭后的所有电路),同时保持 NVCC_XX 开启以维持其他电路的状态,这是否可行,或者是否会对 RT1170 MCU 造成损坏? 我知道,保持 NVCC_XX 开启时,需要正确配置 IO 以防止额外的漏电流。 此致敬礼,并感谢您的帮助。 Re: RT1170 NVCC_XXX power sequence and unsued IO banks 你好@Marwan , 是的,NVCC_xxx 轨可以保持由外部电源供电,如图 14-2“RM 的电源架构”所示:   但是请记住,在此配置中,DCDC 电源也必须存在,因为它为 WAKEUPMIX 功能域(CM7 所在的域)提供电源。此外,请确保正确执行数据手册第 4.2.1 节“电源要求和限制”中描述的上电顺序,以避免出现任何意外情况。 最后,我强烈建议您参阅MIMXRT1160/1170 的硬件开发指南。本文档包含重要的设计指南、布局建议和硬件检查清单,可以帮助确保电路板设计成功并避免潜在的启动问题。 BR 哈比卜 Re: RT1170 NVCC_XXX power sequence and unsued IO banks 不,我不会使用外部 PMIC,共享框图对我来说就足够了,我只需要确保当 DCDC_IN 时 NVCC_XXX 电源可以开启,而当 MCU 处于 SNVS 模式时 NVCC_XXX 电源关闭(接地) 。 这种情况有可能实现吗? 此致敬礼
View full article
RT1170 NVCC_XXX power sequence and unsued IO banks Hello, 1 - Im asking whether is it safe to power down unused IO banks NVCC_XXX while the DCDC_IN and Pswitch are ON(cores also are ON), given that none of the unused IO bank pins are driven externally.  2 - Also whether is it ok to keep an IO bank ON to maintain IO state, while the other banks off? Thanks in advance Re: RT1170 NVCC_XXX power sequence and unsued IO banks Hello @Marwan, I understand that you are considering disconnecting the power supply of an unused power group. Is my understanding correct? The best practice is to keep the corresponding NVCC_xxx supply powered and leave the unused GPIOs floating. However, the RT1170 includes a flexible power architecture that allows certain domains to be powered down to reduce overall power consumption. I recommend consult the AN13148, which provides a detailed explanation of the RT1170 power architecture and the low-power architecture design. AN13104 is also a useful reference, as it provides useful information about the power domains and LP states. Additionally, if you are developing a custom board, I highly recommend see the Hardware Development Guide for the MIMXRT1160/1170. This document provides information about board layout recommendations and design checklists to ensure first-pass success and avoid board bring-up issues. BR Habib Re: RT1170 NVCC_XXX power sequence and unsued IO banks Appreciate your reply and references, That's correct I would like to keep some IO bank off if not used, Although it is not clearly mentioned that it is not recommended, this is what I understand between the lines of the referred documents.  Regarding the second question: What about making the IO bank always on (to maintain the IOs state and not to be driven externally) while the DCDC_IN and DCDC_PSWITCH are off(grounded), (all domains are off except SNVS and the IO banks), is it ok? The MCU is not the host, hence why I ask this is to prevent the IOs to be driven externally while the MCU in SNVS mode. Kind regards, Marwan Re: RT1170 NVCC_XXX power sequence and unsued IO banks Hello @Marwan, Thank for the clarification. To help me better understand your question, could you please clarify me what you referring when you mention "making the IO bank always on"? Are you referring to keeping the associated NVCC_xxx supply rail continuously powered for each I/O bank? The best practice is to keep the corresponding NVCC_xxx supply powered and leave the unused GPIOs floating. I highly recommend use the Setpoint feature since it makes the power mode switch simpler and safer. Regarding the possibility of keeping only the SNVS supply active while disabling the DCDC. If your application requires to use the M7 and does not use an external PMIC. Disabling the DCDC is not possible, since the M7 resides in the WAKEUPMIX domain, which is powered by VDD_SOC_IN and is directly supplied by the DCDC, as mentioned in the Chapter 2 "RT1170 Power Domains" of AN13104. If your goal is to minimize power consumption, you may consider using Setpoints to transition the device into a low-power state while keeping only the SNVS domain powered, please refer to the table 4.1.5 "Typical power mode supply currents" of the datasheet to see different Setpoint configurations. Additionally, AN13104 includes a practical example demonstrating how configure a Wakeup source. You may find the chapter 4.9 "Wakeup source configuration", useful as a reference for your implementation. Finally, regarding to maintain the IO states, the SSARC could be useful. As default if the power mix which the peripheral belongs to is powered down, the peripheral configuration is lost and cannot be used directly until it is reinitialized. But with the SSARC you can save the registers of functional modules in memory before power-down and restores the registers from memory after the module is powered on, as mentioned the chapter 4.14 "Peripherals state after wakeup" of the AN13104. You can find an SDK example which shows the peripheral functionality called "ssarc_software_trigger_cm7" that you could take as reference. BR Habib Re: RT1170 NVCC_XXX power sequence and unsued IO banks Hello @Marwan,   I understand that you plan to use an external PMIC. Is my understanding correct? In that case, please refer to the AN13213, which describes how to interface an external PMIC with the RT1170, specifically the PF5020, the PMIC recommended in the chapter 3.2 "Using External PMIC" of the Hardware Development Guide for the MIMXRT1160/1170. In this app note the recommended connections are the following:   I would also recommend reviewing Tables 2 and 3 of the Hardware Development Guide, as they provide useful guidance on external PMIC usage as well as recommendations related to the SNVS domain. Additionally, you may find the SDK example power_mode_switch_bm_pmic_rt1xxx_core0 helpful. This example demonstrates the use of an external PMIC together with setpoint configurations to transition between different low-power states. Please take a look at the README files for details about how the example works. Finally, I recommend reviewing chapter 4.13 "Peripheral State in a Low-Power Mode" of AN13104, which explains the behavior of peripherals when the device is in low-power state. BR Habib Re: RT1170 NVCC_XXX power sequence and unsued IO banks Thanks for further explanation, kindly check the attached diagram: My goal is to go for SNVS mode(everything after the switch is off), and keep NVCC_XX also on to maintain state of other circuitry, is this possible or it will cause damage to the RT1170 MCU? I know that by keeping NVCC_XX on, I need to properly configure the IOs to prevent extra leakage currents. Kind regards and appreciate your assistance. Re: RT1170 NVCC_XXX power sequence and unsued IO banks No I will not use external PMIC the shared block diagram is good for me, I just need to ensure that NVCC_XXX power can be ON while DCDC_IN and is off (grounded) in when MCU is in SNVS mode.  is this possible? Kind regards Re: RT1170 NVCC_XXX power sequence and unsued IO banks Hello @Marwan, Yes, the NVCC_xxx rails can remain powered from an external supply, as shown in Figure 14-2, "Power Architecture" of the RM:   However, please keep in mind that in this configuration the DCDC supply must also remain present, as it provides power to the WAKEUPMIX domain, where the CM7 resides. Additionally, please ensure that the power-up sequence described in Section 4.2.1 "Power Supplies Requirements and Restrictions" of the datasheet is correctly implemented to avoid any unexpected behavior. Finally, I highly recommend see the Hardware Development Guide for the MIMXRT1160/1170. This document contains important design guidelines, layout recommendations, and hardware checklists that can help ensure a successful board design and avoid potential bring-up issues. BR Habib
View full article
DPAA2 DPDK RTE FLOW Hello, I'm trying to create DPDK RTE FLOW on a DPAA2 SolidRun LX2160A Clearfog CX without success. Is it normal that it doesn't work ? What could be done to make it works ? I'm quite newbie with NXP DPAA2 and NXP in general, so can you please explain your technical words. Thanks. testpmd> flow create 0 ingress pattern eth / ipv4 / end actions rss queues 0 1 end types ip ipv4 end / end DPAA2_NET: Add entry(0) to table(0) failed DPAA2_NET: Create flow failed (-22) port_flow_complain(): Caught PMD error type 1 (cause unspecified): cause: 0xfffff340a300, unknown: Operation not permitted Re: DPAA2 DPDK RTE FLOW Check how the DPNI behind your DPDK port was created. From the Linux shell on the board: restool dprc show dprc.1 --resources          # find the dpni.X your DPDK port uses restool dpni info dpni.X                      # look at the "options" line and "num_queues" If options shows DPNI_OPT_NO_FS , or does not show DPNI_OPT_HAS_KEY_MASKING , that's your problem. Recreate the DPNI with the right options. Either edit dynamic_dpl.sh (or the environment it reads — on NXP LSDK it is typically the DPNI_OPTIONS variable) so the create call looks like this : restool dpni create \     --options=DPNI_OPT_HAS_KEY_MASKING \     --num-queues=2 \     --num-tcs=1 \     --container=dprc.2 Key points: Do not include DPNI_OPT_NO_FS . Do include DPNI_OPT_HAS_KEY_MASKING . Set --num-queues to at least the number of queues your RSS action references (you asked for queues 0 and 1, so ≥ 2). Then attach that DPNI to the DPDK container ( restool dprc assign … ) and rerun testpmd. If you use a static DPL file , add the same to the dpni@X node :  dpni@1 {   options = "DPNI_OPT_HAS_KEY_MASKING";     num_queues = <2>;     ... }; and reflash the DPL via fsl_mc apply dpl … in U‑Boot. Sanity‑check with a simpler rule first. Before RSS, confirm plain steering works:  testpmd> flow create 0 ingress pattern eth / ipv4 src is 10.0.0.1 / end \                      actions queue index 1 / end If this passes but the RSS variant still fails, the remaining issue is queue count / distribution config, not the DPNI options. Re: DPAA2 DPDK RTE FLOW https://www.nxp.com/webapp/Download?colCode=DPAA2UM&location=null DPAA2 User Manual could be helpful BTW. what kind of BSP or SDK is used? Any resource from official websit?
View full article
DPAA2 DPDK RTE 流 你好, 我尝试在 DPAA2 SolidRun LX2160A Clearfog CX 上创建 DPDK RTE FLOW,但没有成功。 它不能正常工作是正常的吗? 怎样才能让它奏效? 我对 NXP DPAA2 和 NXP 产品都比较陌生,所以您能解释一下您使用的技术术语吗? 谢谢。 testpmd> flow create 0 ingress pattern eth / ipv4 / end actions rss queues 0 1 end types ip ipv4 end / end DPAA2_NET: Add entry(0) to table(0) failed DPAA2_NET: Create flow failed (-22) port_flow_complain(): Caught PMD error type 1 (cause unspecified): cause: 0xfffff340a300, unknown: Operation not permitted Re: DPAA2 DPDK RTE FLOW 检查 DPDK 端口背后的 DPNI 是如何创建的。从板载的Linux shell中: restool dprc show dprc.1 --resources # 查找您的 DPDK 端口使用的 dpni.X 文件 restool dpni info dpni.X # 查看“options”行和“num_queues” 如果选项显示 DPNI_OPT_NO_FS,或者不显示 DPNI_OPT_HAS_KEY_MASKING,那就是你的问题所在。 使用正确的选项重新创建 DPNI。可以编辑 dynamic_dpl.sh 文件。(或者它读取的环境变量——在NXP LSDK中,它通常是DPNI_OPTIONS变量)因此,创建调用如下所示: restool dpni 创建 \ --options=DPNI_OPT_HAS_KEY_MASKING \ --num-queues=2 \ --num-tcs=1 \ --container=dprc.2 要点: 不要包含DPNI_OPT_NO_FS。 请包含DPNI_OPT_HAS_KEY_MASKING。 将 --num-queues 设置为至少与您的 RSS 操作引用的队列数量相同的队列数量(您要求队列 0 和 1,因此 ≥ 2)。 然后将该 DPNI 附加到 DPDK 容器(restool dprc assign …),然后重新运行 testpmd。 如果您使用静态 DPL 文件,请将其添加到 dpni@X 节点: dpni@1 { options = "DPNI_OPT_HAS_KEY_MASKING"; 队列数量 = <2>; ... }; 然后通过 U-Boot 中的 fsl_mc apply dpl … 重新刷写 DPL。 先用更简单的规则进行合理性检验。在安装RSS之前,请确认普通转向功能是否正常: testpmd> flow create 0 ingress pattern eth / ipv4 src is 10.0.0.1 / end \ 操作队列索引 1 / 结束 如果此方法通过但 RSS 变体仍然失败,则剩余的问题是队列计数/分发配置,而不是 DPNI 选项。 Re: DPAA2 DPDK RTE FLOW https://www.nxp.com/webapp/Download?colCode=DPAA2UM&location=null DPAA2 用户手册可能会有所帮助。 顺便问一下,你们使用的是哪种BSP或SDK?官方网站上有相关资源吗?
View full article
開発ボードのPCBをAltiumにインポートする 私たちのチームは、S32K148-Q176評価ボードRevBと協力しています。私たちは評価ボードとインターフェースするボードを設計しており、そのモデルを手に入れてその作業を支援しようとしています。ファイルは、お客様のサイトからダウンロードされる際にBRD形式で保存されます。ここではAltiumを使っているので、そのファイルはインポートできません。貴社のエンジニアリングチームは、.BRD ファイルを ASCII .alg 形式に変換できますか?ファイル、あるいはAltiumがインポートできる他のファイル形式ですか? Re: Getting a Dev Board PCB imported to Altium こんにちは、 @rollypoli さん。 残念ながら、Allegro BRDデータベースをAltium形式に変換する方法は持ち合わせていません。 過去に同様の依頼を受けた際には、通常、無料のCadence Allegroビューアの使用をお勧めしてきました。CadenceはBRDファイルを開けることができ、PCBデータベースを直接検査できる無料のビューアを提供しています。 ビューアに搭載されている測定ツールや検査ツールを使用すれば、コネクタ、取り付け穴、その他の機械的部品の位置と間隔を正確に特定できるはずです。これで通常は、自分のAltium設計で基板の輪郭やコネクタ位置を再現し、新しいPCBが元の基板と機械的に互換性を保つことができます。 無料のCadenceビューアは以下からダウンロード可能です: https://www.cadence.com/en_US/home/tools/pcb-design-and-analysis/allegro-downloads-start.html ネイティブのAltium設計ファイルほど便利ではありませんが、Allegro PCBレイアウトを参照し、別のCADツールで関連する機械寸法を再作成する必要があるお客様にはうまく機能しています。 よろしくお願いいたします。 ルーカス Re: Getting a Dev Board PCB imported to Altium .brd ファイルを .alg に変換する機能はありますか?(ascII) アレグロファイル? 私は視聴者を見ます Re: Getting a Dev Board PCB imported to Altium 申し訳ありませんが、そのようなことは私にはできません。
View full article
CGM-RD (UM12423) — NHS2634 始终无法置位中断引脚,NHS2x34_Init() 函数无限期挂起 NHS2x34_Init() 无限期地挂起,等待 NHS2634 的中断引脚变为高电平。我希望有人能帮我确定这究竟是硬件问题、电源时序问题还是固件配置问题。 事件顺序: 1. NHS2634_HOSTIF_InitSpiAndInterrupt() 运行并返回成功。 2. 调用 NHS2x34_PMC_ResetAFE()。这将向 PMC 控制寄存器发出 SPI 写入操作(设置 AFE RESET 位)。它返回成功(状态 = 0)。 3. 然后,代码在以下循环中等待,期望芯片在准备好接受进一步的 SPI 命令时将其中断引脚置为高电平。这个循环永远不会结束。 while (!NHS2634_HOSTIF_GetInterruptPinLevel()) { } 诊断程序已运行: 1. 通过 SEGGER RTT 日志确认循环确实在旋转(实时轮询计数器持续递增至数千万),没有冻结或崩溃。CPU 已启动并正在主动重新检查引脚。 2. 连接调试器(J-Link/GDB),并在循环过程中两次停止。程序计数器位于 NHS2634_HOSTIF_GetInterruptPinLevel() 内部,两次调用 GPIO_PinRead(),这与主动轮询一致。 3. 写入 PMC 控制寄存器后立即将其读回。预期会收到一个非零模式,反映复位位加上刚刚发送的写保护字节,但返回的是 0x00000000。 4. 运行原始 SPI 回环测试(将传感器连接器上的 MOSI 和 MISO 直接短接,NHS2634 模块完全断开)。使用特殊测试模式时,仍然返回 0x00000000,而不是发送字节的回显。 5. 将 NHS2634 模块完全拔掉后,重复上述所有步骤。结果与连接时完全相同。 我想确定的是: 我使用的是NXP官方提供的SDK,没有修改驱动程序代码。我需要确定这是否是我的硬件问题、电源时序问题或固件配置问题,以及这是否像是我的设备特有的硬件故障。 非常感谢您能提供一些关于下一步该如何着手的指导。 MCU-LINK-PRO 、 MCUXPRESSO-VSC 、血糖监测仪 @nxp , @nxp5 通信与控制(I3C | I2C | SPI | FlexCAN | 以太网 | FlexIO) MCXA MCXC MCX N 代码包,软件包和 I/O|GPIO 电源
View full article
Getting a Dev Board PCB imported to Altium Our team is working with the S32K148-Q176 Evaluation Board RevB. We are designing a board to interface with the evaluation board and were trying to get a model of it to aid in that endeavor. The files are saved as a BRD when downloaded from your site. We use Altium here and so we cannot import that file. Would your engineering team be able to convert the .BRD to an ASCII .alg file, or another file format that altium can import? Re: Getting a Dev Board PCB imported to Altium Hi @rollypoli  Unfortunately, I do not have a way to convert the Allegro BRD database into Altium format. For similar requests in the past, I have typically recommended using the free Cadence Allegro viewer. Cadence provides a free viewer that can open BRD files and allows you to inspect the PCB database directly. Using the measurement and inspection tools available in the viewer, you should be able to accurately determine the placement and spacing of the connectors, mounting holes, and other mechanical features. This is usually sufficient to reproduce the board outline and connector locations on your own Altium design so that the new PCB remains mechanically compatible with the original board. The free Cadence viewer can be downloaded from: https://www.cadence.com/en_US/home/tools/pcb-design-and-analysis/allegro-downloads-start.html While this is not as convenient as having a native Altium design file, it has worked well for customers who needed to reference an Allegro PCB layout and recreate the relevant mechanical dimensions in another CAD tool. Regards, Lukas Re: Getting a Dev Board PCB imported to Altium Do you have the ability to convert it from a .brd to a .alg (ascII) allegro file? I will look at the viewer Re: Getting a Dev Board PCB imported to Altium I'm sorry but I do not have such possibility. 
View full article
DPAA2 DPDK RTE フロー こんにちは、 DPAA2 SolidRun LX2160A Clearfog CX上でDPDK RTE FLOWを作成しようとしていますが、うまくいきません。 動作しないのは普通のことですか? うまくいくには何ができるでしょうか? 私はNXP DPAA2やNXP全般についてかなり初心者なので、技術的な言葉を教えてもらえますか? ありがとうございます。 testpmd> flow create 0 ingress pattern eth / ipv4 / end actions rss queues 0 1 end types ip ipv4 end / end DPAA2_NET: Add entry(0) to table(0) failed DPAA2_NET: Create flow failed (-22) port_flow_complain(): Caught PMD error type 1 (cause unspecified): cause: 0xfffff340a300, unknown: Operation not permitted Re: DPAA2 DPDK RTE FLOW DPDKポートの背後にあるDPNIがどのように作成されたかを確認してください。基板上のLinuxシェルから: restool dprc show dprc.1 --resources # DPDKポートが使用するdpni.Xを見つけます restool dpni info dpni.X # "options" 行と "num_queues" を確認してください オプションに DPNI_OPT_NO_FS が表示される場合、または DPNI_OPT_HAS_KEY_MASKING が表示されない場合は、それが問題の原因です。 適切なオプションを使用してDPNIを再作成します。dynamic_dpl.sh を編集するか、(または読み取る環境 — NXP LSDK では通常 DPNI_OPTIONS 変数です)なので、Create コールは次のようになります: restool dpni create \ --options=DPNI_OPT_HAS_KEY_MASKING \ --num-queues=2 \ --num-tcs=1 \ --container=dprc.2 要点: DPNI_OPT_NO_FSを含めないでください。 DPNI_OPT_HAS_KEY_MASKINGを含めてください。 --num-queuesをRSSアクションが参照するキューの数に設定してください(キュー0と1を指定したので、2≥です)。 次に、その DPNI を DPDK コンテナにアタッチし (restool dprc assign …)、testpmd を再実行します。 静的DPLファイルを使用する場合は、同じファイルをdpni@Xノードに追加してください。 dpni@1 { オプション = "DPNI_OPT_HAS_KEY_MASKING"; num_queues = <2>; ... }; そして、U-Bootでfsl_mc apply dpl …を使用してDPLを再フラッシュします。 まずはもっと簡単なルールで妥当性を確認してみましょう。RSSの前に、プレーンステアリングが正常に動作することを確認してください。 testpmd> flow create 0 ingress pattern eth / ipv4 src is 10.0.0.1 / end \ アクションキューインデックス 1 / 終了 これが成功してもRSSバリアントが失敗する場合は、残りの問題はDPNIオプションではなく、キュー数/配信構成です。 Re: DPAA2 DPDK RTE FLOW https://www.nxp.com/webapp/Download?colCode=DPAA2UM&location=null DPAA2ユーザーマニュアルが役立つかもしれません ちなみに。どのようなBSPやSDKが使われていますか?公式ウェブサイトからの情報源はありますか?
View full article
CGM-RD (UM12423) — NHS2634 が割り込みピンをアサートせず、NHS2x34_Init() が永久にハングアップする NHS2x34_Init() は、NHS2634 の割り込みピンがハイになるのを無期限に待機してハングアップします。これがハードウェアの問題なのか、電源供給シーケンスの問題なのか、それともファームウェアの設定の問題なのかを判断するのにご協力をお願いします。 イベント情報の順序: 1. NHS2634_HOSTIF_InitSpiAndInterrupt() が実行され、成功を返します。 2. NHS2x34_PMC_ResetAFE() が呼び出されます。これは、PMC制御レジスタへのSPI書き込み(AFEリセットビットの設定)を実行します。成功(ステータス=0)を返します。 3. その後、コードは次のループで待機し、チップがSPIコマンドを受け入れる準備ができたら割り込みピンをハイにするのを待ちます。このループは決して終了しない。 while (!NHS2634_HOSTIF_GetInterruptPinLevel()) { } 既に実行された診断: 1. SEGGER RTT ログにより、ループが実際に回転していること (ライブ ポーリング カウンターが継続的に数千万まで増加していること) が確認され、フリーズしたりクラッシュしたりしていないことが確認されました。CPUは動作しており、ピンを積極的に再チェックしています。 2. デバッガ(J-Link/GDB)を接続し、ループの途中で2回停止しました。プログラムカウンタはNHS2634_HOSTIF_GetInterruptPinLevel()の中にあり、GPIO_PinRead()を2回呼び出しており、アクティブポーリングと一致している。 3. PMC制御レジスタに書き込みを行った直後に、その内容を読み戻してください。リセットビットと書き込み保護バイトを反映したゼロでないパターンを期待していましたが、返0x00000000されました。 4. 生のSPIループバックテストを実行しました(MOSIからMISOへのショートをセンサーコネクタに直接接続し、NHS2634モジュールを完全に切り離しました)。送信したバイトのエコーではなく、特徴的なテストパターンに対して0x00000000が返ってきた。 5. 上記の手順をNHS2634モジュールを完全に取り外した状態で繰り返した。結果はコネクテッド時と全く同じでした。 私が明らかにしようとしていること: 私はNXPが提供する公式SDKを使っており、ドライバーコードは変更していません。これがハードウェアの問題なのか、電源供給シーケンスの問題なのか、それとも私の側のファームウェア設定の問題なのか、また、これが私のユニット固有のハードウェア障害のように見えるのかどうかを判断する必要があります。 次にどこを調べれば良いか、何かアドバイスをいただけるとありがたいです。 MCU-リンク-PRO、 MCUXPRESSO-VSC、 血液グルコースモニター  @nxp 、 @nxp5 通信・制御(I3C |I2C |SPI |FlexCAN |イーサネット |FlexIO) MCXA MCX C MCX N パッケージとIO|GPIO パワー
View full article
Using IMXRT1172 LPSPI EDMA transfer API, DMA IRQ handler called before SPI transfer is done Hi, I've been using the LPSPI EDMA transfer API from the SDK (2.16.100) on IMXRT1172 to read and write SPI data simultaneously (i.e. a TX+RX transfer on two DMA channels with two buffers of the same size).  Unfortunately, it appears that the EDMA callback is getting called before the transfer actually finishes.  In the callback, checking LPSPI's SR, FSR, and RSR shows that SPI thinks it's still busy even though DMA thinks it's complete.  I.e. MBF is still set and TXCOUNT is 1. SR = 0x01000100 (MBF, WCF) FSR TXCOUNT = 1, RXCOUNT = 0 RSR = 0x00000002 (RXEMPTY, !SOF) Now, if I was only doing TX, this could somewhat make sense as the SPI peripheral could still be clocking out the last byte loaded from DMA.  So in that case the DMA peripheral would actually be finished loading the last byte from RAM into the SPI data TX register, but SPI still had work to do to send it out. However, when doing TX and RX simultaneously, I would have expected that if TXCOUNT was 1, then so would RXCOUNT be.  I.e. the DMA shouldn't be complete with RX until all the TX data is clocked out because the last byte needs to be transferred by DMA into RAM from the SPI RX data register, and this would only happen on the last clock cycle of the transfer. Is this actually a problem? If so, is it with the SDK?  Or with the hardware IP? I was hoping to be able to check LPSPI SR in the DMA callback to determine if there are any SPI errors. Thanks, -m Re: Using IMXRT1172 LPSPI EDMA transfer API, DMA IRQ handler called before SPI transfer is done Hi @nxp16 , Thank you so much for your interest in our products and for using our community. DMA completion and SPI bus completion are two different concepts. The eDMA callback indicates that the DMA engine has completed moving the configured number of bytes between memory and the LPSPI FIFO/register path. It does not necessarily mean that the LPSPI bus state machine has already completed the last frame or returned to idle. For LPSPI bus completion, please check SR[TCF] or wait for SR[MBF] to clear. Wish it helps you Best Regards May Re: Using IMXRT1172 LPSPI EDMA transfer API, DMA IRQ handler called before SPI transfer is done Yes, but in a TX/RX transfer, I would have expected the TX_COUNT and RX_COUNT to both be zero when DMA completes.  I.e., it should be impossible for RX DMA to complete before the last SPI clock, because the SPI peripheral wouldn't have shifted the last bit of the data into the RX FIFO until then, and DMA would not be able to copy the last byte into RAM until the last bit is shifted into the RX FIFO.  So in that case, both TX and RX should be completed before the DMA completes.  If it was only a TX transfer then yes, DMA could complete before SPI does and TX_COUNT could still be 1. Thanks, -m Re: Using IMXRT1172 LPSPI EDMA transfer API, DMA IRQ handler called before SPI transfer is done Hi @Mike_M3 , Thanks for your feedback. Your point is valid for the RX data path: once the RX EDMA channel has completed, the expected RX data has already been moved to RAM. However, this is still not the same as LPSPI bus completion. TXCOUNT/RXCOUNT are FIFO occupancy indicators. RXCOUNT=0 means the RX FIFO has been drained by DMA, while TXCOUNT=1 can still indicate one pending entry in the transmit/command FIFO. In LPSPI, the transmit FIFO is also used for command/TCR entries, so TXCOUNT is not simply a mirror of RX completion. MBF=1 indicates that the LPSPI bus state machine has not yet fully returned to idle. Therefore, I would not use TXCOUNT/RXCOUNT equality as the transfer-complete condition. For the LPSPI bus-complete condition, please use SR[TCF]=1 or SR[MBF]=0 instead. If an interrupt-based indication is preferred, enable kLPSPI_TransferCompleteInterruptEnable and keep the EDMA callback as the DMA-complete indication only. Best Regards May
View full article
IMXRT1172 LPSPI EDMA転送APIを使用する場合、SPI転送が完了する前にDMA IRQハンドラが呼び出されます。 こんにちは、 私はIMXRT1172上でSDKのLPSPI EDMA転送API(2.16.100)を使って、SPIデータを同時に読み書きしています(つまり、同じサイズのバッファを持つ2つのDMAチャネルでのTX+RX転送)。残念ながら、EDMAコールバックは転送が実際に完了する前に呼び出されているようです。コールバック内でLPSPIのSR、FSR、RSRを確認すると、DMAは処理が完了したと考えているにもかかわらず、SPIはまだビジー状態であると考えていることがわかります。つまりMBFは設定されたままで、TXCOUNTは1です。 SR = 0x01000100 (MBF、WCF) FSR TXCOUNT = 1、RXCOUNT = 0 RSR = 0x00000002 (RXEMPTY、!SOF) もしTXだけを扱うなら、SPIペリフェラルがDMAから最後に読み込まれたバイトをまだ処理している可能性があるので、ある程度理にかなっているかもしれません。その場合、DMA周辺機器はRAMからSPIのデータTXレジスタへの最後のバイトの読み込みを終えていますが、SPIはそれを送信する作業をまだ必要としていました。 しかし、TXとRXを同時に行う場合、TXCOUNTが1ならRXCOUNTも1になるはずだと予想していました。つまり、DMAはすべてのTXデータがクロックアウトされるまでRXで完了してはならない。なぜなら、最後のバイトはSPI RXデータレジスタからDMAによってRAMに転送される必要があり、これは転送の最後のクロックサイクルでのみ発生するからである。 これは本当に問題なのでしょうか? もしそうなら、SDKで問題ですか? それともハードウェアIPで? DMAコールバック内でLPSPI SRをチェックして、SPIエラーが発生しているかどうかを判断できればと思っていました。 ありがとうございます -m Re: Using IMXRT1172 LPSPI EDMA transfer API, DMA IRQ handler called before SPI transfer is done こんにちは、 @nxp16 さん。 私たちの製品にご関心を寄せ、コミュニティをご利用いただき、本当にありがとうございます。 DMA完了とSPIバス完了は、2つの異なる概念です。 eDMAコールバックは、DMAエンジンがメモリとLPSPI FIFO/レジスタパス間で設定されたバイト数のデータの転送を完了したことを示します。これは必ずしも、LPSPIバスステートマシンが最後のフレームを完了した、あるいはアイドル状態に戻ったことを意味するものではありません。 LPSPIバスの完了を確認するには、SR[TCF]を確認するか、SR[MBF]がクリアされるまでお待ちください。 お役に立てれば幸いです。 よろしくお願いいたします。 5月 Re: Using IMXRT1172 LPSPI EDMA transfer API, DMA IRQ handler called before SPI transfer is done はい、しかしTX/RX転送の場合、DMAが完了した時点でTX_COUNTとRX_COUNTの両方がゼロになることを期待していました。つまり、RX DMAが最後のSPIクロックより前に完了することは不可能であるはずです。なぜなら、SPI周辺機器はその時間までにデータの最後のビットをRX FIFOにシフトしておらず、DMAは最後のバイトをRX FIFOにシフトするまでRAMにコピーできないからです。その場合、TXとRXの両方がDMAが完成する前に完了しているはずです。もしTXの転送だけなら、DMAがSPIより先に完了し、TX_COUNTはまだ1のままかもしれません。 ありがとうございます -m Re: Using IMXRT1172 LPSPI EDMA transfer API, DMA IRQ handler called before SPI transfer is done こんにちは、 @Mike_M3 さん、 ご意見ありがとうございます。 あなたの指摘はRXデータパスに関しても正しいです。RX EDMAチャネルが完了すると、期待されるRXデータはすでにRAMに移されています。しかし、これはLPSPIバスの完了とはまだ同じではありません。 TXCOUNT/RXCOUNTはFIFO占有率インジケーターです。RXCOUNT=0はDMAによってRX FIFOが消耗されたことを意味し、TXCOUNT=1は送信/コマンドFIFO内の保留中のエントリを1つ示すことがあります。LPSPIでは、送信FIFOはコマンドやTCRエントリにも使用されるため、TXCOUNTは単なるRX補完のミラーではありません。MBF=1は、LPSPIバスステートマシンがまだ完全にアイドル状態に戻っていないことを示します。 したがって、転送完了の条件としてTXCOUNT/RXCOUNTの等価性を使用することはお勧めしません。LPSPIバス完了条件については、代わりにSR[TCF]=1またはSR[MBF]=0を使用してください。割り込みベースの表示が望ましい場合は、kLPSPI_TransferCompleteInterruptEnableを有効にし、EDMAコールバックをDMA完了表示専用にしてください。 よろしくお願いいたします。 5月
View full article
i.MX8M Plus — ECSPI/SPI NOR 接口上的辅助镜像启动 (IMG_CNTN_SET1_OFFSET):ROM 是否会回退到 OP 模式 i.MX8M Plus -- ECSPI/SPI 或非 上的辅助映像启动 (IMG_CNTN_SET1_OFFSET):ROM 是否会回退到 OPEN 配置? ==== 设置 ==== - SoC:i.MX8M Plus(定制SMARC模块) - 引导设备:ECSPI2 / CS1 上的串行 NOR(Winbond W25Q128,16 MiB)。这是传统的 eCSPI 控制器,不是 FlexSPI。 - 安全性:开放式配置(设备未关闭 HAB)。 - 熔丝 IMG_CNTN_SET1_OFFSET(熔丝读取 2 1)= 0x00000000。 - Flash 映射:主引导加载程序位于 0x000000,辅助副本位于 0x400000(4 MiB)。 根据已记录的SPI映射: “对于 SPI:如果熔丝位大于 10,则禁用辅助启动;n == 0 -> 偏移量 = 4 MB;n == 2 -> 1 MB;其他情况且 n <= 10 -> 1 MB * 2^n。” 当熔丝 n = 0(出厂默认值,无需烧录)时,二级偏移量应正好为 0x400000。 ==== 问题 ==== 我们在 0x400000 处放置了一个字节相同的、经 cmp.b 验证的主映像副本,然后使主启动头失效(sf erase 0 0x1000)并重置。 ROM 无法回退到备用映像——主板已变砖(只能通过 USB SDP 恢复)。 我们还尝试擦除主体内部的一个孔(sf erase 0x100000 0x40000),结果相同。 ==== 问题 ==== 1. 在 SPI/ECSPI NOR 上,是什么触发 ROM 在 IMG_CNTN_SET1_OFFSET 处切换到辅助映像? 是无效的主启动头/镜像解析失败,还是具体的 HAB 认证失败? 2. 辅助映像启动在开放(非安全)配置下是否有效,还是仅在设备 HAB 关闭时有效? 3. 是否恢复到之前的重置状态,还是需要断电重启/第二次重置(持久启动方式)? 4. 位于 0x400000 的辅助映像必须是单独构建的可引导映像(具有该偏移量的独立虚拟镜像/引导数据)吗? 或者,使用与原文件完全相同的字节副本就足够了? ==== 逻辑分析仪证据(RESET 期间捕获的 SPI 总线信号) ==== 我们使用 Saleae Logic Pro 16 以 500 MS/s 的速度探测 ECSPI2 总线(CLK、MOSI、MISO、CS),并在 RESET 期间解码每个 SPI 事务。为了进行比较,我们对从 FlexSPI 或非 启动并成功回退到辅助电源的 i.MX8QM 模块进行了同样的测试。 ---- i.MX8M Plus (ECSPI NOR),主控芯片已损坏 ---- ROM 只发出 0x03 READ 命令,严格从偏移量 0 开始顺序读取: 0x03 00 00 FC -> 读取 0x0000FC 0x03 00 04 EC -> 读取 0x0004EC 0x03 00 08 DC -> 读取 0x0008DC ……(每个 64 KiB 数据块约 50 次读取,呈严格递增趋势)…… 0x03 00 13 xx -> 读取计数在此处下降(擦除空洞 0x100000-0x140000,MISO=0xFF) 0x03 00 18 xx -> 线性地继续经过孔洞 ... 最高可达 ~0x1A69E8 ... ROM 会线性读取整个主区域,直接读取已擦除/无效区域(得到 0xFF),并且永远不会读取 0x400000 或 0x800000(辅助区域)。 在完整的捕获数据(2500 万个样本,654 个解码交易)中,任何地方都没有“0x03 40 xx xx”。 如果头完全擦除,ROM 会加载 0xFF,执行它,然后因同步中止而崩溃——没有任何回退机制。 作为对比,i.MX8QM(FlexSPI NOR)——备用方案确实有效—— 当仅主容器头失效(FCB 保持不变,地址为 0x000400)时,QM ROM 会执行以下操作: 0x0B 00 04 00 -> 快速读取 FCB @0x000400,MISO:46 43 46 42(“FCFB”魔数,FlexSPI 配置有效) 读取FCB配置数据…… 0x0B 00 10 00 -> 快速读取主容器 @0x001000,MISO:FF FF FF FF(无效!) 0x0B 40 10 00 -> 快速读取辅助容器 @0x401000,MISO:有效 <-- ROM 已切换,相同 RESET 0x0B 40 30 00, 0x0B 40 40 00, ... -> 加载整个二级镜像(在 0x40xxxx 处读取约 90 次) QM ROM 读取 FCB,配置 FlexSPI,检查 0x001000 处的主容器,发现为 0xFF, 然后立即(相同 RESET)切换到 0x401000 处的辅助容器。这样可行。 如果我们擦除前 4 MB 的全部数据(包括 FCB),QM ROM 只会进行 2 次读取操作。 在 0x000400 处,得到 0xFF,并且不会回退——因此需要有效的 FCB 才能启用回退。 - - 比较 - - i.MX8M Plus(本主板): 控制器:eCSPI(传统SPI) 读取操作码:0x03 读取 FCB 存在:否(eCSPI 没有 FCB 概念) 读取损坏的主服务器上的辅助服务器:否 -- 总线从未显示“0x03 40 xx xx” 结果:砖块(加载 0xFF -> 崩溃) i.MX8QM(参考): 控制器:FlexSPI 读取操作码:0x0B 快速读取 FCB 存在:是(0x400,魔法值“FCFB”) 读取损坏主盘上的辅助盘:是 -- "0x0B 40 10 00", 相同RESET 结果:辅助设备启动成功 ==== 摘要 ==== 从总线捕获信息来看,IMG_CNTN_SET1_OFFSET 辅助映像在 i.MX8M Plus 上启动。 似乎仅支持 FlexSPI,或者受 HAB 关闭配置的限制,并且无法启用。 适用于 OPEN 配置中的 eCSPI NOR。 NXP能否确认: - i.MX8M Plus 是否支持 eCSPI(而非 FlexSPI)或非 进行二次映像启动; - 触发条件是 HAB-auth-failure(仅限已关闭配置)还是任何无效标头(也包括已打开配置); - 回退方案是采用相同的重置方式还是需要断电重启; - 是否必须为该偏移量单独构建辅助副本,或者字节相同的副本也可以。 谢谢! Re: i.MX8M Plus — Secondary image boot (IMG_CNTN_SET1_OFFSET) on ECSPI/SPI NOR: does ROM fall back i 你好@djordje_nod 希望你一切都好。 Q1.什么原因导致 ROM 回退到 ECSPI NOR 的辅助模式? 在 OPEN 模式下,ROM/HAB 执行映像认证,但所有认证错误都会被忽略,并且仍然允许执行映像。 在 CLOSED 模式(SEC_CONFIG 融合)下,当 HAB 对主映像的认证失败时,ROM 将 PERSIST_SECONDARY_BOOT (SRC_GPR10[30]) 设置为 1 并执行软件复位。 Q2. 在 OPEN 配置下,辅助镜像启动是否正常工作? 在 OPEN 模式下,ROM 永远不会自动设置 PERSIST_SECONDARY_BOOT,因为它会忽略 HAB 错误。 Q3:第一次 RESET 还是第二次 RESET? 主启动失败 HAB 认证(关闭模式)----> ROM 设置 SRC_GPR10[30] = 1 ----> 触发信号软件复位。 在下一个 RESET 周期,ROM 读取持久位,发现它是 1,于是从辅助偏移量而不是主偏移量加载数据。 Q4. 是字节相同的副本,还是位于 0x400000 的单独构建的映像? 由于 IVT/启动数据字段包含的是 RAM 地址,而不是闪存地址,因此字节相同的副本就足够了。 顺祝商祺! 萨拉斯。
View full article