- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PCI设备初始化编程的过程
PCI设备初始化编程的过程这里以PowerPC上的PCI设备为例,介绍PCI设备初始化编程的过程,其他CPU的PCI基本框架是类似的. PowerPC的PCI控制器符合PCI2.2标准,以下使我解读的VxWorks系统PCI设备程序代码分析主要执行过程 1.初始化PCI设备 文件romInit.s中romInit()=======文件bootInit.c中romStart()========文件usrConfig.c中的usrInit()======文件syslib.c中的sysHwInit() syslib.c void sysHwInit (void){ //用于初始化系统硬件 //和网络,PCI有关的函数 #ifdef INCLUDE_EMAC_NETWORK //初始化媒介访问层MAL(控制EMAC和Buffer Descriptor BD间的数据传输) malReset(); #endif #ifdef INCLUDE_PCI pciInit(); //初始化PCI#endif #ifdef INCLUDE_NETWORKsysNetHwInit(); //初始化网络接口#endif } //该函数初始化PCI PCI的地址转换形式: CPU-PCI (master/initiator) 地址转换PCI-CPU (slave/target) 地址转换 void pciInit() { unsigned short temp_short; /** 初始化并 disable 所有的 PCI Master regions(三个), little endian,直接对寄存器R操作 */ sysPciOutLong(PMM0MA, PMM_UNUSED);sysPciOutLong(PMM1MA, PMM_UNUSED);sysPciOutLong(PMM2MA, PMM_UNUSED); /* 解释: PMM0MA:地址 0xEE400004, 控制PLB上的映射到PCI存储空间的range0大小和属性. 在PLB上共有三个ranges, PMM1MA代表区域rang1, PMM2MA代表区域range2. PMM_UNUSED: 0 range的定义 range: map PLB======PCI 64-bit PPBridge(PLB和PCI设备间的接口)responds as a target on the PLB bus in servral address ranges. These ranges allow a PLB Master to configure the PPBridge and to cause PPBridge to generate Mem I/O,interrupt acknowledge and special cycles to PCI bus. */ /** Initially disable PCI Target region 2 to start. Region 1 is hardwired* to always be active.*/ //PTM2MS:地址 0xEF400038,定义PCI存储空间的大小.这里清零 sysPciOutLong(PTM2MS, PTM_UNUSED); /** Drive PCI 重新置位. 用于热启动,置位必须保持1ms*/ //解释: 从PCI寄存器PCI_CFG_BRIDGE_OPT2中读出数值 其中 PPC405GP_PCI_BUSDEVFUNC = 0 PCI_CFG_BRIDGE_OPT2 = 0x60 temp_short = pciConfigIn(PPC405GP_PCI_BUSDEVFUNC, PCI_CFG_BRIDGE_OPT2, 2); //把读出的值放回寄存器PCI_CFG_BRIDGE_OPT2中 pciConfigOut(PPC405GP_PCI_BUSDEVFUNC, PCI_CFG_BRIDGE_OPT2,temp_short | 0x1000, 2); sysLocalDelay(1); /* 延时1ms kernel may not be up yet!! */ //再放一次 pciConfigOut(PPC405GP_PCI_BUSDEVFUNC, PCI_CFG_BRIDGE_OPT2, temp_short, 2); /** 设置PCI Master(PMM),这是从本地存储地址Local memory address到PCI空间的映射 * CPU-PCI,参见文件 See config.h中的定义,参考 BS
您可能关注的文档
最近下载
- 艾滋病防治知识讲座.pptx VIP
- T∕ZZB 2086-2021 塑料拖链标准规范.docx VIP
- 2025年文化教育职业技能考试-钢琴调律师考试近5年真题集锦(频考类试题)带答案.docx
- 高清版40篇短文搞定3500词.pdf VIP
- 分流职员申请表标准模板.docx VIP
- 人教版(2024年新教材)七年级上册英语Unit 2 We're Family 单元整体教学设计.docx VIP
- 急诊手术患者围术期肺保护管理策略专家共识解读PPT课件.pptx VIP
- 基于临床实践出血性疾病动态危急值专家共识2024版解读.pptx VIP
- 绘本《我家是动物园》.ppt VIP
- 广州数控GSK928TF 车床数控系统 使用手册 速印版2009-5-13.pdf
文档评论(0)