免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: epegasus
打印 上一主题 下一主题

还是不理解IOMMU、北桥、PCI的MMIO和ioremap [复制链接]

论坛徽章:
0
51 [报告]
发表于 2008-04-16 20:18 |只看该作者
10楼中的request_mem_region()输入参数对应的总线地址范围就是pdev的0
区间的总线地址范围。
request_mem_region()函数用这个总线地址范围初始化新建了的resource,把这个resource挂在了原来已经挂在资源树上的pdev的0区间对应的resource下面。这样做到底有什么用?只是为了知道pdev的0区间是不是已经挂在了资源树上了吗?如果是的话,似乎没有必要再挂上一个代表同样总线地址范围的resource上去。
不解

论坛徽章:
0
52 [报告]
发表于 2008-04-16 20:31 |只看该作者
原帖由 ahhhhwang 于 2008-4-16 20:02 发表
如果是单主总线的话,pci_root_buses链中的唯一一个总线的resource就只有ioport_resource和iomem_resource:
struct pci_bus * __devinit  pci_alloc_primary_bus(int bus)
{
        struct pci_bus *b;

        if (p ...

确实是这样的。
pcibios_allocate_resources时pci_dev的resource成员已经分配好了,它在什么地方分配的,我找了一下没找到。我想找到了这个应该就有答案了

论坛徽章:
0
53 [报告]
发表于 2009-03-26 15:00 |只看该作者
我一直惦记这LZ那篇论文,是否该开放给大家学习了.

关于IOMMU的实质LZ一语道破,但是其控制细节我仍然是不明白:
IOMMU的功能是自动执行的吗?既然关系到虚拟机,我想肯定是通过CPU配置的,那么在内核哪个版本里有相关的代码?

论坛徽章:
0
54 [报告]
发表于 2009-03-27 10:54 |只看该作者
原帖由 epegasus 于 2009-3-26 15:00 发表
我一直惦记这LZ那篇论文,是否该开放给大家学习了.

关于IOMMU的实质LZ一语道破,但是其控制细节我仍然是不明白:
IOMMU的功能是自动执行的吗?既然关系到虚拟机,我想肯定是通过CPU配置的,那么在内核哪个版本里有 ...

不好意思,论文写的很烂,但这些内容已经详细写到我打广告那本书里去了

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
55 [报告]
发表于 2009-03-27 11:00 |只看该作者

回复 #54 zx_wing 的帖子

可以拿来大家学习一下嘛

论坛徽章:
0
56 [报告]
发表于 2009-03-27 17:13 |只看该作者
原帖由 bluesky_jxc 于 2008-3-24 17:54 发表
2.北桥怎么区分bus和memory是通过TOM(top of memory),jinsong讲的时候你没有认真听哈,具体就是北桥划分的memory地址和MMIO的地址。(IO不用管的,指令都不一样,出去的信号也不一样。)



我认为TOM应该是正解。

为了解决MMIO在4G物理空间的洞(Hole)的问题, 新的INTEL硬件又有TOLM寄存器。 反正这都是MCH的内部的寄存器,对系统软件是透明的。

论坛徽章:
0
57 [报告]
发表于 2009-03-27 17:18 |只看该作者
原帖由 zx_wing 于 2008-3-24 18:10 发表

--------------------------------------------------------------------------------------
恩,我是说是北桥。但具体流程我忘了,我认为就是通过IOBASE和IOLIMIT来区分的。.


这个肯定是错的, IOBASE和IOLIMIT只对PCI是有意义的。而且系统有多个root complex怎么办?

今天看Intel的一个白皮书时,发现TOM TOLM的图解,觉得还是MCH靠TOM来区分地址的,

Intel® Chipset 4 GB System Memory Support White Paper

论坛徽章:
0
58 [报告]
发表于 2009-03-27 17:40 |只看该作者
原帖由 Solaris12 于 2009-3-27 17:13 发表


我认为TOM应该是正解。

为了解决MMIO在4G物理空间的洞(Hole)的问题, 新的INTEL硬件又有TOLM寄存器。 反正这都是MCH的内部的寄存器,对系统软件是透明的。



MCH寄存器不一定是对OS 透明的, 最典型的例如CONFIG_ADDRESS和CONFIG_DATA就不是。

论坛徽章:
0
59 [报告]
发表于 2009-03-27 18:16 |只看该作者
原帖由 albcamus 于 2009-3-27 17:40 发表



MCH寄存器不一定是对OS 透明的, 最典型的例如CONFIG_ADDRESS和CONFIG_DATA就不是。



你说的对,我查了一下随便一款MCH的spec, 这个TOM就在配置空间,



Top of Low Memory (TOM). This register contains the address that corresponds to bits 31 to
20 of the maximum system memory address that lies below 4 GB. Configuration software
should set this value to either the maximum amount of memory in the system or to the
minimum address allocated for PCI memory or the graphics aperture, whichever is smaller.


而且google了一下, 发现linux的MCH driver只对这个寄存器进行了读操作。


http://lkml.org/lkml/2008/12/3/481


这个寄存器可能对firmware更有意义吧,但也不能说是透明的,用词不当。

论坛徽章:
0
60 [报告]
发表于 2009-03-29 18:11 |只看该作者
发现我自己才是LZ,这精华却加在我头上了
zx_wing这不是变相推销嘛
不过书我已经订了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP