如何在 i.MX6Q 上检查和调试 Yocto 的引导加载程序?

How to examine and debug Yocto's bootloader on i.MX6Q?

我正在 IMX6Q 上使用 Linux Yocto 版本在不受信任的处理器模式下构建受信任的执行环境。当我在重置以加载 linux 内核后第一次切换到非安全模式时,在我跳转到内核 bootloader.It 之后,我被数据淹没并预取中止异常似乎也是,那些异常一旦打开 MMU 就会发生。

在不更改为非安全状态的情况下启动内核工作正常。

是否有可能,第一阶段页表的非安全副本的控制位是在清除 NS 位的情况下写入的,这会导致 MMU 拒绝对这些区域的任何访问?

我在哪里可以找到在 IMX6Q 的 Yocto-BSP 中设置页表的启动代码?

如何调试 Linux 引导加载程序?

是否可以简单地更改 BSP 构建目录中引导加载程序的源代码并重建映像?

提前致谢,

保罗

How can I debug the Linux Bootloader?

是的,你可以使用漂亮的 printf/puts...顺便说一句,如果你想在 uboot 的早期阶段使用 jtag 进行真正的调试,你可以参考至 this NXP forum post

Is it possible to simply change source code of the bootloader in the build-directory of the BSP and rebuild the image?

您可以在 workbuild/tmp/work/. 中轻松使用 u-boot 的 git 目录。目录

  1. 修改你需要的
  2. bitbake -f -c compile u-boot-imx
  3. 编译
  4. 使用 bitbake -f -c deploy u-boot-imx
  5. 部署

最后你的新u-boot会被放置在通常的位置workbuild/tmp/deploy/images/...