ARM Linux (S3C6410架构…
来源:互联网 发布:家居设计软件有哪些 编辑:程序博客网 时间:2024/04/27 09:39
set_pte_ext()的作用是根据Linux给出的Linux版本页表项来填充Arm硬件版本的页表项。
对于s3c6410,set_pte_ext()函数由汇编宏armv6_set_pte_ext来实现,定义在proc-macros.S文件中。
进入函数时,参数分别为:
r0: pte的地址,这里的pte是二级页表Linux版本中对应的页表项。
r1: Linux版二级页表项的内容。
r2: 0。
[c]
.macro armv6_set_pte_ext pfx
str r1, [r0], #-2048 @ linux version
bic r3, r1, #0x000003fc
bic r3, r3, #PTE_TYPE_MASK
orr r3, r3, r2
orr r3, r3, #PTE_EXT_AP0 | 2
adr ip, \pfx\()_mt_table
and r2, r1, #L_PTE_MT_MASK
ldr r2, [ip, r2]
tst r1, #L_PTE_WRITE
tstne r1, #L_PTE_DIRTY
orreq r3, r3, #PTE_EXT_APX
tst r1, #L_PTE_USER
orrne r3, r3, #PTE_EXT_AP1
tstne r3, #PTE_EXT_APX
bicne r3, r3, #PTE_EXT_APX | PTE_EXT_AP0
tst r1, #L_PTE_EXEC
orreq r3, r3, #PTE_EXT_XN
orr r3, r3, r2
tst r1, #L_PTE_YOUNG
tstne r1, #L_PTE_PRESENT
moveq r3, #0
str r3, [r0]
mcr p15, 0, r0, c7, c10, 1 @ flush_pte
.endm
[/c]
- ARM Linux (S3C6410架构…
- ARM Linux (S3C6410架构…
- ARM Linux (S3C6410架构…
- ARM Linux (S3C6410架构…
- ARM Linux 3.x的设备树…
- ARM Linux 3.x的设备树…
- arm-linux-ranlib:command no…
- arm-linux-g++; comman…
- Arm linux 启动流程
- Arm linux 启动流程
- arm-linux-gcc 4.3.3 Illegal inst…
- arm-linux-gcc 4.3.3 Illegal inst…
- s3c6410 PCB 布线建议(S3C64…
- ARM1176JZF-S/S3C6410 内存地…
- Linux Kernel SMP …
- Linux Kernel SMP …
- Linux Kernel SMP …
- Linux Kernel SMP …
- ARM1176JZF-S/S3C6410 内存地…
- ARM1176JZF-S/S3C6410处理器的操作…
- ARM Linux系统中的用户栈与内核栈
- 数据摘要算法的测试效率(SHA、MD5和CRC32)
- POJ 2195 - Going Home 更新最小费用最大流模板..整合成结构体...
- ARM Linux (S3C6410架构…
- ARM Linux (S3C6410架构…
- jQuery一个元素绑定多个相同事件的解决
- ARM1176JZF-S/S3C6410处理器的异常…
- 简单工厂模式/Simple Factory
- 工厂方法模式/Factory Method
- 抽象工厂模式/Abstract Factory
- 单例模式/Singleton
- 建造模式/Builder