2410虚拟内存与实际内存的转换
creator
sz111@126.com
#ifdef CONFIG_CPU_S3C2400
#define PHYS_OFFSET UL(0x0C000000)
#else
#define PHYS_OFFSET UL(0x30000000)
#endif
/*
* Page offset: 3GB
*/
#ifndef PAGE_OFFSET
#define PAGE_OFFSET UL(0xc0000000)
#endif
#define __virt_to_phys(x) ((x) - PAGE_OFFSET + PHYS_OFFSET)
#define __phys_to_virt(x) ((x) - PHYS_OFFSET + PAGE_OFFSET)
内核中3G-4G空间映射的是实际的SDRAM。
而实际的SDRAM又是从0X30000000开始的。
所以虚拟内存和实际内存的转换是通过以下公式:
V:虚拟内存(范围>3G)
P:实际内存(范围>0x30000000)
P=V-PAGE_OFFSET+PHYS_OFFSET
V=P+PAGE_OFFSET-PHYS_OFFSET
阅读(2880) | 评论(0) | 转发(0) |