uboot-step 3 设置外围基地址
为什么要设置外围基地址
处理器只是知道访问地址,但不知道这些地址处到底是内存还是外围设备,对于内存,如果曾经访问过某个地址,下次再需要读取这个地址的数据时,可能是直接从cache中读取了,而不是真正的去内存中读取,而对于外围设备,处理器如果按照内存的方式,短时间内也从cache中读取,在此期间如果端口的信号发生变化,那么从cache中读取的数据就是错误的,因此需要将外围基地址通知处理器
芯片手册上说明: 设置外围基地址的目的是重映射内存属性为非共享设备,这样将会强制访问外围端口和重写相应的页表
如何进行设置呢
设置外围基地址的寄存器在协处理器cp15中,可以从arm1176内核手册中查到,如下图:
实现方式
set_peri_port:
ldr r0, =0x70000000
orr r0, r0, #0x13 @设置外围端口大小为256M
mcr p15,0,r0,c15,c2,4
mov pc, lr
此去经年
zhaiyk@sina.cn
August 1, 2016