uboot-step 3 设置外围基地址

uboot-step 3 设置外围基地址

为什么要设置外围基地址

处理器只是知道访问地址,但不知道这些地址处到底是内存还是外围设备,对于内存,如果曾经访问过某个地址,下次再需要读取这个地址的数据时,可能是直接从cache中读取了,而不是真正的去内存中读取,而对于外围设备,处理器如果按照内存的方式,短时间内也从cache中读取,在此期间如果端口的信号发生变化,那么从cache中读取的数据就是错误的,因此需要将外围基地址通知处理器
芯片手册上说明: 设置外围基地址的目的是重映射内存属性为非共享设备,这样将会强制访问外围端口和重写相应的页表

如何进行设置呢

设置外围基地址的寄存器在协处理器cp15中,可以从arm1176内核手册中查到,如下图:


cp15.png

uboot-step 3 设置外围基地址_第1张图片
cp151.png
uboot-step 3 设置外围基地址_第2张图片
cp153.png

实现方式

cp15ex.png
set_peri_port:
ldr r0, =0x70000000
orr r0, r0, #0x13   @设置外围端口大小为256M
mcr p15,0,r0,c15,c2,4
mov pc, lr

此去经年
[email protected]
August 1, 2016

你可能感兴趣的:(uboot-step 3 设置外围基地址)