参考资料:
http://xenyinzen.wikidot.com/code-research:pmon:start-functions
https://wenku.baidu.com/view/013ba5f9700abb68a982fb3a.html?sxts=1535682681686&pn=1
因为项目需要在裸机阶段访问到512M以上的物理地址,根据参考手册需要设置TLB进行访问,所以对PMON中TLB初始化的代码段进行了一些探究和简单注释,以便后面需要的时候参考。
TLB的作用是将虚拟地址映射到物理地址,所以需要配置他们的对应关系。
##两个关键寄存器
EntryHi寄存器存放地址入口,也就是需要转换的虚拟地址;EntryLo寄存器存放出口地址,也就是虚拟地址映射到的物理地址。下面是这两个寄存器的具体描述。关于TLB的初始化就是根据这两个寄存器的描述进行配置。
##ls1c中TLB初始化代码注释
ls1c中是将虚拟地址的0xc0000000开始的1G空间映射到物理地址的0xc0000000中,页面大小设置为16M。
LEAF(CPU_TLBInit)
li a3, 0