Linux注册从userland读取arm i.mx257 - devmem无效

时间:2017-11-30 09:15:37

标签: c linux linux-kernel arm embedded-linux

我目前正在开发一个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的值。对于上面的所有地址,我得到信号总线错误。

1 个答案:

答案 0 :(得分:0)

好, 我找到了自己问题的答案。 必须将AIPS控制寄存器添加到设备中。他们正在保护我想读的寄存器。在我添加这些补丁后,它起作用了。

https://github.com/torvalds/linux/commit/24bb244e02a6bead5b854d842002df0d38ae7b7b

https://github.com/torvalds/linux/commit/c33576cbf86bedf9ad3812479c3b4f36d5fadba8#diff-64c444a874c565fd98cf1ab538c1e0cd