浅析开发板相关变量phys_io即EP93XX_APB_PHYS_BASE什么时候被引用
2010-12-04 17:27
253 查看
文件:arch/arm/kernel/head.S
// cpu执行入口
.section ".text.head", "ax"
ENTRY(stext)
msr cpsr_c, #PSR_F_BIT | PSR_I_BIT | SVC_MODE @ ensure svc mode
@ and irqs disabled
mrc p15, 0, r9, c0, c0 @ get processor id
bl __lookup_processor_type @ r5=procinfo r9=cpuid
movs r10, r5 @ invalid processor (r5=0)?
beq __error_p @ yes, error 'p'
bl __lookup_machine_type @ r5=machinfo
movs r8, r5 @ invalid machine (r5=0)?
beq __error_a @ yes, error 'a'
bl __vet_atags
bl __create_page_tables // 建立映射表
文件:arch/arm/kernel/asm-offsets.c
DEFINE(MACHINFO_PHYSIO, offsetof(struct machine_desc, phys_io));
文件:arch/arm/kernel/head.S
__create_page_tables:
#ifdef CONFIG_DEBUG_LL // 只有配置CONFIG_DEBUG_LL之后
......
ldr r3, [r8, #MACHINFO_PHYSIO] // 才会为EP93XX_APB_PHYS_BASE物理寄存器建立MMU映射[luther.gliethttp]
...... // 一般我们都不会去配置CONFIG_DEBUG_LL,而是在ep93xx_map_io中由我们自己建立io寄存器映射
#endif
MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board")
/* Maintainer: Toufeeq Hussain <toufeeq_hussain@infosys.com> */
.phys_io = EP93XX_APB_PHYS_BASE,[luther.gliethttp]
.io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc,
.boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100,
.map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq,
.timer = &ep93xx_timer,
.init_machine = edb9312_init_machine,[luther.gliethttp]
MACHINE_END
文章出处:http://blog.chinaunix.net/u1/38994/
// cpu执行入口
.section ".text.head", "ax"
ENTRY(stext)
msr cpsr_c, #PSR_F_BIT | PSR_I_BIT | SVC_MODE @ ensure svc mode
@ and irqs disabled
mrc p15, 0, r9, c0, c0 @ get processor id
bl __lookup_processor_type @ r5=procinfo r9=cpuid
movs r10, r5 @ invalid processor (r5=0)?
beq __error_p @ yes, error 'p'
bl __lookup_machine_type @ r5=machinfo
movs r8, r5 @ invalid machine (r5=0)?
beq __error_a @ yes, error 'a'
bl __vet_atags
bl __create_page_tables // 建立映射表
文件:arch/arm/kernel/asm-offsets.c
DEFINE(MACHINFO_PHYSIO, offsetof(struct machine_desc, phys_io));
文件:arch/arm/kernel/head.S
__create_page_tables:
#ifdef CONFIG_DEBUG_LL // 只有配置CONFIG_DEBUG_LL之后
......
ldr r3, [r8, #MACHINFO_PHYSIO] // 才会为EP93XX_APB_PHYS_BASE物理寄存器建立MMU映射[luther.gliethttp]
...... // 一般我们都不会去配置CONFIG_DEBUG_LL,而是在ep93xx_map_io中由我们自己建立io寄存器映射
#endif
MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board")
/* Maintainer: Toufeeq Hussain <toufeeq_hussain@infosys.com> */
.phys_io = EP93XX_APB_PHYS_BASE,[luther.gliethttp]
.io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc,
.boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100,
.map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq,
.timer = &ep93xx_timer,
.init_machine = edb9312_init_machine,[luther.gliethttp]
MACHINE_END
文章出处:http://blog.chinaunix.net/u1/38994/
相关文章推荐
- Lua 语言的常见的相关base 变量和base函数
- 返回一个临时变量的右值引用,那么临时对象什么时候释放?
- LabVIEW中局部变量、全局变量和引用及属性节点的相关
- 浅析Java IO相关知识点
- 一个引用相关问题,延长临时变量的生命周期
- 4 java final 变量 | 变量即是final 又是static | 引用类型与基本数据类型 | Exception相关
- 关于golang中IO相关的Buffer类浅析
- Java 引用变量的两种类型 【多态相关】
- (一〇三)引用变量及相关(万字长文)
- [cocos2dx]加载ccbi资源,以及引用ccb中cclayer相关成员变量的方式
- 面向对象程序的思考方式及对象变量的引用的相关内容
- 类的常成员变量和引用类型的成员的定义和初始化相关知识点
- 浅析PHP原理之变量分离/引用(Variables Separation)
- 浅析PHP原理之变量分离/引用(Variables Separation)
- <2012 10 06> FL2440开发板的U-boot-2010.09版本移植 ____ U-boot中常用参数设定及常用宏(u-boot环境变量、USB、内核引导)
- php中引用&的用法分析【变量引用,函数引用,对象引用】
- c 中变量、变量名、变量地址、指针、引用等含义
- 操作符重载:什么时候返回引用
- day 4 函数,变量的引用,找不到变量,函数
- php中引用&的真正理解-变量引用、函数引用、对象引用