小编she*_*zen的帖子

Poulsbo系统控制器中枢(US15W)中LPC总线的配置寄存器

我们有一个基于Atom Z510/Intel SCH US15W Q7卡(运行Debian Linux)的系统.我们需要从低引脚数总线上的设备传输数据块.据我所知,这个芯片组不提供DMA设备,这意味着处理器必须在软件循环中一次读取一个字节的数据.(设备驱动程序实际上是使用"rep insb"x86指令实现的,所以如果我理解正确的话,循环实际上是由CPU实现的.)

这远非最佳,但应该可以达到14Mb/s的传输速率.相反,我们几乎无法管理4Mb/s,总线上的事务间隔不超过2us,即使每次对从设备的读取都是在560ns内完成.我不相信公共汽车上的其他交通是罪魁祸首,但我仍在调查.

我的问题是:

有没有人知道SCH上是否有可能影响LPC总线时序的配置寄存器?

我在英特尔网站上的设备上找不到任何有用的信息,也没有在Linux内核代码中发现任何看起来像是在摆弄任何这样的寄存器的东西(但是当涉及到Linux内核的东西时我就是一个菜鸟.)

我不是x86专家,因此任何可能发挥作用的其他因素或任何其他与此设备相关的"战争故事"都会很好地了解.

编辑:我找到了数据表.我没有看到解释这种行为的任何内容,但我正在研究将我们的设备映射为固件设备的可能性,因为固件总线周期似乎没有遭受相同的延迟.

hardware embedded bus linux-device-driver embedded-linux

11
推荐指数
1
解决办法
883
查看次数