下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、linux内核启动解析(三) 1.2 _lookup_machine_type() 机器类型的查找代码如下:_lookup_machine_type:adr r3, 3bldmia r3, r4, r5, r6sub r3, r3, r4 get offset between virt&physadd r5, r5, r3 convert virt addresses toadd r6, r6, r3 physical address space1: ldr r3, r5, machinfo_type get machine typeteq r3, r1 matches loader
2、number?beq 2f foundadd r5, r5, sizeof_machine_desc next machine_desccmp r5, r6blo 1bmov r5, 0 unknown machine2: mov pc, lrendproc(_lookup_machine_type)我们可以看到,这和处理器类型查找函数很类似,在这里只举行容易的解说。.long _proc_info_begin.long _proc_info_end3: .long .long _arch_info_begin.long _arch_info_end_arch_info_begin和_arch
3、_info_end在arch/arm/kernel/vlinux.lds.s中定义:_arch_info_begin = .;*(..init)_arch_info_end = .;..init段我们可以找到在arch/arm/include/asm/mach/arch.h中有引用:define machine_start(_type,_name) static const struct machine_desc _mach_desc_type _used _attribute_(_section_("..init")
4、= .nr = mach_type_type, .name = _name,define machine_end ;我们可以在arch/arm/mach-*.c文件中找到一系列关于machine_start所定义的结构。1.3 _vet_atags()函数代码如下:_vet_atags:tst r2, 0x3 aligned?bne 1fldr r5, r2, 0 is first tag atag_core?subs r5, r5, atag_core_sizebne 1fldr r5, r2, 4ldr r6, =atag_corecmp r5, r6bne 1fmov pc, lr at
5、ag pointer is ok1: mov r2, 0mov pc, lrendproc(_vet_atags)atag是bootloader传递给linux内核的参数列表。这个参数列表是以tag的列表形式来表示的。这个列表起始位置的tag是atag_core,用来表示这是一个有效的tag列表。假如起始tag不是atag_core,就认为bootloader没有传递tag参数给内核。以下是tag值的定义和描述,以及tag结构的定义。tag name value size description atag_none 0x00000000 2 empty tag used to end list
6、 atag_core 0x54410001 5 (2 if empty) first tag used to start list atag_mem 0x54410002 4 describes a physical area of memory atag_videotext 0x54410003 5 describes a vga text display atag_ramdisk 0x54410004 5 describes how the ramdisk will be used in kernel atag_initrd2 0x54420005 4 describes where th
7、e compressed ramdisk image is placed in memory atag_serial 0x54410006 4 64 bit board serial number atag_revision 0x54410007 3 32 bit board revision number atag_videolfb 0x54410008 8 initial values for vesafb-type framebuffers atag_cmdline 0x54410009 2 + (length_of_cmdline + 3) / 4) command line to p
8、ass to kernelstruct tag_header _u32 size;_u32 tag;struct tag struct tag_header hdr;union struct tag_core core;struct tag_mem32 mem;struct tag_videotext videotext;struct tag_ramdisk ramdisk;struct tag_initrd initrd;struct tag_serialnr serialnr;struct tag_revision revision;struct tag_videolfb videolfb;struct tag_cmdl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年超声引导下置管引流操作规范
- 2026年微生物实验室管理制度与操作规程
- 2026年餐饮金黄色葡萄球菌肠毒素中毒预防培训
- 2025甘肃省武威市中考英语真题(原卷版)
- 2026年幼儿园角色游戏观察与指导
- 2026年药店价格标签管理与维护
- 2026年传染病防控科普课题申报
- 2026年医院行风建设培训基地建设与管理办法
- 2026年保险公司新人岗前培训全套课件
- 2026年道路运输车辆技术管理规定解读
- 2026年江苏苏锡常镇四市高三二模高考生物试卷(含答案详解)
- 2024全国高中数学联赛山东赛区预赛试卷(含解析)
- 2026年国企中层干部公开遴选笔试试卷(附答案)
- 2026年小学生安全知识竞赛试题库及答案
- 语文参考答案四川成都市2023级(2026)届高三年级下学期定时练习(成都三诊)(4.27-4.29)
- 2026年北京市东城区高三二模英语试卷(含答案)
- 重庆机场集团有限公司招聘考试试题及答案
- 武汉市2026届高三年级四月供题(武汉四调)语文+答案
- 2026年《碳达峰碳中和综合评价考核办法》培训课件
- 胖东来供应链管理
- 钢结构厂房重点难点,及解决措施
评论
0/150
提交评论