内核处理cmdline和atags流程

简介: BootLoader可以向Linux传递参数,编译内核时也可以配置boot options。 调试中使用的U-Boot bootargs如下: noinitrd root=/dev/mtdblock3 rw console=ttySAC0,115200 init=/linuxrc mem=64M 内核版本: 2.

BootLoader可以向Linux传递参数,编译内核时也可以配置boot options

调试中使用的U-Boot bootargs如下:

noinitrd root=/dev/mtdblock3 rw console=ttySAC0,115200 init=/linuxrc mem=64M

内核版本:

2.6.35.7

内核的处理参数的整体过程如下:

u-boot将配置参数地址通过寄存器传递给内核

内核(arch/arm/kernel/head-common.S 中的 __mmap_switched)将这个地址存入__atags_pointer(定义于

        &init_tags

        

        

 

        

 

        

        

        

 

        

                  

 

                                                      

                  

        

                   

 

        

         

         

         

        

                  

        

                  &init_tags      

 

        

                  &from&meminfo

 

        

                                 

                           

                  

                              

        

 

        

          

          

              

 

        

                

 

        

        

        

 

                      

 

        

        &meminfo

        

        

 

 

&command_line

     

                    

                    &unknown_bootoption

 

     

           

        

 

 

     

 

     

        

                                        

                  

                  

                           

                  

                           

                           

                           

                  

                           

        

 

        

        

                  

 

        

        &&

                  

 

        

                  

 

            

                  

                  

                  

                           

                                    

                                    

                           

                           

                                    

                  

                  

             

                  

                  

                  

                           

                                    

                                    

                           

                  

                  

        

        

 

    

相关文章
|
3月前
|
Ubuntu Linux
内核实验(六):使用misc框架,实现简单字符设备驱动
本文介绍了如何使用Linux的misc框架来实现一个简单的字符设备驱动程序,包括编写驱动源码、编译、部署以及在Qemu虚拟机中测试驱动程序,展示了如何动态分配次设备号并手动创建设备文件以进行测试。
47 0
内核实验(六):使用misc框架,实现简单字符设备驱动
|
6月前
|
存储 安全 Linux
Linux 内核启动流程与入口函数分析
Linux 内核启动流程与入口函数分析
221 0
|
6月前
|
关系型数据库 Linux 编译器
Linux内核学习(十):内核追踪必备技能--ftrace
Linux内核学习(十):内核追踪必备技能--ftrace
229 0
|
Linux 项目管理 开发者
Linux内核基础篇——printk调试
Linux内核基础篇——printk调试
|
Linux
内核是如何运行ko文件的--系统调用
内核是如何运行ko文件的--系统调用
347 0
|
Linux 数据安全/隐私保护