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

标签 linux bootloader yocto imx6

我在不受信任处理器模式下使用 Linux Yocto 版本在 IMX6Q 上构建受信任的执行环境。当我在重置以加载 linux 内核后第一次切换到非安全时,在我跳转到内核引导加载程序后,我被数据淹没并预取中止异常。看起来,这些异常一旦 MMU 发生已开启。

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

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

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

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

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

提前致谢

保罗

最佳答案

How can I debug the Linux Bootloader?

是的,你可以用漂亮的printf/puts ... 顺便说一句,如果你想真正调试 jtaguboot 的早期阶段可以引用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. bitbake -f -c deploy u-boot-imx 部署它

最后,您的新 u-boot 将放置在通常的 workbuild/tmp/deploy/images/...

关于linux - 如何在 i.MX6Q 上检查和调试 Yocto 的引导加载程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44064787/

相关文章:

assembly - NASM:%include 文件中操作码和操作数的组合无效,报告的行号超出末尾?

c - 运行固件需要引导加载程序吗?

linux - yocto在recipe文件中添加第三个系统服务导致其他无法启动

embedded-linux - 如何在构建时通过 Yocto 添加用户?

security - 利用 Yocto 图像的缓解/安全强化

linux - GNU find,使用 -exec 保持 {} 不变

mysql - 安装mysql时yum事务检查错误

android - 语法错误: Unterminated quoted string [Makefile]

c - 如何将 C 函数放入某个地址范围

用于查找总磁盘和硬盘驱动器编号的 linux 命令