当前位置:  技术问答>linux和unix

高分问小白问题(关于处理器寻址)

    来源: 互联网  发布时间:2016-10-30

    本文导语:  本帖最后由 laojing123 于 2010-12-10 10:26:20 编辑 哎 ,都怪不好好学习! 对系统中寻址不太理解,举个例子:处理器通过北桥连到PCI总线,假设连上的PCI控制器基地址为PCI_BASE,然后通过该PCI总线上有一个USB控制器,我现...

本帖最后由 laojing123 于 2010-12-10 10:26:20 编辑
哎 ,都怪不好好学习!

对系统中寻址不太理解,举个例子:处理器通过北桥连到PCI总线,假设连上的PCI控制器基地址为PCI_BASE,然后通过该PCI总线上有一个USB控制器,我现在要访问USB控制器上的某个寄存器,比如寄存器为USB_BASE + OFF_SET,那么处理器是如何定位到该地址的呢?这个地址是不是最终要经过译码反映到处理器的地址线上?


还有,这些控制器的基地址在系统发生变化(比如我把它插到另一个PCI HUB上了)后,基地址也应该随之变化吧,那么怎么去得到他们的地址呢?(在UBOOT下,不是系统启动后)。



跪求大侠们能看懂我的意思。。。高分呢

|
先说简单的,假设处理器的总线地址配置成与物理地址重合,就是说PCI总线的地址与处理器地址一一对应并且没有任何偏移,这种情况下,处理器直接访问物理地址就可以访问总线地址,uboot先对各种桥进行初始化,然后进入PCI枚举阶段,经过扫描,发现设备,然后给那个设备配置了如下地址0xFC000000(其实是应该在数据结构里面),此时因为总线地址与物理地址相同,所以CPU可以int * usb_ctl_pci_base_addr = 0xFC000000;(同样,起始应该是一个数据结构给这个变量赋值,你懂的),当执行如下指令的时候,*usb_ctl_pci_base_addr = 0x11;的时候,处理器将访问发送到前端总线,桥芯片检测到相关地址,发现并非内存地址而是局部总线地址,则转发到下级PCI总线上,你的usb控制器设备发现总线上的地址就是自己的地址的时候,对该请求进行应答,响应相应的写操作。所以整个操作分为3部分:
1,处理器发起
2,桥片会对地址空间进行分类转发到不同控制器并进而在不同总线上发布事务消息
3,你的设备一直处于监听状态,当发现总线上的访问是针对自己的操作,就应答求并完成操作

事实上很多处理器总线地址和处理器地址(这里不再强调物理地址还是逻辑地址)并没直接的对应关系,处理器会配置桥芯片,完成地址的转换,完成映射,处理器直接操作映射出来的地址,完成对总线地址上数据的访问。

|
本帖最后由 wenxy1 于 2010-12-10 14:08:00 编辑
楼主,每个硬件设备的基地址不相同的。在u-boot里找找基地址定义即可。
在U-boot中访问IO寄存器,有相应的函数,例如:
read8(ptrReg, value); 读8位,
write8(ptrReg, value); 写8位,
等等。

|
一时半会儿说不清,如想去了解,可以去看PCI初始枚举的过程,看他是怎么进行映射的。
访问PCI设备的用配置地址的,配置地址由 总线号 + 设备号 + 功能号 + 寄存器号 决定的,当然HOSTPCI桥的总线号是0。
在设备都接好后,其实每个PCI的上的配置寄存器的地址都确定,就等你去获取。

|
内核中的PCI初始化时候,会操作PCI配置空间,映射地址信息

|
其实就是确定设备基址

这在硬件设计时就确定了,要看data sheet, or reference manual

|
IC人员在做芯片设计的时候,这些地址就已经定好了。



    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 谁参加过weblogic的证书考试,是否有经验可供参考?高分高分高高分
  • 哪里有JB6下载啊,高分相送,救命
  • 高分求救!我在uclinux上运行应用程序时出现内存分配错误,不知如何解决,解决者高分!!
  • 哪里去找中文的EJB文章?高分悬赏!
  • 有jsp的upload和download 代码么,高分相报!
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 高分寻求jsp代码(网上调查系统,新闻发布系统)就这点分了
  • 高分求购做饼图、线形图的源吗?
  • 关于linu下的中文输入.(高分:300)
  • 一个简单的问题,高分求助!!!
  • 高分求购jbulider6得注册码,企业版本,个人版本都要
  • Linux远程访问的问题,高分求教:)
  • 请问哪儿有Solaris8的光盘映像文件下载???高分相赠!!!
  • 高分求“Ration Rose”&"JBuilder6.0"&"VisualCafe"
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求购:linux和unix命令大全电子文档
  • 急救:关于BLOB数据类型---在线等待,高分相送!
  • 求UNIXWARE7.11的原版下载,高分相赠,在线等待!!!
  • 关于java?高分相送!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3