




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
U-Boot启动引导内核分析(三) 2011-03-23 09:20:51| 分类: 默认分类 | 标签: |字号大中小 订阅do_bootm_linux()函数位于lib_arm/Bootm.c文件中,主要流程分析如下:void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int argc, char *argv, bootm_headers_t *images) ulong initrd_start, initrd_end; ulong ep = 0; bd_t *bd = gd-bd; char *s; int machid = bd-bi_arch_number; void (*theKernel)(int zero, int arch, uint params); int ret;#ifdef CONFIG_CMDLINE_TAG char *commandline = getenv (bootargs);#endif /* find kernel entry point */ if (images-legacy_hdr_valid) ep = image_get_ep (&images-legacy_hdr_os_copy);#if defined(CONFIG_FIT) else if (images-fit_uname_os) ret = fit_image_get_entry (images-fit_hdr_os, images-fit_noffset_os, &ep); if (ret) puts (Cant get entry point property!n); goto error; #endif else puts (Could not find kernel entry point!n); goto error; theKernel = (void (*)(int, int, uint)ep; s = getenv (machid); if (s) machid = simple_strtoul (s, NULL, 16); printf (Using machid 0x%x from environmentn, machid); ret = boot_get_ramdisk (argc, argv, images, IH_ARCH_ARM, &initrd_start, &initrd_end); if (ret) goto error; show_boot_progress (15); debug (# Transferring control to Linux (at address %08lx) .n, (ulong) theKernel);#if defined (CONFIG_SETUP_MEMORY_TAGS) | defined (CONFIG_CMDLINE_TAG) | defined (CONFIG_INITRD_TAG) | defined (CONFIG_SERIAL_TAG) | defined (CONFIG_REVISION_TAG) | defined (CONFIG_LCD) | defined (CONFIG_VFD) /* 初始化TAG结构体开始 */ setup_start_tag (bd);#ifdef CONFIG_SERIAL_TAG setup_serial_tag (¶ms);#endif#ifdef CONFIG_REVISION_TAG setup_revision_tag (¶ms);#endif#ifdef CONFIG_SETUP_MEMORY_TAGS /* 设置RAM参数 */ setup_memory_tags (bd);#endif#ifdef CONFIG_CMDLINE_TAG setup_commandline_tag (bd, commandline);#endif#ifdef CONFIG_INITRD_TAG if (initrd_start & initrd_end) setup_initrd_tag (bd, initrd_start, initrd_end);#endif#if defined (CONFIG_VFD) | defined (CONFIG_LCD) setup_videolfb_tag (gd_t *) gd);#endif /* 初始化TAG结构体结束 */ setup_end_tag (bd);#endif /* we assume that the kernel is in place */ printf (nStarting kernel .nn);#ifdef CONFIG_USB_DEVICE extern void udc_disconnect (void); udc_disconnect (); #endif cleanup_before_linux (); /* 将控制权交给内核,让内核自解压启动 */ /* 传给KERNEL的参数:(struct tag *)bd-bi_boot_params */ /* 在boardatmelat91sam9g20ekAt91sam9g20ek.c文件中有如下定义: gd-bd-bi_boot_params = PHYS_SDRAM + 0x100;(PHYS_SDRAM = 0x20000000) */
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年思科进制转化题目及答案
- 2025成都市农作物种苗购销合同示范文本
- 新生儿护理学试题及答案
- 2025苗木交易服务合同
- 2025合同样本:股权转让协议全面转让范本
- 屋面落水口更换施工方案
- 2025年国际商务谈判技巧与跨文化沟通模拟题集
- 2025年上海房地产中介服务合同标准范本
- 2.1 细胞中的元素与化合物教学设计-2024-2025学年高一上学期生物人教版(2019)必修1
- 9 做事要专心教学设计-2025-2026学年小学心理健康浙教版二年级上册-浙教版
- Facebook广告操作流程和广告效果数据
- 从局部到整体:5G系统观-完整版
- 零基础预算培训课件
- 高中生物开学第一课【知识精研+能力提升】高一上学期生物人教版必修1
- (完整word)工程造价咨询公司管理制度
- 电子商务运营管理培训教材
- 可摘义齿修复工艺技术
- 医院麻醉科诊疗常规修订版本(2022年)
- 2023年兽医实验室考试:兽医实验室技术理论真题模拟汇编(共285题)
- 医院护理培训课件:《妊娠期急性胃肠炎护理查房》
- 食品欺诈和预防知识专题培训课件
评论
0/150
提交评论