分享

powerpc memory和io访问原理

 zhu智 2016-03-10

第一部分、MPC85xx/MPC86xx处理器中的寄存器

MPC85xx/MPC86xx处理器中有两类寄存器:

1. PowerPCE500(MPC85xx)内核的内部寄存器,如MSR,HID寄存器等,使用mtspr,mfspr指令可以对这些寄存器进行读写。

PowerPC E600(MPC86xx) 内核的内部寄存器,如IBAT,DBAT寄存器等,使用mtspr,mfspr指令可以对这些寄存器进行读写

2.  MPC85XX/MPC86xx处理器的内部寄存器,这些寄存器采用存储器映射进行寻址,其地址空间大小为1MB,如LAWBAR0,LAWBAR1寄存器。用户可以使用stwlwz等存储器读写指令对这些存储器映射的寄存器进行访问。

关于 MPC85XX/MPC86xx处理器的内部寄存器Local AccessRegister(局部访问寄存器)Local Buscontroller Register(局部总线控制寄存器)

(1). LocalAccess Register用于定义MPC85xx的数据访问空间。

(2). LocalBus controller Register用于配置MPC85xx处理器的局部总线。处理器的局部总线可以与异步存储器如Nor flash进行连接,也可以连接SDRAM 。对于Enhance LocalBus Controller的设置主要由BR0-BR3,以及OR0-OR3决定

第二部分、Mmu初始化和io访问时处理器寄存器的应用


注意MMU模块中包含TLB即pte的cache。

MMU初始化

          1. E500 core MMU初始化重要的有2个,TLBLAW

刚开始reset时,MMU初始化好了,TLB entry0映射4kLAW分别对应nor flash外设。随着系统运行到sysLib.c文件,加载sysPhysMemDescsysStaticTlbDesc表。其实就是写MSRLAW寄存器。sysStaticTlbDesc数组用于配置TLB1的地址映射,sysPhysMemDesc用于配置TLB0的地址映射。参考E500 MMU架构研究及VxWorks下的优化方案

sysStaticTlbDesc要保证为vxworks启动和基本操作所需的各地址区域具有地址空间0的配置;sysPhysMemDesc描述了物理内存中的一个连续的块,可包含的映射空间有内存、Flash、ROM和IO设备。vxworks下默认配置中,地址空间1的全部系统内存在sysPhysMemDesc中。

        2. E600 core MMU初始化主要有 BAT/PTELAW

刚开始reset时,因为MMU有一些杂乱的初始值,所以必须关闭MMU,此时没有MMU的地址翻译,EA=RA。在以后系统打开MMU,但是系统MMU映射方式有两种PTEBAT。在sysLib.c文件,分别有sysPhysMemDescsysBatDesc表,即写TLBBAT寄存器。sysPhysMemDesc表写TLB寄存器,sysBatDescBAT寄存器为了能够使cpu可以访问外设地址空间。顺便提下在2440bsp中只有sysPhysMemDesc

在初始化时,上面的Desc数组修改的寄存器应该包含BAT、TLB、LAWBAR等底层寄存器,应该没有修改BR寄存器。

nor flash一般位于CS0,通过GPCM,系统复位已经做好了。

pci设备不需要片选信号,通过访问mpc85xx pci相应寄存器也可以控制。

IO访问

         1. E500 core 访问外设

首先系统先根据TLBEA(Effectiveaddress)转换为RA(Real Address),再通过Local Access Register(局部访问寄存器),根据EA选择合适的controller,最终把RA(RealAddress)放到地址总线上去。而通过Local Bus controllerRegister(局部总线控制寄存器)提供给外设控制信号。

         2. E600 core 访问外设

首先系统先根据BAT/PTE,EA转换为RA,再通过Local AccessRegister根据EA选择合适的controller,最终把RA(Real Address)放到地址总线上去。而通过Local Buscontroller Register(局部总线控制寄存器)提供给外设控制信号。


参考文献:

PowerPC小记 http://blog.163.com/symphony_sol/blog/static/30279623200992893636236/


PowerPC的MMU初始化 :http://blog./uid-24148050-id-2951898.html



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多