Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
在检测到输入引脚边缘时强制改变 eFlexPwm 输出 您好, 一旦 eFlexPWM 被配置为在输出引脚 (PWM_A) 上生成具有定义的周期和占空比的 PWM 信号,是否有可能在检测到输入引脚 (PWM_X 等) 的边沿时通过硬件强制改变输出(我的意思是,在输入引脚生成的中断中不改变输出)? 预先致谢 MCXA MCX N Re: Force eFlexPwm output change on input pin edge detection 你好@zorrotz 是的。当检测到输入引脚(如 PWM_X)上的边沿时,eFlexPWM 模块可通过硬件改变 PWM_A 输出,而无需使用中断。 方法: 将输入引脚路由至 eFlexPWM FAULTx 输入之一。 当任何 FAULTx 引脚为逻辑 1 时,都会产生故障。极性可通过 FCTRL[FLVL]更改。每个 FAULTx 引脚可映射到任何 PWM 输出。 当故障信号被触发时(由输入引脚上检测到的边缘),PWM 输出引脚被强制为逻辑 0、逻辑 1 或高阻抗,具体取决于 OCTRL [pwmxFS] 中的设置。 谢谢! BR 爱丽丝 Re: Force eFlexPwm output change on input pin edge detection 你好@Alice_Yang 是的,可以使用 FAULTx 输入,但我使用 FAULTx 输入是为了在电路检测到过电压时强制逻辑为 0。因此,我无法使用另一个 FAULTx 来强制另一个引脚状态。 也许我可以使用 DMA。 谢谢 Re: Force eFlexPwm output change on input pin edge detection 你好@zorrotz 您可以考虑使用 eFlexPWMEXT_FORCE功能,在硬件中立即更改 PWM 输出。 您可以将输入边沿路由至 EXT_FORCE,然后将 PWM 子模块的 FORCE_SEL 设置为 EXT_FORCE 。 使用 DTSRCSEL,PWM 输出可立即强制达到所需的电平,而无需中断,也不需要消耗任何额外的故障通道。 谢谢。 BR 爱丽丝
記事全体を表示
IMX8MP USB 启动模式 (uuu) 你好, 我有一个 Olimex IMX8MP 主板(原理图和 KiCad 仓库)配对它的底板(原理图和 KiCad 仓库)。 我正在尝试用空白板测试 uuu 的用法,即使用 ROM USB 代码将 u-boot 烧录到 emmc 上。但是,无论我如何尝试,USB 设备都不会出现在我的主机 (Linux) 上。由于基板上只有 USB-A 连接器,我使用了 USB-A 对 USB-A 连接器电缆,但我也尝试了 USB-A 对 USB-C、不带 VBUS 的电缆和其他几种选择,但在 dmesg 中都没有发现任何问题。启动开关似乎设置为正确的 1-0-0-0 组合,其他组合,例如在没有本应回退到 USB 的卡的情况下设置 SD 启动,其工作原理完全相同。SoM 本身可以正常运行,我可以从 SD 启动(而且我看到了 eMMC 所以我想我也能启动 eMMC)。唯一缺少的部分是最初的空白板启动,以便安装 u-boot。 为了执行 ROM 代码,需要建立什么秘密连接吗?我*看来*把它与恩智浦官方开发板原理图的关系非常相似,中间没有集线器等等。它甚至应该这样运行还是我需要先通过其他方式烧录 u-boot(例如从 SD 启动来写 eMMC)? 如蒙反馈,不胜感激! Re: IMX8MP USB boot mode (uuu) 我帮你确认一下,然后给你答复。 Re: IMX8MP USB boot mode (uuu) 板需要在板中设置为串行下载模式。我看不到设计图和原理图的 PDF 文件,您需要自己查看。 你说过 SD 可以很好地在你这边启动。下载图像到 sd 卡和 emmc 使用不同的命令,下载模式相同。 下载完成后,SD 卡和 emmc 的启动模式不一样。 在这里,你需要检查是否连接了正确的线路和电源,使用正确的启动模式和下载命令。 Re: IMX8MP USB boot mode (uuu) UPD:基板缺少 VBUS 引脚,显然 ROM 代码首先使用它来触发 USB 串行下载。
記事全体を表示
从 A53 侧访问 HSE 时发现重启问题 您好, 客户:博世 HSE FW 版本 - HSE_FW_S32G3XX_9_2_63_0 我们发现,从 A53 一侧进入 HSE 时存在重新启动问题。以下是 MU 分配详情: - MU0 & MU3 分配给 M7侧 - MU1 & MU2 分配给 A53侧 M7 端程序: 1.通过将 MU 设置为激活将其启用并将功能域分配为 0 2.通过 mu0 发送的激活其他 MU 的请求 测试结果:能够从 M7 端顺利访问所有 MU。 A53 侧边程序: 1.启用 HSE 驱动程序,MU2 位于主机虚拟机,MU1 位于客户虚拟机 s32-hse -v -i200 -m1 -o16 -c16& -> A53 Guest VM s32-hse -v -i200 -m2 -o32 -c16& -> A53 Host VM 2.在主机虚拟机上创建示例测试应用程序,通过 MU2 通道 /dev/hse/32 读取 HSE fw 版本 测试结果:每当尝试从示例应用程序中打开 HSE 接口 (/dev/hse/32) 时,板就会重新启动。 他们尝试将 sharedMemChunkSize 不设为 0(如果所有 MU 接口的 sharedMemChunkSize 字段都等于 0,那么 XRDC 将被禁用),并在 sharedMemChunkSize = 0 的情况下重新进行了测试。 附上日志以供参考: BSSM: 有效 HSE_FW 优先权:紧急 Re: Restart issue observed while accessing HSE from A53 side 暂时关闭该问题。我们代表博世向 QNX 团队提出了这个问题。不过,该小组表示,该问题与 HSE 固件有关。
記事全体を表示
S32K344 ADC は差動入力モードをサポートしていますか? リファレンスマニュアルにこれについての説明はありますか?マニュアルには関連情報が見つかりませんでした。 Re: Does the S32K344 ADC support differential input mode? こんにちは@yanyanwan S32K3 デバイスは差動入力をサポートせず、シングルエンド入力のみをサポートします。したがって、差動入力読み取りを実行するには外部回路が必要です。 よろしくお願いします、 ジュリアン
記事全体を表示
IMX8MP Board PCIe Phy link never came up Hi NXP Team, I am working on a custom board based on i.MX8M Plus, where the PCIe Root Complex (RC) is the i.MX8MP and the PCIe End Point (EP) is an FPGA. Currently, PCIe initialization starts, but the PCIe PHY link never comes up, and the endpoint is not detected. Below is the relevant log output: sh-5.2# dmesg | grep pci [ 3.115342] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges: [ 3.122709] imx6q-pcie 33800000.pcie: IO 0x001ff80000..0x001ff8ffff -> 0x0000000000 [ 3.130996] imx6q-pcie 33800000.pcie: MEM 0x0018000000..0x001fefffff -> 0x0018000000 [ 3.346446] imx6q-pcie 33800000.pcie: iATU: unroll T, 4 ob, 4 ib, align 64K, limit 16G [ 4.314182] imx6q-pcie 33800000.pcie: Phy link never came up [ 4.320458] imx6q-pcie 33800000.pcie: PCI host bridge to bus 0000:00 [ 4.326885] pci_bus 0000:00: root bus resource [bus 00-ff] [ 4.332426] pci_bus 0000:00: root bus resource [io 0x0000-0xffff] [ 4.338644] pci_bus 0000:00: root bus resource [mem 0x18000000-0x1fefffff] [ 4.345606] pci 0000:00:00.0: [16c3:abcd] type 01 class 0x060400 PCIe Root Port [ 4.352978] pci 0000:00:00.0: BAR 0 [mem 0x00000000-0x000fffff] [ 4.358942] pci 0000:00:00.0: ROM [mem 0x00000000-0x0000ffff pref] [ 4.365177] pci 0000:00:00.0: PCI bridge to [bus 01-ff] [ 4.370447] pci 0000:00:00.0: bridge window [io 0x0000-0x0fff] [ 4.376576] pci 0000:00:00.0: bridge window [mem 0x00000000-0x000fffff] [ 4.383400] pci 0000:00:00.0: bridge window [mem 0x00000000-0x000fffff pref] [ 4.390714] pci 0000:00:00.0: supports D1 [ 4.394759] pci 0000:00:00.0: PME# supported from D0 D1 D3hot D3cold [ 4.404627] pci 0000:00:00.0: BAR 0 [mem 0x18000000-0x180fffff]: assigned [ 4.411485] pci 0000:00:00.0: ROM [mem 0x18100000-0x1810ffff pref]: assigned [ 4.418582] pci 0000:00:00.0: PCI bridge to [bus 01-ff] [ 4.423859] pci_bus 0000:00: resource 4 [io 0x0000-0xffff] [ 4.429481] pci_bus 0000:00: resource 5 [mem 0x18000000-0x1fefffff] [ 4.436366] pcieport 0000:00:00.0: PME: Signaling with IRQ 225 Running lspci only shows the Root Complex: sh-5.2# lspci 00:00.0 Class 0604: 16c3:abcd sh-5.2# lspci -nn 00:00.0 Class 0604: 16c3:abcd sh-5.2# lspci -vvv 00:00.0 Class 0604: 16c3:abcd My questions are: How should PCIe be correctly connected and configured between i.MX8MP (RC) and an FPGA (EP)? What device tree and kernel configuration settings are required on i.MX8MP for successful PCIe link training? How can I verify PCIe link status (LTSSM state, link speed, width) on i.MX8MP? Once the link is up, how can I ensure the FPGA endpoint is properly enumerated so that Vendor ID and Device ID are detected? Any reference designs, FPGA PCIe EP configuration guidelines, or debugging steps would be greatly appreciated. Thanks & Regards Re: IMX8MP Board PCIe Phy link never came up Hi, How did you perform the test? Did you first boot the setup ep, then boot the rc? Or did you boot the rc first? Also, if the FPGA isn't connected, are there any logs related to “Phy link never came up”? Best Regards, Zhiming Re: IMX8MP Board PCIe Phy link never came up HI @Zhiming_Liu , Here is how the testing was performed and the current observations: The PCIe reference clock (100 MHz) is sourced from the FPGA to the i.MX processor. This clock has been verified on the board using an oscilloscope and is stable. After booting the processor, the i.MX is detected as a PCIe Root Complex and its RC ID is correctly assigned. $lspci -nn 00:00.0 Class 0604: 16c3:abcd Boot order was tested in both ways: Root Complex (i.MX) booted first, then the Endpoint (FPGA) Endpoint booted first, then the Root Complex The behavior was the same in both cases. Currently, the PCIe link does not come up. Guidance is requested on how the PCIe link training should be established between the i.MX (RC) and the FPGA (EP). Specifically: Which side initiates the link training (RC or EP)? What conditions must be met on the RC side for successful link-up? Does the i.MX Root Complex automatically start PCIe link training once the EP is present and reference clock/reset are valid? Are there any mandatory actions required on the FPGA side (for example, enabling LTSSM, or configuring PCIe IP) before the RC can detect the Endpoint?
記事全体を表示
未记录压力 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您好, 我目前正在使用 MPX5500DP 传感器来测量压力,但是无论施加任何压力,Arduino Uno 的模拟读数都不会改变。我附上了代码截图和布线图片。如果已知 Vout,我使用数据表中的传递函数来计算压力,并将图 4 中的电路与去耦电容一起使用。在电路图片中,我将黑色跨接电缆连接到接地,红色跨接电缆连接到 5V 引脚,蓝色跨接电缆连接到模拟引脚 5。我在谷歌上搜索了很多,数据表也看了无数遍,但找不到任何线索。 谢谢! Jorge 压力传感器 Re: Pressure not recorded <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,豪尔赫、 您的接线和代码似乎都是正确的。在没有施加压力的情况下输出 ~0.2V 也是正确的。然后,如果增加 P1 和 P2 之间的压力差,输出电压就会增加。 不过,请注意 MPX5500DP 的灵敏度不高(典型值为 0.1)。9mV/kPa),因此需要施加相当高的压力才能获得明显更高的输出电压(例如P1 和 P1 之间的 100kPa 相当于 Vout 上的 0.9V 或 1.1V)。 如果输出电压仍然稳定在 0.2V 左右,那么传感器可能有问题,您必须使用另一个传感器。但我的猜测是,您没有施加足够的压力来获得更高的输出电压。 顺祝商祺! 托马斯
記事全体を表示
図書館に関する質問 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、   Fusion Library 5.0 について次の質問があります。 1) Systick は 9 軸融合の場合 53 を示します。9軸融合機能には(53/120MHz)==0.44uSが必要ですか?一度実行しますか? 2) 融合タスクはサンプリングタスクよりも優先度が低いため、サンプリングタスクによって割り込まれます。ACC の読み取りに必要な時間をテストしたところ、約 237uS でした。融合タスクがサンプリングタスクによって中断された場合、systick はさらに長くなるのでしょうか? 3) 私のプロジェクトでは MQX を使用していません。データ サンプリング、融合、MAGCal に PIT0/1/2 を使用しています。PIT0 の優先度は PIT1/2 よりも高くなります。PIT1 の優先度は PIT2 よりも高くなります。 9 軸融合機能を呼び出すと、約 1.6 ミリ秒かかりますか?なぜそんなに大きな違いが出るのでしょうか?   ありがとうございます   クリスティ センサ・フュージョン Re: Questions about library <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> それでいいでしょう!謎が解明されてよかったです。 Mike Re: Questions about library <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、Mikeさん 理由が分かりました。最適化を行うには、-O0 ではなく -O3 を使用する必要があります。今ではデモ プロジェクトとほぼ同じです... ありがとうございます クリスティ Re: Questions about library <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、Mikeさん 1) 私の間違いです。K-ticks では測定時間は妥当です。 2) あなたのデモ プロジェクトと自分のプロジェクトの間のタイミングを測定します。 -----私のプロジェクトでのサンプリング時間は約 1183uS===7100/60MHz です。 -----私のプロジェクトでの9軸データ融合==1600uS==95700/60MHz、あなたのデモプロジェクトでは==442uS -----私のプロジェクトでの6軸GBデータ融合==317uS==19000/60MHz、あなたのデモプロジェクトでは==94uS -----私のプロジェクトでの9軸GYデータ融合===96uS==5750/60MHz、あなたのデモプロジェクトでは==25uS 両方のプロジェクトのすべての機能は正常に動作しています。データ融合の結果にパフォーマンスの違いがあると思いますか? 3) KDS 3.0.0を使用していますKSDK 1.2.0 を使用して独自のプロジェクトを開発しました。両方のプロジェクトは同じデモ ボード上で実行されています。私のプロジェクトでは、コアに 120 MHz、BUS クロックに 60 MHz を使用しています。PIT0/1/2には60MHzを使用しています。時間を測定するために PIT0 ティックを使用しています。私の測定時間はデータ融合機能のためだけです。 2 つのプロジェクト間の CPU フローティング設定または数学ライブラリの違いに関連している可能性がありますか? ありがとうございます クリスティ Re: Questions about library <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> クリスティ、 順番に: 数桁ほど間違っています。表示は K ティック単位で行われます。SO 53,000/120,000,000 = 0.44 ミリ秒です。はい、これは融合を 1 回実行する時間です。 まあ、大したことはないですね。ご覧のとおり、融合タスクは思っていたよりも長いです。しかし概念的にはそうです。あなたが使用していると思われる K64F では、通常、連続する 2 つのサンプルの間には、中断することなく融合を実行するのに十分な時間があります。 あなたは優先順位を正しく理解しています。ここでは systick カウンターを使用して時間を測定していますか、それともスコープと GPIO 経由で時間を測定していますか?後者の場合、私の最初の質問は「MCU のクロックをどの周波数にプログラムしましたか?」です。前者の場合、どのくらいの数のシスティック数が得られますか?参考までに、データシートの数値には磁気キャリブレーションとセンサー サンプリングのタスクは含まれていません。 Mike
記事全体を表示
MMA8653FC 歩数計カウンター <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、みんな MMA8653FCを使用しています。歩数計のアルゴリズムを実装する方法がわかりません。 デモのソースコードはありませんか? よろしくお願いいたします。 ロイ 加速度センサ Re: MMA8653FC as pedometer counter <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、トーマス: 助かります。ありがとう! よろしくお願いいたします。 ロイ Re: MMA8653FC as pedometer counter <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ロイ、 MMA8653FC のローパス フィルタは、単純な 1 次デシメーション フィルタ、つまり移動平均フィルタの後にダウンサンプリングが続くものです。カットオフ周波数は選択されたODR(DR[2:0]ビット)とモード((S)MODS[1:0]ビット)によって異なります。 データシートの表 62 を見ると、すべての可能な ODR/(S)MODS の組み合わせに対する「OS 比」の列が見つかります。この表を使用すると、次の式に従って ADC 周波数を計算できます。 ADC周波数 = OS比 * ODR ローパス フィルタは、次の規則に従って 2 または 4 でデシメーションを実行し、カットオフ周波数はデシメーション レートによって異なります。 OS比 = 2: デシメーション2、カットオフ周波数 = 0.25 * ADC周波数 OS比 >= 4: デシメーション4、カットオフ周波数 = 0.114 * ADC周波数 よろしくお願いいたします。 トーマス Re: MMA8653FC as pedometer counter <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> トーマス、 1. アドバイスありがとうございます。私たちのプロジェクトでは、MMA8653の方が適しています。すでに8051互換のSoCチップを持っているので、それを実装する必要があります。 歩数計アルゴリズムを搭載。 2. MMA8653FC にはローパス フィルターがあります。カットオフ周波数は変更できますか? よろしくお願いいたします。 ロイ Re: MMA8653FC as pedometer counter <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ロイ、 現時点では、MMA8653FC を使用した歩数計アルゴリズムの実装は知りません。 MMA9553Lインテリジェント歩数計プラットフォームでは、ユーザーはいくつかの設定レジスタを用いて歩数計アプリケーションの動作をカスタマイズおよび制御し、複数のステータスレジスタを用いて測定・計算されたデータをレポートすることができます。このデバイスの詳細については、 MMA9553LSWRMをご覧ください。 よろしくお願いいたします。 トーマス
記事全体を表示
i want to fix direction not north Hi. i am user of K64F, sensor fusion.   after some test, i knew that the magnetometer has a slight error to point a north. ( about 8 degree (yaw))   so i want to fix a direction receiving from magnetometer , not real north (For example, I want to designate the power up direction is north.)   Question 1 :  it is right way to use magnetometer offset compensation? like FXOS8700CQ_Mag_Calibration function in  FXOS8700CQ - Bare metal example project       i tried to test a FXOS8700CQ_Mag_Calibration function when i push button, OnNMI works and FXOS8700CQ_Mag_Calibration function execute. but it didn't work. mag raw data was stopped.     Question 2 :  i is problem about timing or I have to redesign a code?   Thank you. SensorFusion Re: i want to fix direction not north Tim, I'll have to let Tomas comment on your project-specific questions, as I haven't looked at his code.  But with regard to Question 1:  Magnetic calibration works by mapping a 3D ellipsoid of magnetic measurements into a 3D sphere.  Freescale's routines do this by performing something called a total least squares fit.  This attempts to minimize radial error in the mapping.  But at the end of the day, it can leave uncorrected some amount of pure rotation in the magnetic distortion.  That's why you still see some error even after correction.  The error results from fundamental assumptions in the mag cal routines, and there is nothing you can do in those routines to account for it.  The fix is to simply apply a fixed, final 3D rotation to the computed device orientation to account for the error. Mike
記事全体を表示
S32K358EVB-Q289: 点滅LEDの例が動作しない (MATLAB R2022b / MBDT 1.6.0) こんにちは、 MATLAB/Simulink を使用してS32K358EVB-Q289で簡単な GPIO (LED オン/オフ) テストを実行しようとしていますが、NXP の「点滅 LED」の例が私のボードでは機能しません。 環境 MATLAB: R2022b ボード: S32K3X8EVB-Q289HWUM (S32K358EVB-Q289) サポートパッケージ/ツールボックス: SW32_MBDT_S32K3_1.6.0_D2501.mltbx (ライセンス1.6.0 ) 問題 NXP が提供する GPIO LED 点滅の例を勉強したいと思います。ただし、MATLAB/Simulink ではS32K358-Q289専用のターゲット/例は提供されていません。 手順/症状: Simulink で NXP が提供する点滅 LEDサンプル モデルを開きます。 Ctrl+E (構成パラメータ) を押して、ハードウェア設定を確認します。 S32K358EVB-Q289 はハードウェア ボード リストで使用できません。 回避策として、構成プロジェクト テンプレートをS32K358EVB-Q289 (スイッチ パッケージ) に変更しました (添付のスクリーンショットを参照)。 S32 Config Toolでは、次のように設定しました。 ピン: LED関連のピン設定 ペリフェラル:LED/GPIO関連の設定 プロジェクトは正常にビルドされますが、実際のボード上のLED は切り替わりません(点滅しません)。 ビルドは問題ありませんが、ハードウェア上で LED のオン/オフが機能しません。 質問 S32K358-Q289 (S32K358EVB-Q289)用の公式 MATLAB/Simulinkサンプル プロジェクトはありますか?はい、そうであれば、どこからダウンロード/アクセスCAN? 「点滅 LED」の例をS32K358EVB-Q289で動作させるにはどうすればよいですか?必要な設定 (ピン多重化、クロック/初期化、ボード初期化など) が不足している可能性がありますか? ライセンス/ツールボックスのバージョンについて: ライセンス/ダウンロードは1.6.0まで見つかります。しかし、 1.8.0のライセンス ダウンロード セクションが表示されません。1.8.0 はまだ利用できないのでしょうか、それとも別の場所で提供されるのでしょうか? 事前に感謝いたします。 Re: S32K358EVB-Q289: Blinking LED Example Not Working (MATLAB R2022b / MBDT 1.6.0) こんにちは、 @phillip_hong さん、 S32K3向けモデルベースデザインツールボックスにご興味をお持ちいただき、セットアップの詳細と手順をご説明いただきありがとうございます。ご質問について、いくつかご説明いたします。 1.残念ながら、現時点では、 S32K358-Q289ボードを特にターゲットとした公式の MATLAB/Simulink の例はありません。 S32K358-Q172 (異なるピン配置) のサポートが見つかります。 S32K358‑Q289 パッケージはサポートされているデバイス リストにまだ含まれていないため、専用の例やハードウェア ボードのエントリは表示されません。 2. S32K358‑Q172パッケージを使用し、ピンを手動で調整しようとすると、主に 172 ピンと 289 ピンのバリアント間のピン配置の違いにより、観察された動作が発生する可能性があります。一部のピンは揃って部分的な互換性が確保される場合もありますが、機能上の問題を引き起こす可能性のある不一致が必然的に発生します。 ピン構成が完了しているかどうかを確認するために、次のスレッドを参照することをお勧めします: MBDT1.5 DIOとPWMが動作しない さらに、将来のリリースではS32K358‑Q289のサポートを追加することも検討します。 3.最新リリースであるS32K3用MBDTバージョン1.8.0では、ツールボックスにライセンスファイルが不要になりました。ライセンスをアクティベートすることなく、バージョン1.8.0を直接ダウンロードして使用できます。 このため、1.8.0 ではライセンス ダウンロード セクションが表示されなくなり、ライセンスはインストール プロセスの一部ではなくなりました。 よろしくお願いいたします。 ドラゴス
記事全体を表示
imx8mp ispビデオノードが作成されていません こんにちは、 imx290センサモジュールを5.10.35ディストリビューションのimx8mplusに移植しています カメラ センサ移植ガイドに従い、それに応じて vvcam のドライバを変更しましたが、ボードを起動すると、ドライバのプローブ機能が成功してもビデオノードが作成されません。 以下は、モジュールの読み込みが開始されたときからのログ メッセージです。 [ 6.208014] imx290_vvcam: ツリー外のモジュールをロードするとカーネルが汚染されます。 [ 6.224028] func:imx290_probe に入る [ 6.318075] eimx290_vvcam 1-0042: 電源DOVDDが見つかりません。ダミーレギュレータを使用しています。 [ 6.339949] eimx290_vvcam 1-0042: 電源DVDDが見つかりません。ダミーレギュレータを使用しています。 [ 6.349485] eimx290_vvcam 1-0042: 電源AVDDが見つかりません。ダミーレギュレータを使用しています。 [ 6.382951] imx8_media_dev: モジュールはステージングディレクトリからのものであり、品質は不明です。警告が出されました。 [ 6.443331] viv_isp_init_moduleを入力 [ 6.448757] isp_hw_probeを入力 [ 6.453073] viv_dwe_init_module を入力してください [ 6.456791] vvcam ispドライバが登録されました [ 6.457080] dwe_hw_probe を入力してください [ 6.461686] imx-sdma 30e10000.dma-コントローラ:ファームウェアが見つかりました。 [ 6.466027] vvcam デワープドライバを調査 [ 6.470277] imx-sdma 30bd0000.dma-コントローラ:ファームウェアが見つかりました。 [ 6.479325] imx-sdma 30bd0000.dma-コントローラ:ファームウェア4.6をロードしました [ 6.839512] caamアルゴリズムが/proc/cryptoに登録されました [ 6.896947] caam 30900000.crypto:/proc/cryptoに登録されたcaam pkcアルゴリズム [ 6.896962] caam 30900000.crypto:rng-caamの登録 [ 6.898300] デバイス caam-keygen が登録されました [ 6.921808] ランダム: crng init 完了 [ 6.921819] ランダム: レート制限により 7 件の urandom 警告が無視されました [ 7.309550] EXT4-fs (mmcblk2p2): 順序付きデータ モードでマウントされたファイル システム。オプション: (null) [ 7.383698] RTL8211F ギガビットイーサネット 30be0000.ethernet-1:01:添付のPHYドライバ[RTL8211Fギガビットイーサネット](mii_bus:phy_addr=30be0000。) [ 7.475098] imx-dwmac 30bf0000.イーサネット eth1: PHY [stmmac-1:01] ドライバ [RTL8211F ギガビットイーサネット] (irq=POLL) [ 7.487079] imx-dwmac 30bf0000.イーサネット eth1: セーフティ機能のサポートが見つかりません [ 7.487093] imx-dwmac 30bf0000.イーサネット eth1: IEEE 1588-2008 アドバンスドタイムスタンプをサポート [ 7.487260] imx-dwmac 30bf0000.イーサネット eth1: 登録されたPTPクロック [ 7.487510] imx-dwmac 30bf0000.イーサネット eth1: phy/rgmii-id リンクモードの設定 [ 7.519467] 8021q: デバイス eth1 の HW フィルターに VLAN 0 を追加する [ 8.143730] 監査: タイプ=1006 監査(1616581522.276:2):pid=639 uid=0 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=1 res=1 [ 8.192190] カメラサブデバイスのメディアエンティティパッドを初期化した後の戻り値 = 0 [ 8.196776] カメラサブデバイスの非同期登録後の戻り値 = 0 [ 8.204482] func:imx290_retrieve_capture_properties を入力します [ 8.211560] imx290が検出されました。 lsmod: を実行すると、次のモジュールが作成されますが、vvcam_video モジュールはロードされません。 モジュールサイズ使用 vvcam_isp 65536 0 vvcam_dwe 28672 0 imx8_media_dev 20480 0 imx290_vvcam 147456 0 imx8_media_devモジュールを削除して再度modprobeを実行しようとしたところ imx290_vvcam 147456 1 モジュールは利用されるようになりましたが、まだビデオ ノードは作成されていません。 vvcam_videoをmodprobeするとロードされますが、再び利用されません。 vvcam_ビデオ 40960 0 この問題の解決にご協力ください。 よろしくお願いします、 ムケシュ・クマール Re: imx8mp isp video node not cteated 私たちは、imx415 カメラ センサ用の vvcam カメラ ドライバの開発に取り組んでいます。カメラセンサ用のドライバを開発できますか? Re: imx8mp isp video node not cteated こんにちは@quercuspau 、 ISPは現在正常に動作しています。もう問題はありません。その他の情報については、残念ながら開示できません。 よろしくお願いいたします。 K. Re: imx8mp isp video node not cteated こんにちは@khang_letruong 、 私が読んだ限りでは、カメラを ISP で動作させることができたようですが、撮影した写真はどれくらいきれいですか?また、ある投稿で、NXP カメラ支援会社と契約し、xml および drv ファイルを受け取った後でも、画像キャリブレーション パラメータにまだ問題があると読みました。解決できましたか?質問させてください。カメラのパラメータを調整するために、サポート会社にどれくらいの費用がかかりますか? BR Re: imx8mp isp video node not cteated こんにちは@quercuspau 、 正直に言うと、OV2775 と OS08A20 の組み合わせは、Basler カメラと比較すると 2 つの優れたオープンな例です。 カスタム センサーが接続する I2C バス/ノード (および gpio、アドレスなどのプロパティ)、mipi-csi2 ノード (およびレーン数などのプロパティ) に関して、デバイス ツリーを調整する必要がある場合があります。 BR、 K Re: imx8mp isp video node not cteated こんにちは@mukesh_kumar 、 おそらく、isp_media_server が使用する .drv を生成するための上位層 (isp-imx の ISI 層) と、必要なカーネル モジュールとセンサ自体のキャリブレーション構成をロードするためのスクリプトを参照しているのでしょう。ただし、これはこのチケットの最初の主題とは別の主題です。つまり、imx290_vvcam であるカーネル モジュールの正常なプローブに続いて /dev/videoX が作成されることです。 あなたが言及したリンクでの説明は、imx290 の .drv を含む上位層を実装するのに十分であると思います。 BR、 K. Re: imx8mp isp video node not cteated こんにちは@khang_letruong 返信ありがとうございます。 実行スクリプトを確認したところ、imx290のサポートを追加するには、.drvファイルが必要です。ファイルと.xmlファイル https://community.nxp.com/t5/i-MX-Processors/ISP-working-in-i-MX8M-Plus/mp/1307705のディスカッションを参考に、imx290 用のものを生成してみました。 しかし私が命令を出すと ./build-isp-all リリース フル 部分的にビルディングされており、.drv は生成されません必要なファイルが isi/drv/ フォルダーに追加されているにもかかわらず、imx290 のファイルがありません。 よろしくお願いいたします。 ムケシュ Re: imx8mp isp video node not cteated こんにちは@mukesh_kumarと@khang_letruong 私が正しく理解していれば、ov2775 モジュールを参照として使用し、それを imx290 ドライバ レジスタ構成に適合させたことになります。デバイス ツリー カメラ側では変更は予想されません。ov2775 の同じ xml と drv を imx290 に使用しても大丈夫ですか? よろしくお願いします。 Re: imx8mp isp video node not cteated こんにちは@quercuspau センサ移植ガイドによると、ISPをサポートするセンサはvvcamに存在するはずですが、vvcamにはimx290ドライバが存在しません。 よろしくお願いいたします ムケシュ Re: imx8mp isp video node not cteated 良い! Re: imx8mp isp video node not cteated こんにちは、 すでに利用可能なimx290用ドライバーをispで使用することはできませんか? imx8mpとISPで同じセンサを使用する予定です。しかし、まだ始めていない BR Re: imx8mp isp video node not cteated こんにちは@mukesh_kumar 、 まず、vvcamカーネルドライバ(imx290_vvcam.cから生成されたmx290_vvcam.ko)がたとえば、isp-imx フレームワーク内で run.sh スクリプトを実行すると、正しくロードされます。imx290 センサを追加するように変更することもできます。 次に、 dmesgに次の行があることを確認します (つまり、パイプライン I2C センサ -> mipi-csi2 --> isp が dts で適切にリンクされています)。 [ 7.884122] mx8-img-md: created link [imx290 1-001a] => [mxc-mipi-csi2.0] ov2775 などと同様に、プローブ関数内の以下のコード スニペットで、すべての V4L2 関数が正常に返されることを確認できます。 sd = &sensor->subdev; v4l2_i2c_subdev_init(sd, client, &ov2775_subdev_ops); sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; sd->entity.function = MEDIA_ENT_F_CAM_SENSOR; sensor->pads[OV2775_SENS_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE; retval = media_entity_pads_init(&sd->entity, OV2775_SENS_PADS_NUM, sensor->pads); sd->entity.ops = &ov2775_sd_media_ops; if (retval < 0) goto probe_err_power_down; retval = v4l2_async_register_subdev_sensor_common(sd); if (retval < 0) { dev_err(&client->dev,"%s--Async register failed, ret=%d\n", __func__,retval); goto probe_err_entity_cleanup; } Br、 K Re: imx8mp isp video node not cteated こんにちは@khang_letruong ご質問にご返信いただきありがとうございます。 私はisp_0ノードを使用しており、以下に示すようにデバイスツリーソースで同じものを有効にしています。 &カメラデバイス { ステータス = "正常"; }; &isi_0 { ステータス = "無効"; }; &isp_0 { ステータス = "正常"; }; 歪み補正 { ステータス = "正常"; }; 以前の返信で述べたように、Basler の場合にどのモジュール/サービスが vvcam_video モジュールを呼び出し、ov2775 および imx290 ではどのモジュール/サービスが呼び出されるのか理解できません。 よろしくお願いいたします。 ムケシュ Re: imx8mp isp video node not cteated こんにちは@mukesh_kumar 、 おそらく、dts で &isp_0 ノードまたは &isp_1 ノードを有効にすることを忘れた可能性があります。 よろしくお願いいたします K. Re: imx8mp isp video node not cteated こんにちは、 ov2775_mipi_v3.cを参考にしました。前述の imx290 ドライバ用の vvcam に存在するファイル。 起動中にimx8mp-evk-basler.dtbファイルをロードすると、 vvcam_isp 65536 1 vvcam_dwe 28672 1 vvcam_ビデオ 40960 1 imx8_media_dev 20480 0 basler_camera_driver_vvcam 20480 0 モジュール ----> vvcam_video、vvcam_isp、vvcam_dwe がロードされ、カメラが接続されていない場合でも利用されます。 起動時にimx8mp-evk-ov2775.dtbファイルをロードすると、 モジュールをロードしています ----> デバイスがなくても、カメラがコネクテッドでなくても vvcam_isp 65536 0 vvcam_dwe 28672 0 imx8_media_dev 20480 0 os08a20 32768 0 カメラがなくても、basler dtb の場合に vvcam_video をロードするトリガーがどれなのか理解できません。 私の場合、起動中に vvcam_video モジュールをロードできないので、これを理解するのを手伝ってください。 また、imx290 モジュールがロードされる前でも imx8_media_dev モジュールがロードされます。モジュール プローブが成功した後に imx8_media_dev をロードするにはどうすればよいでしょうか? /etc/ フォルダーの下にファイルモジュールを作成し、順序を imx290、imx8_media_dev のままにしてみましたが、機能しませんでした。 誰かこの2つの問題を解決するのを手伝ってくれませんか。 ありがとう、 ムケシュ・クマール。 Re: imx8mp isp video node not cteated こんにちは、 @SiddavatamVishnuさん、 その質問は私宛てのものでしょうか?はい、そうであれば、私の答えは「はい」です。IMX415 用のドライバを開発できます。 ありがとう、そしてよろしく。 カン Re: imx8mp isp video node not cteated ああ、返信ありがとう。 ISP チューニング プロセス、要件、環境の設定方法などに関する知識を共有していただけますか。 もう一度、返信をくれた@khang_letruongさん。 ヴィシュヌS
記事全体を表示
i.MX95 電源管理の概要 添付のスライドでは、次のトピックで i.MX95 の電源管理を紹介しています。 SoC Power Architecture BSPによる電源管理 電源のオン/オフと再起動 実装を一時停止 低電力実行 IMX95EVK
記事全体を表示
(88w8897) 能否禁用 2.4GHz 功能? 亲爱的恩智浦, 有没有可能完全关闭 2.4GHz? 我们希望在驱动程序层面禁用对 2.4GHz 的支持。 来自此链接: 禁用 88W8987 的 5GHz 频段中,我们可以看到在加载驱动程序时,可以使用dev_cap_mask启用对特定频段的支持。但是,没有任何文档说明 dev_cap_mask 的每一位应如何配置。 如果我们只想关闭 2.4GHz,dev_cap_mask 应设置为多少值? Re: (88w8897) is disabling 2.4GHz capabilities possible? 您好, You can refer tohttps://community.nxp.com/t5/Wi-Fi-Bluetooth-802-15-4/How-to-disable-the-2-4GHz-band-on-the-88W8897/td-p/2047926. 此致, 丹尼尔 Re: (88w8897) is disabling 2.4GHz capabilities possible? 你好, 我们希望使用 dev_cap_mask 禁用 2.4GHz 功能。 能否提供有关 dev_cap_mask 的更多信息? BR, Peter
記事全体を表示
i.MX 93 プロセッサ: セキュアブートの実 インストール方法 - 実践 (日本语ブログ) 前の記事はi.MX 93を例にセキュアブートの士组みについて解説を行いました。 (前章については前章を、次章をご参照ください。) 注: i.MX 93 プロセッサ: セキュアブートの署名と認定公式グループみを解説 (日本語ブログ) 今回は、実记にセキュアブートを実装するためのハンズオンフォームをご紹介します。 目次 i.MX 93 セキュアブートハンズオン 1. 実践的な環境 2. ホストPCのセットアップ(Linux) 3. コード署名ツールのダウンロード 4. SRKの生成 5. gitのセットアップ 6. i.MX Linux BSPのダウンロード 7.meta-imx-frdmのダウンロード 8.meta-nxp-security-reference-designのダウンロード 9. ビルド環境のセットアップ 10. イメージのビルド 11. 途中でbitbakeが再び開かれる場合 12. サインをやりたい 13. RAMディスクの署名 14. ホストPCと目的の接続 15. UUUのインストール(Linux) 16. UUUのインストール(Windows) 17. コンソール(Linux) 18. コンソール(Windows) 19. Linux 起動テスト(1) 19.1.シリアルダウンロードとLinuxの起動 19.2.SDまたはeMMCでLinux起動 20. SRKハッシュをヒューズに书き込み 21. Linux 起動テスト(2) 22. OEM が終了して移行 23. Linux 起動テスト(3) 24. 参考文献 i.MX 93 セキュアブートハンズオン¶ i.MX 93 プロセッサで Advanced High Assurance Boot (AHAB) を使用したセキュア ブートを実装するための手顺を紹介します。 1.実践的な環境 ホストPC: Yocto は、Linux PC および Windows PC に最適な環境 (WSL2、VMware、VirtualBox など) です。 OSはUbuntu 22.04です。 続への接続にはネットワークを使用する必要があります。 ストレージ容量は約100GBです。(FRDM-IMX93 core-image-minimalの場合) UUU、コンソールによる仕事はLinux PCでもWindows PCでも可能です。 UUUはLinux版、Windows版がそれぞれあります シリーズコンソールは、Linux PCではscreenやminicomなどを、Windows PCではTeraTermやPuTTYなどを使うのが一般です。 ターゲット: FRDM-IMX93 microSDまたはeMMCを使用します。 ホスト PC とターゲットには 2 本の USB ケーブルが接続されています。 i.MX Linux BSP 6.6.36-2.1.0(GitHub) meta-imx-frdm (ブランチ: lf-6.6.36-2.1.0、タグ: imx-frdm-4.0)(GitHub) meta-nxp-security-reference-design (ブランチ: scarthgap-6.6.23-2.0.0) (GitHub) 2.ホストPCのセットアップ(Linux) ¶ ホストPCのOSはUbuntu 22.04です。システムを最新ステータス更新します。 $ sudo apt-get -y update $ sudo apt-get -y upgrade Yoctoでイメージをビルドするために必要なパッケージをインストールします。 imx-dockerのDockerfileをリファレンスしています。 $ sudo apt-get -y install gawk wget git-core diffstat unzip texinfo \ gcc-multilib build-essential chrpath socat file cpio python3 \ python3-pip python3-pexpect xz-utils debianutils iputils-ping \ libsdl1.2-dev xterm tar locales net-tools rsync sudo vim curl zstd \ liblz4-tool libssl-dev bc lzop libgnutls28-dev efitools git-lfs \ bsdmainutils 今回の宿題は ~/imx93-secure-boot 上の、HOME宿題.ディレクトリの場所や名前は任意ですので、必要に応じて読んで代えてください。 $ mkdir ~/imx93-secure-boot $ cd ~/imx93-secure-boot ホスト PC の最終プログラムは、次のプログラムに基づいています。 imx93-secure-boot ├── IMX_CST_TOOL_NEW.tgz ├── cst-4.0.1 │ ├── ... │ ├── keys │ ├── crts │ └── linux64 │ └── bin ├── backup-cst └── yocto ├── ... ├── bin ├── build-imx93-11x11-lpddr4x-frdm │ ├── ... │ ├── conf │ └── tmp │ └── deploy │ └── images │ └── imx93-11x11-lpddr4x-frdm ├── downloads └── sources ├── ... ├── meta-imx ├── meta-imx-frdm └── meta-nxp-security-reference-design   3.コード署名ツールのダウンロード¶ コード署名ツール (以下、CST)、i.MX プロセッサの高保証ブート (HAB)、および高度な高保証ブート (AHAB) 機能は、i.MX プロセッサの署名および署名機能に基づいています。 NXP の Web ブラウザの最新バージョン。 コード署名ツール(最新バージョン) i.MX ソフトウェアおよび開発ツール ページの下の先にはコード署名ツールへのリンクがあります。 最新バージョンをダウンロードすると、 IMX_CST_TOOL_NEW.tgz というファイルなので、最上位のディレクトリに保存してから、展開します。 $ cd ~/imx93-secure-boot $ cp ~/Downloads/IMX_CST_TOOL_NEW.tgz . $ tar xf IMX_CST_TOOL_NEW.tgz 拡張すると (2025/08 最新の最新バージョンです) cst-4.0.1 というディレクトリに開発されます。バージョンが異なる場合は読み替えてください。 4. SRK生成¶ CSTはセキュアブートのためのSuper Root Key(以下SRK)を使用して生成を行います。詳細は以下をご参照ください。 UG10106、コード署名ツール ユーザーガイド、Rev. 4.0.1 — 2025年6月27日 cst-4.0.1/docs/UG10106_Rev4.0.1.pdfにあります。 ahab_pki_tree.shでSRKを生成します。オプションとして次の選択が行われます。 既存の CA キーは「するか/n で選択します」を使用しています。 使用する場合、CA キー名と CA 証明書名が使用されます。 SRK のキー タイプは rsa、rsa-pss、ecc から選択します。 rsa、rsa-pss、キーのビット长を2048、3072、4096から選択します。 eccの場合はキーが長く、p256、p384、p521とキーが選択されます。 ダイジェストアルゴリズムをsha256、sha384、sha512から選択します。 SRKの有効期間は年数によって決まります。 SRKをCA証明書は証明書によって生成され、証明書の証明書は証明書/nで選択します。 今回SRKで生成した設定は以下のとおりです。 既存の CA ではない キータイプ = ecc キーの長さ = p384 ダイジェストアルゴリズム = sha384 期間 = 10年 ユーザー証明書としての生成 ahab_pki_tree.shでインタラクティブにSRKの成を行う機会は、以下のような手顺になります。 $ cd ~/imx93-secure-boot $ cd cst-4.0.1/keys $ ./ahab_pki_tree.sh ... Do you want to use an existing CA key (y/n)?: n Do you want to use Elliptic Curve Cryptography (y/n)?: y Enter length for elliptic curve to be used for PKI tree: Possible values p256, p384, p521: p384 Enter the digest algorithm to use: sha384 Enter PKI tree duration (years): 10 Do you want the SRK certificates to have the CA flag set? (y/n)?: n ... $ cd - その際の指定には ahab_pki_tree.sh のパラメータが使用され、次のようなものが便利です。 $ cd ~/imx93-secure-boot $ cd cst-4.0.1/keys $ ./ahab_pki_tree.sh -existing-ca n -kt ecc -kl p384 -da sha384 -duration 10 -srk-ca n $ cd - 時間に、i.MX プロセッサーのヒューズに証明書のハッシュ値を、srktool で生成します。 $ cd cst-4.0.1/crts $ ../linux64/bin/srktool -a -d sha256 -s sha384 -t SRK_1_2_3_4_table.bin \ -e SRK_1_2_3_4_fuse.bin -f 1 \ -c SRK1_sha384_secp384r1_v3_usr_crt.pem,SRK2_sha384_secp384r1_v3_usr_crt.pem,SRK3_sha384_secp384r1_v3_usr_crt.pem,SRK4_sha384_secp384r1_v3_usr_crt.pem 警告 -cオプションで指定する4つのファイル名は、コンマのみOKで、スペースなどの文が入らないようご注意ください。 正常に終了し、SRK_1_2_3_4_table.bin と SRK_1_2_3_4_fuse.bin が生成されます。この2つのファイルが正しく生成されます確認します。 SRK_1_2_3_4_table.bin の sha256 ダイジェストを意味します。 $ openssl dgst -binary -sha256 SRK_1_2_3_4_table.bin | hexdump -e '/4 "0x"' -e '/4 "%08x""\n"' このダイジェストとSRK_1_2_3_4_fuse.binが同じ内容であることを確認します。 $ hexdump -e '/4 "0x"' -e '/4 "%08x""\n"' SRK_1_2_3_4_fuse.bin | tee srk_fuse.txt じであれば、SRK_1_2_3_4_table.bin と SRK_1_2_3_4_fuse.bin が正しく生成されていると卡えられます。 i.MX 93のヒューズに书き込み値は証明書のハッシュ夤、ちなみにsrk_fuse.txtに书かれた内容になります。 ございます。元のファイルをu-boot_cmd_temp.txtというファイル名で制作します。これは、i.MX 93のヒューズ、Bank 16、Word 0-7に书き込み(プログラミング)を行うためのコマンドのテンプレートになります。 fuse prog -y 16 0 fuse prog -y 16 1 fuse prog -y 16 2 fuse prog -y 16 3 fuse prog -y 16 4 fuse prog -y 16 5 fuse prog -y 16 6 fuse prog -y 16 7 u-boot_cmd_temp.txtにヒューズが书かれたsrk_fuse.txtを右側に有料にして、u-boot_cmd.txtというファイルが生成されます。 $ paste -d" " u-boot_cmd_temp.txt srk_fuse.txt | tee u-boot_cmd.txt 以下の形式のu-boot_cmd.txtが生成されます。本文が完成したら、本文を参照してください。 fuse prog -y 16 0 fuse prog -y 16 1 fuse prog -y 16 2 fuse prog -y 16 3 fuse prog -y 16 4 fuse prog -y 16 5 fuse prog -y 16 6 fuse prog -y 16 7 今回は、Yocto のセキュアブートが自動生成されます。そのプロセスでnxp-cst-signerというツールが実行されます。 nxp-cst-signerはCSTディレクトリの正下にある設定ファイル(csf_ahab.cfg)を参照するルールになっているため、 ~/imx93-secure-boot/cst-4.0.1/csf_ahab.cfg します。 $ cd ~/imx93-secure-boot $ cd cst-4.0.1 $ edit csf_ahab.cfg 以下の設定を行い、以下の説明を保存します。 #Header header_version=1.0 #Install SRK srktable_file=SRK_1_2_3_4_table.bin srk_source=SRK1_sha384_secp384r1_v3_usr_crt.pem srk_source_index=0 srk_source_set=OEM srk_revocations=0x0 #Install Certificate sgk_file= sgk_permissions= CSTの設定が完了しました。 このCSTディレクトリは、ヒューズを书きつけたi.MX 93デバイスのソフトウェアに署名する際になりますので、入手して安全な場所に長期間保管する必要があります。 $ cd ~/imx93-secure-boot $ mkdir backup-cst $ tar cf backup-cst/cst-4.0.1_$(date +"%Y%m%d-%H%M%S").tar.gz cst-4.0.1/   5. gitのセットアップ¶ Yoctoのビルドを行う记に、gitのユーザー名とメールアドレスを登录していないとエラーになる機会がありますので、していない機会は登録します。 $ git config --global user.name "Your Name" $ git config --global user.email "[email protected]"   6. i.MX Linux BSPのダウンロード¶ Yocto ビルドはのディレクトリを使用して「します」を作成します。 $ cd ~/imx93-secure-boot $ mkdir yocto $ cd yocto リポツールをダウンロードします。 $ mkdir bin $ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > bin/repo リポジトリに実行権を支払って、PATH を守ることで使用できるようになります。 $ chmod a+x bin/repo $ PATH=${PATH}:$(pwd)/bin repoでi.MX Linux BSP 6.6.36-2.1.0のレシピをダウンロードするための初期化を行います。 $ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-scarthgap -m imx-6.6.36-2.1.0.xml リポでi.MX Linux BSP 6.6.36-2.1.0のレシピをダウンロードします。 $ repo sync   7.meta -imx-frdmのダウンロード¶ FRDM-IMX93 は追加のメタレイヤーを使用します。 $ cd sources $ git clone https://github.com/nxp-imx-support/meta-imx-frdm -b imx-frdm-4.0 $ cd ..   8.meta -nxp-security-reference-designのダウンロード¶ Yoctoによるセキュアブートの自動ビルドを行うための追加メタレイヤーをダウンロードします。 このレイヤには i.MX Linux BSP 6.6.36-2.1.0 は「存在しませんが」を使用し、近似のscarthgap-6.6.23-2.0.0ブランチを「します」を使用します。 $ cd sources $ git clone https://github.com/nxp-imx-support/meta-nxp-security-reference-design -b scarthgap-6.6.23-2.0.0 $ cd .. このレイヤーをFRDM-IMX93に適用すると、署名を行った時にi.MX 93 EVKのdtbが使われてしまう無合があるため修正をしてください。 (このコントリビューションリファレンスにしています。 < https://github.com/nxp-imx-support/meta-nxp-security-reference-design/pull/2 > ) diff --git a/meta-secure-boot/recipes-secure-boot/imx-mkimage/imx-boot_%.bbappend b/meta-secure-boot/recipes-secure-boot/imx-mkimage/imx-boot_%.bbappend index 1bbc7b2..6a2f069 100644 --- a/meta-secure-boot/recipes-secure-boot/imx-mkimage/imx-boot_%.bbappend +++ b/meta-secure-boot/recipes-secure-boot/imx-mkimage/imx-boot_%.bbappend @@ -15,7 +15,7 @@ do_compile:append:ahab() { mv ${BOOT_STAGING}/flash.bin ${BOOT_STAGING}/flash.bak # Invoke mkimage again to Get container info - make SOC=${IMX_BOOT_SOC_TARGET} flash_kernel + make SOC=${IMX_BOOT_SOC_TARGET} ${MKIMAGE_EXTRA_ARGS} flash_kernel # Rename kernel image name and move back the imx-boot flash image name mv ${BOOT_STAGING}/flash.bin ${BOOT_STAGING}/flash_os.bin   9.ビルド環境のセットアップ¶ Yocto ビルドのプロジェクトのセットアップを行います。 FRDM-IMX93は以下のような場合に適しています。 $ MACHINE=imx93-11x11-lpddr4x-frdm DISTRO=fsl-imx-xwayland EULA=1 source sources/meta-imx-frdm/tools/imx-frdm-setup.sh -b build-imx93-11x11-lpddr4x-frdm コマンドが正常終了すると、build-imx93-11x11-lpddr4x-frdmディレクトリにモバイルしています。 のコマンドで、 meta-nxp-security-reference-design/meta-secure-boot をレイヤーとして追加します。これは自動にセキュアブートの署名を行うために必要です。 $ bitbake-layers add-layer ../sources/meta-nxp-security-reference-design/meta-secure-boot ここでプロジェクトの設定(local.conf).エディタでlocal.confを开きますに「を行います」を追加しました。 $ edit conf/local.conf local.conf の最後に最初の行を追加します。これにより、ramboot するための rootfs が追加で生成されます。 IMAGE_FSTYPES:append = " cpio.gz.u-boot" local.conf の最後に最初の行を追加します。 CST_PATH 値は CST_PATH によって設定されます。 これは、meta-nxp-security-reference-designがCSTディレクトリを参照するために必須です。 CST_PATH = local.conf の最後に最初の行を追加します。 これは、meta-nxp-security-reference-designがFRDM-IMX93のカーネルとdtbに署名を支払う時にi.MX 93 EVKのdtbを组み込んでしまうので質問を回避するためです。 MKIMAGE_EXTRA_ARGS:imx93-11x11-lpddr4x-frdm = "KERNEL_DTB=imx93-11x11-frdm.dtb" エディタを終了してlocal.confを保存します。   10.イメージのビルド¶ 今回はサイズを小さくして、かつ、セキュア ブートの署名を自動に行います core-image-minimal-secure-boot をbitbakeします。時間が経って処理が終わりました。 $ bitbake core-image-minimal-secure-boot -k イメージのビルドが正常に終了すると、次の2つのファイルが生成されます。 1つ目は署名paykibootloaderで、2つ目はlinuxカーネルとdtbが組み合わせられた署名paykiOSコンテナです。 $ stat tmp/deploy/images/imx93-11x11-lpddr4x-frdm/signed-imx-boot-imx93-11x11-lpddr4x-frdm-sd.bin-flash_singleboot $ stat tmp/deploy/images/imx93-11x11-lpddr4x-frdm/os_cntr_signed.bin Signed to pay kiBootloader と Signed to pay OS コンテナをグループみき投げイメージファイルも生成されています。 $ stat tmp/deploy/images/imx93-11x11-lpddr4x-frdm/core-image-minimal-secure-boot-imx93-11x11-lpddr4x-frdm.rootfs.wic.zst Linux でシリアル ダウンロードを開始すると、RAM ディスクを使用してシリアル ダウンロードが生成されます。このファイルはその後ですによって署名されています。 ( RAMディスクによる署名) $ stat tmp/deploy/images/imx93-11x11-lpddr4x-frdm/core-image-minimal-secure-boot-imx93-11x11-lpddr4x-frdm.rootfs.cpio.gz.u-boot   11. bitbakeから开开开到了したい機会¶ Bitbake は途中で中断され、シェルは時々再起動され、必要に応じて Yocto 環境値が設定されます。そのためには、次のスクリプトを使用します。 $ cd ~/imx93-secure-boot $ cd yocto $ source setup-environment build-imx93-11x11-lpddr4x-frdm   12.をやりたいの署名付き¶ SRKしたときなど、署名をやりたい機会は、 imx-boot 、 imx-boot-signature 、 linux-imx-signature とイメージ(この章 core-image-minimal-secure-boot ) の 4 つのパッケージをクリーンオールして、イメージを Zai ビルドします。 $ bitbake imx-boot imx-boot-signature linux-imx-signature core-image-minimal-secure-boot -c cleanall $ bitbake core-image-minimal-secure-boot -k   13. RAMディスクの署名¶ イメージのビルドが正常に終了したら、deploy ディレクトリに 2 つのツールが存在します。 mkimage_imx8 はコンテナを作るツールですによって起動されます。 cst_signerはコンテナに署名を行うツールです。 $ stat tmp/deploy/images/imx93-11x11-lpddr4x-frdm/imx-boot-tools/mkimage_imx8 $ stat tmp/deploy/images/imx93-11x11-lpddr4x-frdm/imx-boot-tools/cst_signer また、deployディレクトリにramdiskファイルも存在します。 $ stat tmp/deploy/images/imx93-11x11-lpddr4x-frdm/core-image-minimal-secure-boot-imx93-11x11-lpddr4x-frdm.rootfs.cpio.gz.u-boot mkimage_imx8とcst_signerを使って、ramdiskファイルに署名をします。 本来はmkimage_imx8でramdiskをコンテナにします。コマンドの形式は以下のとおりです。 $ INITRD= $ INITRD_ADDR= $ mkimage_imx8 -soc IMX9 -container -data ${INITRD} a55 ${INITRD_ADDR} -out 具体的なものは以下のとおりです。 $ tmp/deploy/images/imx93-11x11-lpddr4x-frdm/imx-boot-tools/mkimage_imx8 \ -soc IMX9 \ -container \ -data tmp/deploy/images/imx93-11x11-lpddr4x-frdm/core-image-minimal-secure-boot-imx93-11x11-lpddr4x-frdm.rootfs.cpio.gz.u-boot \ a55 \ 0x83800000 \ -out initrd_cntr.bin 時間にcst_signerでコンテナに署名します。コマンドの形式は以下のとおりです。 $ CST_PATH= cst_signer -d -i -c /csf_ahab.cfg 具体的なものは以下のとおりです。 $ CST_PATH=/home/nxp/imx93-secure-boot/cst-4.0.1 \ tmp/deploy/images/imx93-11x11-lpddr4x-frdm/imx-boot-tools/cst_signer \ -d \ -i initrd_cntr.bin \ -c /home/nxp/imx93-secure-boot/cst-4.0.1/csf_ahab.cfg 署名したramdiskはdeployディレクトリに手机お待ちしています。 $ mv signed-initrd_cntr.bin tmp/deploy/images/imx93-11x11-lpddr4x-frdm/ これでセキュアブートを行う環境がビルドできました。   14.ホストPCとターゲットの回線¶ ホスト PC とターゲットには 2 本の USB ケーブルが接続されています。 図 1 ホストPCの配線¶   15. UUUのインストール(Linux) ¶ Linux 版 UUU は次のサイトから uuu をダウンロードして、 /usr/local/bin などのPATH を通った場所に設定します。 UUU リリース (最新バージョン) < https://github.com/nxp-imx/mfgtools/releases/latest > 次のコマンドで、sudoなしでuuuを実行できるようにSETファイルをインストールします。 $ sudo sh -c "uuu -udev > /etc/udev/rules.d/70-uuu.rules" $ sudo udevadm control --reload ホストPCとFRDM-IMX93のUSB1ポートをUSB接続して、FRDM-IMX93をシリアルダウンロードモードに設定して電源をONにすると、 以下はFRDM-IMX93の情報の確認です。 $ uuu -lsusb uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.5.201-11-gf2a4e3e Connected Known USB Devices Path Chip Pro Vid Pid BcdVersion Serial_no ==================================================================== 3:1224 MX93 SDPS: 0x1FC9 0x014E 0x0001 3A24F36BB35F4594   16. UUUのインストール(Windows) ¶ UUU の Windows バージョンは次の uuu.exe 構成されています。 UUU リリース (最新バージョン) < https://github.com/nxp-imx/mfgtools/releases/latest > ホストPCとFRDM-IMX93のUSB1ポートをUSB接続して、FRDM-IMX93をシリアルダウンロードモードに設定して電源をONにすると、 以下はFRDM-IMX93の情報の確認です。 > uuu -lsusb uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.5.201-11-gf2a4e3e Connected Known USB Devices Path Chip Pro Vid Pid BcdVersion Serial_no ==================================================================== 3:1224 MX93 SDPS: 0x1FC9 0x014E 0x0001 3A24F36BB35F4594   17.コンソール(Linux) ¶ ホスト PC でコンソールを开きます。たとえば、 minicom でFRDM-IMX93のシリアルポートを開く」は次の条件を満たします。 $ minicom -D/dev/ttyACM0   18.コンソール(Windows) ¶ Windows のシリアルコンソールのアプリケーションで、FRDM-IMX93 の場合は COM ポート USB-Enhanced-SERIAL-A CH342 を使います。 i.MX 93 EVK の 4 番目のバージョン、EVK の 4 番目のバージョン、および COM のバージョンの 3 番目のバージョン。   19. Linux 起動テスト(1) ¶ ブートローダーとLinuxを起動して、AHABのエラーを確認します。 BOOT_MODEによって方法が異なりますので、いずれかを選択してテストします。 シリアルダウンロードとLinuxの起動 SDまたはeMMCでLinux起動   19.1.シリアルダウンロードとLinuxの起動¶ シリアルダウンロードでブートローダーとLinuxのスタートアップテストを行います。 3番目の「つのファイル」は「します」を使用します。 キブートローダーファイルによる署名 signed-imx-boot-imx93-11x11-lpddr4x-frdm-sd.bin-flash_singleboot Linuxカーネル os_cntr_signed.bin きのramdiskファイルの署名付き signed-initrd_cntr.bin 3つのファイルが以下のパスに存在することを確認します。 $ cd ~/imx93-secure-boot $ cd yocto/build-imx93-11x11-lpddr4x-frdm/tmp/deploy/images/imx93-11x11-lpddr4x-frdm $ stat signed-imx-boot-imx93-11x11-lpddr4x-frdm-sd.bin-flash_singleboot $ stat os_cntr_signed.bin $ stat signed-initrd_cntr.bin $ cd - UUUで実行するスクリプトファイル sdp-ramboot-yocto-signed.uuu を成します。 $ cd ~/imx93-secure-boot $ edit sdp-ramboot-yocto-signed.uuu 以下の内容を記述して保存します。 uuu_version 1.2.39 SDPS: boot -f yocto/build-imx93-11x11-lpddr4x-frdm/tmp/deploy/images/imx93-11x11-lpddr4x-frdm/signed-imx-boot-imx93-11x11-lpddr4x-frdm-sd.bin-flash_singleboot FB: ucmd ahab_status FB: ucmd setenv ramargs 'setenv bootargs ${jh_clk} console=${console} root=/dev/ram rw' FB: ucmd setenv ramboot 'echo Booting from initramfs ...; run ramargs; booti ${loadaddr} ${initrd_addr} ${fdt_addr};' FB: ucmd setenv fastboot_buffer ${cntr_addr} FB: download -f yocto/build-imx93-11x11-lpddr4x-frdm/tmp/deploy/images/imx93-11x11-lpddr4x-frdm/os_cntr_signed.bin FB: ucmd auth_cntr ${cntr_addr} FB: ucmd ahab_status FB: ucmd setenv fastboot_buffer ${cntr_addr} FB: download -f yocto/build-imx93-11x11-lpddr4x-frdm/tmp/deploy/images/imx93-11x11-lpddr4x-frdm/signed-initrd_cntr.bin FB: ucmd auth_cntr ${cntr_addr} FB: ucmd ahab_status FB: acmd run ramboot FB: done UUUでスクリプトを実行します。 $ uuu -d -v sdp-ramboot-yocto-signed.uuu FRDM-IMX93をシリアルダウンロードモードにSETUPして電源をONにすると、ブートローダーからLinuxが起動します。 AHAB のエラーは、Linux が起動する直接フロントに実行しました ahab_status コマンドの結果で判断します。 Authenticate OS container at 0x98000000 ... Lifecycle: 0x00000008, OEM Open 0x0287fad6 IPC = MU APD (0x2) CMD = ELE_OEM_CNTN_AUTH_REQ (0x87) IND = ELE_BAD_KEY_HASH_FAILURE_IND (0xFA) STA = ELE_SUCCESS_IND (0xD6) 0x0287fad6 IPC = MU APD (0x2) CMD = ELE_OEM_CNTN_AUTH_REQ (0x87) IND = ELE_BAD_KEY_HASH_FAILURE_IND (0xFA) STA = ELE_SUCCESS_IND (0xD6) 0x0287fad6 IPC = MU APD (0x2) CMD = ELE_OEM_CNTN_AUTH_REQ (0x87) IND = ELE_BAD_KEY_HASH_FAILURE_IND (0xFA) STA = ELE_SUCCESS_IND (0xD6) 0x0287fad6 IPC = MU APD (0x2) CMD = ELE_OEM_CNTN_AUTH_REQ (0x87) IND = ELE_BAD_KEY_HASH_FAILURE_IND (0xFA) STA = ELE_SUCCESS_IND (0xD6) Detect USB boot. Will enter fastboot mode! Booting from initramfs ... ## Loading init Ramdisk from Legacy Image at 83800000 ... Image Name: core-image-minimal-secure-boot-i Created: 2011-04-05 23:00:00 UTC Image Type: AArch64 Linux RAMDisk Image (uncompressed) Data Size: 56894907 Bytes = 54.3 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at 83000000 Booting using the fdt blob at 0x83000000 Working FDT set to 83000000 Using Device Tree in place at 0000000083000000, end 000000008300eaef Working FDT set to 83000000 fail to find output device probe video device failed, ret -19 Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x412fd050] [ 0.000000] Linux version 6.6.36-lts-next-g20aa8fc92c79 (oe-user@oe-host) (aarch64-poky-linux-gcc (GCC) 13.3.0, GNU ld 4 [ 0.000000] KASLR disabled due to lack of seed [ 0.000000] Machine model: NXP i.MX93 11X11 FRDM board ... Linux が起動するまでに、u-boot-spl、u-boot、kernel+dtb、ramdisk の 4 回の認証が行われますが、まだ SRK Hash がヒューズに书かれていないステータスでは、4 回の認証エラー ELE_BAD_KEY_HASH_FAILURE_IND (0xFA) が発生したことがあります。 エラー ELE_NO_AUTHENTICATION_FAILURE_IND (0xEE) が出る場合は、「イメージに署名が無いので認証できなかった」という意味で、署名はきイメージのビルドが正しくできていない可能性があります。 Lifecycle: 0x00000008, OEM Open 0x0287eed6 IPC = MU APD (0x2) CMD = ELE_OEM_CNTN_AUTH_REQ (0x87) IND = ELE_NO_AUTHENTICATION_FAILURE_IND (0xEE) STA = ELE_SUCCESS_IND (0xD6) SRK ハッシュがヒューズに书かれて認定が正しく行われれば、AHAB のエラーがなくなり、次のように No Events Found! という意味になります。 Lifecycle: 0x00000008, OEM Open No Events Found!   19.2.SDまたはeMMCでLinux起動¶ FRDM-IMX93のBOOT_MODEスイッチをシリアルダウンロードモードに設定して電源をONにします。 SDブートの機会は书き込み可能なmicroSDカードをカードスロットに挿入してから、のコマンドでSDにイメージを书き込みます。 リスト 1 SD にき込み¶ $ cd ~/imx93-secure-boot $ cd yocto/build-imx93-11x11-lpddr4x-frdm/tmp/deploy/images/imx93-11x11-lpddr4x-frdm/ $ uuu -b sd_all signed-imx-boot-imx93-11x11-lpddr4x-frdm-sd.bin-flash_singleboot core-image-minimal-secure-boot-imx93-11x11-lpddr4x-frdm.rootfs.wic.zst $ cd - eMMC ブートの際は、次のコマンドで eMMC にイメージを书き込みます。 リスト 2 eMMC への組み込み¶ $ cd ~/imx93-secure-boot $ cd yocto/build-imx93-11x11-lpddr4x-frdm/tmp/deploy/images/imx93-11x11-lpddr4x-frdm/ $ uuu -b emmc_all signed-imx-boot-imx93-11x11-lpddr4x-frdm-sd.bin-flash_singleboot core-image-minimal-secure-boot-imx93-11x11-lpddr4x-frdm.rootfs.wic.zst $ cd - 本が読み終わり、FRDM-IMX93の電源がOFFになります。 FRDM-IMX93のBOOT_MODEスイッチを、SDブートモードまたはeMMCブートモードに設定して電源をONにします。 U-Bootの「起動」は「起動」を意味し、「起動」は「一時停止」を意味します。以下のコマンドを入力して、署名payKOSイメージ(kernel + dtb)を認証します。 リスト 3Signature payKIOS イメージの証明書¶ u-boot=> mmc dev ${mmcdev} u-boot=> mmc rescan u-boot=> run loadcntr u-boot=> run mmcargs u-boot=> run auth_os ahab_status コマンドを入力してAHABのエラーを確認します。 リスト 4 署名および認定されたエラー¶ u-boot=> ahab_status Lifecycle: 0x00000008, OEM Open 0x0287fad6 IPC = MU APD (0x2) CMD = ELE_OEM_CNTN_AUTH_REQ (0x87) IND = ELE_BAD_KEY_HASH_FAILURE_IND (0xFA) STA = ELE_SUCCESS_IND (0xD6) 0x0287fad6 IPC = MU APD (0x2) CMD = ELE_OEM_CNTN_AUTH_REQ (0x87) IND = ELE_BAD_KEY_HASH_FAILURE_IND (0xFA) STA = ELE_SUCCESS_IND (0xD6) 0x0287fad6 IPC = MU APD (0x2) CMD = ELE_OEM_CNTN_AUTH_REQ (0x87) IND = ELE_BAD_KEY_HASH_FAILURE_IND (0xFA) STA = ELE_SUCCESS_IND (0xD6) Linux するまでに、u-boot-spl、u-boot、kernel+dtb の 3 期の認証が行われますが、先に SRK ハッシュがヒューズに书かれていないステータスでは、3 回の認証エラー ELE_BAD_KEY_HASH_FAILURE_IND (0xFA) が発生したことがあります。 エラー ELE_NO_AUTHENTICATION_FAILURE_IND (0xEE) が出る場合は、「イメージに署名が無いので認証できなかった」という意味で、署名はきイメージのビルドが正しくできていない可能性があります。 リスト 5署名なしイメージの機会¶ Lifecycle: 0x00000008, OEM Open 0x0287eed6 IPC = MU APD (0x2) CMD = ELE_OEM_CNTN_AUTH_REQ (0x87) IND = ELE_NO_AUTHENTICATION_FAILURE_IND (0xEE) STA = ELE_SUCCESS_IND (0xD6) SRK ハッシュがヒューズに书かれて認定が正しく行われれば、AHAB のエラーがなくなり、次のように No Events Found! という意味になります。 リスト 6 AHABエラー無しの場合¶ Lifecycle: 0x00000008, OEM Open No Events Found! 最後に、次のコマンドを実行して、Linux のログインプロンプトまで開始することを確認します。 リスト7 Linuxの起動¶ u-boot=> run boot_os   20. SRKハッシュをヒューズに书き込み¶ i.MX 93のヒューズバンク16、Word 0-7の値が0x00000000であることを確認します。 u-boot=> fuse read 16 0 u-boot=> fuse read 16 1 u-boot=> fuse read 16 2 u-boot=> fuse read 16 3 u-boot=> fuse read 16 4 u-boot=> fuse read 16 5 u-boot=> fuse read 16 6 u-boot=> fuse read 16 7 SRKの制作 u-boot_cmd.txt が確認されました。 (ここでは実记の値ではなく ~ という面记をしています。) $ cd ~/imx93-secure-boot $ cat cst-4.0.1/crts/u-boot_cmd.txt fuse prog -y 16 0 fuse prog -y 16 1 fuse prog -y 16 2 fuse prog -y 16 3 fuse prog -y 16 4 fuse prog -y 16 5 fuse prog -y 16 6 fuse prog -y 16 7 u-boot_cmd.txt 通りに、u-bootのプロンプトからSRKハッシュをヒューズに书き込みます。 (ここでは実记の値ではなく ~ という面记をしています。) 警告 ヒューの书き込みは一度きりであり、元に戻すことはできません。しっかり確認して丁寧に作業をすることが大切です。 u-boot=> fuse prog -y 16 0 u-boot=> fuse prog -y 16 1 u-boot=> fuse prog -y 16 2 u-boot=> fuse prog -y 16 3 u-boot=> fuse prog -y 16 4 u-boot=> fuse prog -y 16 5 u-boot=> fuse prog -y 16 6 u-boot=> fuse prog -y 16 7   21. Linux 起動テスト(2) ¶ ブートローダーとLinuxを起動して、AHABのエラーを確認します。 Linux起動プログラム(1)と同様の方法です。 シリアルダウンロードとLinuxの起動 SDまたはeMMCでLinux起動 ahab_status ハッシュ hash はされる No Events Found! です。これは署名が支払います きイメージがすべて認証されたことを意味します。 Lifecycle: 0x00000008, OEM Open No Events Found!   22. OEM のクローズと移行¶ i.MX 93デバイスのライフサイクルがOEMクローズすることで、署名された支払いきイメージのみstartできるようになり、署名のいイメージや、間違った署名きイメージはstartできなくなります。 きイメージで開始して ahab_status コマンドでAHABエラーが無いことを確認しました。 u-boot=> ahab_status Lifecycle: 0x00000008, OEM Open No Events Found! ahab_close コマンドを実行すると、OEM Closedに再配置されます。 警告 OEM Closedへの移行は一度であり、OEM OpenのSTATEに戻すことはできません。しっかり確認して丁寧に作業をすることが大切です。 u-boot=> ahab_close Warning: Please ensure your sample is in NXP closed state, OEM SRK hash has been fused, and you are able to boot a signed image successfully without any SECO events reported. If not, your sample will be unrecoverable. Really perform this operation? y Change to OEM closed successfully u-boot=> リセットを行うと、からOEMクローズとなります。サイン入りきイメージであれば再起動します。 u-boot=> reset resetting ... U-Boot SPL 2024.04+gde16f4f1722+p0 (Sep 02 2024 - 10:44:35 +0000) SOC: 0xa1009300 ... ahab_status コマンドを実行すると、OEM Closedに再配置されていることがわかります。 u-boot=> ahab_status Lifecycle: 0x00000020, OEM closed No Events Found! u-boot=>   23. Linux 起動テスト(3) ¶ ブートローダーとLinuxを起動できることを確認します。 Linux起動プログラム(1)と同様の方法です。 シリアルダウンロードとLinuxの起動 SDまたはeMMCでLinux起動 Linux が正常に起動し、セキュア ブートも成功しました。   24.参考文献¶ i.MX 93 アプリケーションプロセッサリファレンスマニュアル i.MX 93 アプリケーションプロセッサ セキュリティリファレンスマニュアル、Rev. 5、2025-03-04 (Get はi.MX 93 サイトセキュアドキュメントのセキュリティリファレンスマニュアルのリンクからリクエストを信して、承認されましたとNXPからダウンロードURLのメールが来ます)。 UG10106、コード署名ツール ユーザーガイド、Rev. 4.0.1 — 2025年6月27日 (CSTのパッケージにあります。cst-4.0.1/docs/UG10106_Rev4.0.1.pdf) U-Boot AHAB文書 AN12312、AHAB 対応デバイスでのセキュアブート UG10195、i.MX FRDM ソフトウェア ユーザー ガイド UM12181、FRDM-IMX93ボード ユーザーマニュアル meta-imx-frdm README (imx-frdm-4.0) meta-nxp-security-reference-design/meta-secure-boot README (scarthgap-6.6.23-2.0.0) この情報は、NXP 製品で使用するための参考資料です。 正式な様は製品マニュアル・アプリケーションノートを指します。 ソフトウェアのバージョンなど、さまざまな条件や条件の違い、その時々の状況に応じた内容や動作の説明を記載しています。 使用目的に適合した機能試験証明書であり、使用目的に適合していることを証明します。 ========================= この投稿の 「 コメント 」欄は 投稿者によって書かれており、返信レターも投稿者によって書かれるようになりました 。 おロット番号を電話しますが、お質問い合わせの间には「 NXP への技術的な質問 - い合わせ方法( 日本語ブログ) 」をご参照ください 。 (弊社は NXP 社の代理店であり、 NXP社 のNXPディーラー であり、NXP社の取締役であり、質問の直接の担当者はNXP社です。 ) 前の記事はi.MX 93を例にセキュアブートの士组みについて解説を行いました。 (前章については前章を、次章をご参照ください。) 注: i.MX 93 プロセッサ: セキュアブートの署名と認定公式グループみを解説 (日本語ブログ) 今回は、実记にセキュアブートを実装するためのハンズオンフォームをご紹介します。 i.MX プロセッサ 安全 日本語ブログ
記事全体を表示
LED 代码示例不起作用 我在我的 s32k116 上遵循了这个示例: https://www.nxp.com/design/design-center/training/TIP-GET-TO-KNOW-THE-USER-FRIENDLY-MBDT-D0609 我完全按照视频中的方法让 LED 正常工作。我的代码也在构建。但当我转动电位器时,LED 灯不会亮。我附上了一张板的照片以供参考。 请告诉我哪里出了问题 Re: LED code example does not work 你好 请注意,您提到的视频使用的是另一个评估套件(S32K144EVB),S32K116 的引脚可能不一样。您是否查看了原理图,了解电位器和 LED 所用的引脚? 作为建议,尝试使用FreeMASTER工具来可视化板上的数据。您必须添加数据存储记忆块,以保存 ADC 的数据和 LED 的状态。请将其设置为易失性(以便在 FreeMASTER 中查看)。 另一种方法是使用 S32 Design Studio 直接调试程序,在特定行上设置断点,查看从电位计读取的数值。 顺祝商祺! 索林-班奇拉 Re: LED code example does not work 我试过这样做,但是当我尝试在 freemaster 上启动会话时,它无法检测到板信息。我将区块状态 ("pot_adc") 设置为易失性,因此在符号表预览时显示为符号。下面是截图。我不确定董事会为什么没有回应
記事全体を表示
电源配置和 RESET_B 问题 - MCXN546VKLT 我们目前正在使用恩智浦 MCXN546VKLT 微控制器(HLQFP 封装)进行定制 PCB 设计,在初始电路板启动期间遇到了问题。如果您能就该设备的电源架构和 RESET 行为提供指导,我们将不胜感激。 1。VDD_SYS 电源理解 我们想澄清 VDD_SYS 功率域在内部是如何工作的,以及它如何为生成 VDD_CORE(约 1.0 V)做出贡献。具体而言,我们要求确认: VDD_SYS、VDD、VDD_Px、VDD_ANA 和 VDD_CORE 的正确外部电源配置 VDD_CORE 应采用外部供电还是仅去耦 MCXN546VKLT 的推荐上电顺序。 2。加电期间的 RESET_B 引脚问题 我们还遇到了一个与 RESET_B 引脚相关的问题: 在电路板启动期间,RESET_B 保持低电平因此,MCU 似乎无法开始执行。 我们想了解:上电复位期间 RESET_B 的内部行为,不当的 VDD_SYS 还是 VDD_CORE 升压都会使 RESET_B 保持在低水平 我们恳请索取任何特定于 MCXN546VKLT 的参考原理图、应用笔记或电源/RESET 配置指南,以帮助我们解决这些问题。 非常感谢你们的支持。我们期待您的指导,成功组建我们的董事会。 B 向您致意、 Manish Agarwal MCX N Re: Power Supply Configuration and RESET_B Issue – MCXN546VKLT 你好@ma0208 有关 MCXN546VKLT 微控制器的硬件设计,请参阅 .NET Framework 3.0: https://www.nxp.com/webapp/Download?colCode=UG10343&isHTMLorPDF=HTML 尽管本用户指南是针对 MCXN236 编写的,但它同样适用于 MCXN546VKLT。   有关开机顺序,请参阅 MCXN546 数据手册: 阅读完这些文件后,如果您仍有任何疑问,请随时与我联系。 谢谢! BR 爱丽丝 Re: Power Supply Configuration and RESET_B Issue – MCXN546VKLT 你好@ma0208 请分享您的原理图,我帮您检查问题。 谢谢! BR 爱丽丝 Re: Power Supply Configuration and RESET_B Issue – MCXN546VKLT 亲爱的爱丽丝 PFA 原理图。 谢谢! 马尼什 Re: Power Supply Configuration and RESET_B Issue – MCXN546VKLT 亲爱的爱丽丝 感谢你提供的信息。 我们已经按照共享的硬件设计指南检查了电源设计,没问题,我们使用的配置是 低压差线性稳压器(LDO) 模式。开启我的自定义板后,RESET_B 引脚处于低电平并且没有变高。RESET电路与硬件设计指南中推荐的完全相同。可能的原因是什么?请尽早告诉我。 B 向您致意、 Manish Agarwal Re: Power Supply Configuration and RESET_B Issue – MCXN546VKLT 你好@ma0208 我看了你的电路图。 请浮动 DCDC_LX 引脚。 注意以下几点:要禁用 DCDC,DCDC_LX 必须保持浮空,VDD_DCDC 引脚必须通电。 您的软件还必须禁用 DCDC。 同样,请参阅我上次提到的应用笔记,并相应地查看您的示意图。   谢谢!   BR 爱丽丝 Re: Power Supply Configuration and RESET_B Issue – MCXN546VKLT 亲爱的爱丽丝 现在可以工作了,VBAT 由于干焊而无法供电。 感谢大家的支持。 B 向您致意、 马尼什
記事全体を表示
IMX8MP DDR4 カスタム ボード :: 緊急モードです。 こんにちは、 i.MX8M Plus DDR4カスタムボードを使用しています。Image.gzを読み込んでいます。DTBおよびrootfs (cpio.gz)SD カードから DDR にコピーし、カーネルとルート ファイル システムを DDR から起動します。 ルート ファイルシステムをロードした後、次のメッセージが表示されます。 緊急モードです。ログイン後、「journalctl -xb」と入力して詳細を確認してください。 メンテナンスのためにEnterキーを押してください (または、Ctrl + D キーを押して続行します): [ 12.946854] ランダム: crng init が完了しました。 参考までに、完全なブート ログを添付しました。 以下は、SD カードから DDR にイメージをロードするために使用している U-Boot コマンドです。 =================== SD カードから DDR にロード ================== fatload mmc ${mmcdev} :1 ${loadaddr}イメージ.gz ファットロード mmc ${mmcdev} :1 ${fdt_addr} imx8mp-ddr4-evk.dtb ファットロード mmc ${mmcdev} :1 ${initrd_addr} cpio.gz setenv bootargs コンソール= ${console} 、 ${baudrate} earlycon= ${earlycon} 、 ${baudrate} rdinit=/sbin/init ブーティ${loadaddr} ${initrd_addr} ${fdt_addr} ============================================================== 私の質問は次のとおりです: 次のような通常のルート ログイン プロンプトを取得するにはどうすればよいですか: root @imx 8mp-ddr4 -evk :~ 緊急モードに入るのを避けるために、ブート引数に必要な推奨変更はありますか? あらゆるご指導やご提案をいただければ幸いです。 よろしくお願いいたします。 バードワジ。 Re: IMX8MP DDR4 Custom board :: You are in emergency mode. こんにちは、 ログ全体を共有していただけますか? よろしくお願いいたします。 Re: IMX8MP DDR4 Custom board :: You are in emergency mode. こんにちは@JorgeCas 、 参考までに、以下のログ全体を添付します。 よろしくお願いします。
記事全体を表示
i.MX93 JTAG 调试 我想在 i.MX93 上使用 openocd 进行 JTAG 调试,但处理器似乎处于边界扫描模式(IDCODE 0x0892801d 而不是 0x5ba02477)。 要切换到 DEBUG 模式,我需要做什么? 是否有 openocd 配置文件? 洛塔尔-瓦斯曼 Re: i.MX93 JTAG debugging 你好@刘志明 你能给我发一个 FRDM i.MX93 开发板必要的 OpenOCD 文件吗?我想要板文件和 SoC 文件以及我想要的任何其他文件 FRDM-i.MX93 Re: i.MX93 JTAG debugging 你好,Zhiming_Liu、 能把它们也发给我吗? 此致, 克里斯蒂安 Re: i.MX93 JTAG debugging 您能与我分享 openocd 补丁吗? Re: i.MX93 JTAG debugging 你好 Zhiming_Liu、 能把它们也发给我吗? 此致, 罗伯托 Re: i.MX93 JTAG debugging 这个补丁公开过吗?有地方能搞到这本书吗? Re: i.MX93 JTAG debugging 你好,请把补丁也发给我。 在 imx93 产品页面上提供下载,或者向 openocd 项目发送拉取请求,不是更简单吗? Re: i.MX93 JTAG debugging 你好 Zhiming_Liu、 请分享 openocd 的补丁。 此致, Re: i.MX93 JTAG debugging 你好,Zhiming_Liu、 请把 openocd 的补丁也发给我。 非常感谢、 JS Re: i.MX93 JTAG debugging 你好@刘志明 您能把@torus1000的补丁也发给我吗? Re: i.MX93 JTAG debugging 你好,Zhiming_Liu、 请分享 openocd 的补丁。 此致, VR。 Re: i.MX93 JTAG debugging 我没有收到任何带有附件的电子邮件。只有本主题的通知邮件。 Re: i.MX93 JTAG debugging 你好@lw1 我已通过电子邮件发送了附件。 Re: i.MX93 JTAG debugging 什么附件? Re: i.MX93 JTAG debugging 你好@lw1 您需要修补 openocd 引用电子邮件中的附件
記事全体を表示
如何:使用 S32 调试探针在 ISP 应用程序项目上启动 S32 调试器 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 1)准备评估板硬件 您可以使用S32调试探针将代码下载到目标 使用 JTAG 连接器将 S32 调试探针连接到 S32V234 EVB2 通过 USB 电缆或以太网将 S32 调试探针连接到 PC(如果通过以太网连接,则还必须连接 USB 电源线) 通过以太网(通常通过 LAN)将 S32V234 EVB2 连接到 PC 将电源线连接到评估板并打开电源     2) 使用A53构建选项构建项目。 3) 项目现已构建,ELF 文件已准备好加载到 EVB 中执行。在启动调试会话之前,我们必须完成HOWTO:在 S32DS (S32V234) 中设置远程 Linux 连接。 启动A53调试 4)选择调试下拉菜单并点击 调试配置     5) 确保选择了“{project_name}_Remote_Linux”调试配置,并且选择了连接(参见步骤 3)(指向您的 EVB 的 IP 地址)。点击 调试     6)第一次连接到新的IP地址时(即创建新工作区后第一次调试),会收到警告信息,点击 是的 并继续。     可执行文件被复制到 Linux 文件系统并且 gdbserver 启动。   第一次尝试时您可能会收到错误消息,这是正常现象。只要再试一次它就会起作用。 7) 一旦 Linux GDB 在 A53 内核上启动,并在 main() 中到达初始断点,就几乎可以开始在 ISP 上进行调试了。单击“恢复” ,因为在我们连接 ISP 调试线程之前,A53 必须正在运行。 😎 返回调试配置菜单并找到 ISP 调试配置。您将在“S32 调试器”组中看到一个调试配置(在我们的示例中, isp_sonyimx224_csi_dcu_mipi_simple_IPUS0 ,如下所示)。这是我们将使用的调试配置,但是它需要一些设置。     9) 您应该注意到窗口顶部的错误消息,就在标题下方,以及调试器选项卡上的红色“X”。单击“调试器”选项卡以选择它。我们必须先设置调试探针连接才能继续。 有两个选项: 以太网 USB   如果通过以太网连接探测器,请参阅 S32 调试探测器附带的快速入门指南或 S32 调试探测器用户指南,了解如何连接以及确定主机名或 IP 地址的说明。     如果通过 USB 连接探头,则 COM 端口将出现在端口选择设置中。如果您连接了多个 S32 调试探测器,则需要确定哪个 COM 端口是正确的,否则,只会出现您的 S32 调试探测器的 COM 端口。   10) 对于我们的例子来说,这已经完成了,但是对于您的应用程序,可能需要为 ISP 引擎设置符号。转到“启动”选项卡并: a)选中“加载符号”复选框 b) 选择“使用文件”选项,单击工作区...并找到您想要调试的 ISP 引擎的目标文件(.opius)。   11)点击 申请 然后调试。ISP 核心调试启动可能需要一些时间。   12)等待ISP调试启动完成。您可能会注意到 A53 线程已终止。这是正常且预料之中的,因为相机输入无法暂停。启动完成后,调试窗口的上下文将切换到 ISP 调试线程。 13) 启用指令步进模式,然后单步执行一次以加载在步骤6中设置的目标文件。 14) ISP 调试现在正在运行,您可以逐步执行 ISP 引擎、查看寄存器、设置断点等。注意:ISP 仅支持一个硬件断点。
記事全体を表示
制作:***[makefile:53:EEEPROM_usage.elf]错误 1 我使用了 NXP 社区上发布的一个示例。 (例如:S32K144 EEEPROM使用) 本示例在S23DS 2018.R1版本中可以正常构建。 但是,在最新版本(S32DS_ARM_v2.2)中我遇到了该错误。 制作:***[makefile:53:EEEPROM_usage.elf]错误 1 该示例有最新版本吗? + 也请让我知道这个错误。 Ld 错误:部分 .eeepromLMA [000027a0,000027ef] 与 .code 部分重叠LMA EEEPROM_usage_test1 C/C++问题 回复:make:***[makefile:53: EEEPROM_usage.elf]错误 1 没有,我没有更改任何代码。 回复:make:***[makefile:53: EEEPROM_usage.elf]错误 1 Hi @Kang111  此错误表明您正在尝试覆盖部分代码为 的部分。您对代码做了任何更改吗? BR, VaneB
記事全体を表示