我目前正在开发一个i.mx257平台,想要读取一些外设寄存器(iomux寄存器是特定的),看它是如何配置的,或者是否设置正确。
我也读过busybox和devmem2的devmem。尝试了两者并且都得到了错误。目前定制板正在从meta-fsl-arm yocto meta包运行linux内核版本4.6.0-rc7。该系统使用yocto构建。
root @ system /]#./tmp/devmem2 0x43fac190 / dev / mem打开了。
未处理的错误:非取消的外部中止(0x008)位于0xb6f3a190 pgd = c3334000 [b6f3a190] * pgd = 8285e831,* pte = 43fac103,* ppte = 43facaa2
内存映射到地址0xb6f3a000。
总线错误
该工具获得一个Signal Err。内核配置中未设置CONFIG_STRICT_DEVMEM选项。
我发现了另一篇帖子http://thread.gmane.org/gmane.linux.ports.arm.kernel/26878,但我找不到有关i-mx25这些寄存器的一些信息。
是否有其他内核安全功能或我遗漏的内容?
devmem或devmem2仅使用低于0x4000的值。对于上面的所有地址,我得到信号总线错误。
答案 0 :(得分:0)
好, 我找到了自己问题的答案。 必须将AIPS控制寄存器添加到设备中。他们正在保护我想读的寄存器。在我添加这些补丁后,它起作用了。
https://github.com/torvalds/linux/commit/24bb244e02a6bead5b854d842002df0d38ae7b7b