完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我正在尝试使用使用MCUXpresso IDE编译的.elf文件来更改在iMX8QM-MEK的M4内核之一上运行的固件。我已将 .elf 文件和 .bin 文件复制到引导 SD 中,并通过更改将 U-boot 配置为将 .bin 映像加载到 M4 内核:
=> print m4_0_image m4_0_image=hello_world_m40.bin我在 U-boot 和内核中都遇到了一些关于远程核心的特殊问题。首先,这个电源模式切换任务似乎在 U-boot 将其第一行打印到控制台之前运行,这可能表明 SFCW 中发生了一些事情。 在 U-boot 中,当我中断自动启动并运行启动脚本时,我得到以下内容: => print m4boot_0 m4boot_0=run loadm4image_0; dcache flush; bootaux ${loadaddr} 0 => print loadm4image_0 loadm4image_0=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${m4_0_image} => run m4boot_0 14800 bytes read in 10 ms (1.4 MiB/s) ## Auxiliary core is already up当我启动到内核并读取 remoteproc0 的状态时,我得到以下状态,不允许我将任何固件加载到内核或停止内核: root@imx8qmmek:~# cat /sys/class/remoteproc/remoteproc0/state attached root@imx8qmmek:~# echo stop > /sys/class/remoteproc/remoteproc0/state [ 84.896858] imx-rproc imx8qm-cm4-0: Failed to stop remote core [ 84.902759] remoteproc remoteproc0: can't stop rproc: -13 -sh: echo: write error: Permission denied 查看 dmesg 收益率: root@imx8qmmek:~# dmesg | grep rproc [ 3.022630] remoteproc remoteproc0: imx-rproc is available [ 3.031813] remoteproc remoteproc0: attaching to imx-rproc [ 3.043022] rproc-virtio rproc-virtio.1.auto: assigned reserved memory node vdevbuffer@90400000 [ 3.057679] rproc-virtio rproc-virtio.1.auto: registered virtio0 (type 7) [ 3.064485] rproc-virtio rproc-virtio.2.auto: assigned reserved memory node vdevbuffer@90400000 [ 3.085832] rproc-virtio rproc-virtio.2.auto: registered virtio1 (type 7) [ 3.092648] remoteproc remoteproc0: remote processor imx-rproc is now attached [ 3.101451] remoteproc remoteproc1: imx-rproc is available [ 3.107032] remoteproc remoteproc1: attaching to imx-rproc [ 3.113075] rproc-virtio rproc-virtio.3.auto: assigned reserved memory node vdevbuffer@90400000 [ 3.127700] rproc-virtio rproc-virtio.3.auto: registered virtio2 (type 7) [ 3.141984] rproc-virtio rproc-virtio.4.auto: assigned reserved memory node vdevbuffer@90400000 [ 3.163620] rproc-virtio rproc-virtio.4.auto: registered virtio3 (type 7) [ 3.177037] remoteproc remoteproc1: remote processor imx-rproc is now attached我不确定如何停止远程内核,以便我可以在 linux 内核中而不是通过 U-boot 交换固件,并且我找不到有关 remoteproc 附加状态的任何信息。 如果无法在 U-boot 中停止核心,而只能启动它,我如何防止在 U-boot 之前运行的任何进程启动核心,以便我可以在 U-boot 或内核中启动它? 我使用 Yocto poky 5.0.4 scarthgap 构建了我的可启动 .wic 文件。 --- U-Boot info --- U-Boot SPL 2024.04-lf_v2024.04 g6c4545203d1 p0 (2024-11-15 - 04:02:13 0000) 正常启动 尝试从 MMC2_2 启动 已选定主集 从 MMC/SD 0x7c800加载映像 U-Boot 2024.04-lf_v2024.04 g6c4545203d1 p0 (2024-11-15 - 04:02:13 0000) CPU:NXP i.MX8QM RevB A53,1200 MHz,26C 型号: NXP i.MX8QM MEK 板卡:iMX8QM MEK 启动:SD1 重置原因:POR 内存: 5.8 GiB TCPC:供应商 ID [0x1fc9]、产品 ID [0x5110]、地址 [I2C0 0x51] 核心:188 个设备,32 个 uclass,设备树:独立 MMC:FSL_SDHC:0,FSL_SDHC:1 从 MMC 加载环境...还行-视频链接 0it6263_i2c_reg_read,读取错误 3 无法从 it6263 修订版读取 ret 3 (1280 x 720) [0] dpu@56180000、视频 [1] LVDS-channel@0,显示器 [2] LVDS 转 HDMI bridge@4c,video_bridge In: 系列 输出:串行 Err:串行 buildinfo 中: - SCFW 83624b99、SECO-FW 7d5462e6、IMX-MKIMAGE 71b8c18a、ATF android - U-Boot 2024.04-lf_v2024.04 g6c4545203d1 p0 切换到分区 MMC1 是当前设备 闪存目标是 MMC:1 Net: eth0: ethernet@5b040000 [PRIME]无法获取 FEC1 的 PHY: addr 1 fastboot:正常 正常启动 按任意键停止自动引导:0 => bdinfo boot_params = 0x0000000000000000 DRAM bank = 0x0000000000000000 -> start = 0x0000000080200000 -> size = 0x0000000007e00000 DRAM bank = 0x0000000000000001 -> start = 0x0000000092000000 -> size = 0x000000006c000000 DRAM bank = 0x0000000000000002 -> start = 0x0000000880000000 -> size = 0x0000000100000000 flashstart = 0x0000000000000000 flashsize = 0x0000000000000000 flashoffset = 0x0000000000000000 baudrate = 115200 bps relocaddr = 0x0000000087627000 reloc off = 0x0000000007607000 Build = 64-bit current eth = ethernet@5b040000 ethaddr = 00:04:9f:06:5e:76 IP addr = fdt_blob = 0x0000000085215210 new_fdt = 0x0000000085215210 fdt_size = 0x0000000000011b20 Video = dpu@56180000 active FB base = 0x0000000087700000 FB size = 1280x720x32 lmb_dump_all: memory.cnt = 0x3 / max = 0x10 memory[0] [0x80200000-0x87ffffff], 0x07e00000 bytes flags: 0 memory[1] [0x92000000-0xfdffffff], 0x6c000000 bytes flags: 0 memory[2] [0x880000000-0x97fffffff], 0x100000000 bytes flags: 0 reserved.cnt = 0x2 / max = 0x10 reserved[0] [0x85210ba0-0x87ffffff], 0x02def460 bytes flags: 0 reserved[1] [0x90000000-0x91ffffff], 0x02000000 bytes flags: 4 devicetree = separate arch_number = 0x0000000000000000 TLB addr = 0x0000000087f50000 irq_sp = 0x0000000085215200 sp start = 0x0000000085215200 Early malloc usage: 28e0 / 8000 --- 内核信息 --- root@imx8qmmek:~# uname -a Linux imx8qmmek 6.6.52-lts-next-ge0f9e2afd4cf #1 SMP PREEMPT Tue Nov 19 23:01:49 UTC 2024 aarch64 GNU/Linux |
|
相关推荐
1个回答
|
|
|
要解决iMX8QM-MEK上M4核心固件无法加载的问题,请按照以下步骤进行排查和修正: 步骤1:验证U-Boot环境变量设置
步骤2:手动加载并启动M4固件在U-Boot命令行中手动执行:
步骤3:确保内存保留在Linux设备树中(如
步骤4:检查Remoteproc驱动状态在Linux启动后,查看内核日志:
步骤5:调整固件链接脚本和格式
步骤6:处理电源和时钟配置在U-Boot中,确保M4核心的电源域已启用: 或直接写入相关寄存器(参考手册确定正确的位)。 步骤7:参考官方资源和调试工具
步骤8:验证示例固件使用NXP提供的预编译M4示例固件(如 总结通过以上步骤,重点检查环境变量、内存保留、固件地址、设备树配置和电源管理。大多数情况下,问题源于内存冲突或配置错误。确保:
若仍存在问题,建议在U-Boot中逐步执行命令并监视输出,结合内核日志和硬件调试工具进一步诊断。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
2135个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
37376 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
6775 浏览 1 评论
7793 浏览 1 评论
7642 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
5071 浏览 0 评论
1556浏览 2评论
关于NINA-W132 Wi-Fi模块SPI通信遇到的疑问求解
1208浏览 2评论
如何在MPC PowerPC MCU上首次刷写后禁用BDM?
749浏览 1评论
将HFREFR和LFREFR寄存器值设置为错误的值来将故障注入CMU,但CMU_ISR值始终为零,为什么?
735浏览 1评论
将SPSDK for FRDM-MCX-W71 SDK与VS一起安装时出现hidapi构建错误怎么解决?
678浏览 1评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 02:52 , Processed in 0.808415 second(s), Total 44, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
638