原创 .initcall##level##.init

//-----------------------kernel/init/main.c   static void __init do_initcall_level(int level) { extern const struct ker

原创 .init.setup 位置

在內核裏經常可以看到__init,__devinit這樣的語句,這都是在init.h中定義的宏,gcc在編譯時會將被修飾的內容放到這些宏所代表的section。 其典型的定義如下: #define __init        __sect

原创 dts加載流程

boot_linux_from_mmc        |-> dt_table_offset=((uint32_t)image_addr+page_size+kernel_actual_ramdisk_actual+second_actu

原创 cmdline值

[1380] cmdline: console=ttyHSL0,115200,n8androidboot.console=ttyHSL0 androidboot.hardware=qcom msm_rtb.filter=0x237ehci

原创 Android啓動流程 -- linux kernel

linux啓動   一、zImage是怎樣煉成的?     zImage是linux內核編譯之後產生的最終文件,它的生成過程比較複雜,這裏不談編譯過程,只聊聊編譯的最後階段:     1. arm-linux-gnu-ld用arc

原创 early_param流程

Linux內核源碼中多處會看到諸如__init,__initdata,__exitdata的關鍵字,  大部分這樣的關鍵字定義在include/linux/init.h頭文件中,它們都會在編譯連接階段被實現處理。  #define __i

原创 Device Tree起源

1.   ARM Device Tree起源 LinusTorvalds在2011年3月17日的ARM Linux郵件列表宣稱“this whole ARM thing is a f*cking pain inthe ass”,引發ARM

原创 MACHINE_START與MACHINE_END

在移植Linux時,有個結構體需要填寫,它以MACHINE_START開始並以MACHINE_END結束,如下mini2440開發板的移植爲示例   [cpp]  view plain copy MACHINE_START(MINI244

原创 Start_kernel中的參數

[    0.000000]@0 zll----early=0,str=rdinit= [    0.000000]@0 zll----early=0,str=init= [    0.000000]@0 zll----early=1,s

原创 (DT系列二)device tree的書寫規範

devicetree的書寫規範 下面從節點,屬性,reg,ranges,中斷控制器等幾個方面敘述devicetree的書寫規範。 1,dts的基本元素:節點 .dts(或者其include的.dtsi)基本元素爲結點和屬性。舉例說明

原创 msm_pinctrl.txt

MSM TLMM pinmuxcontroller   Qualcomm MSMintegrates a GPIO and Pin mux/config hardware, (TOP Level Mode Multiplexer in s

原创 Uart-log-ALL

[156940] fastboot: download:009ead28 [158410] fastboot: flash:boot [158410] boot is not yl image [158610] fastboot:

原创 Linux內核中的初始化initcall_t

基於Linux 2.6.32 include\asm-generic\Vmlinux.lds.h中有如下定義: 這等於是安排了名稱如.initcall<level>[s].init的一系列section的順序,level越小,越靠前。 符

原创 cmdline傳遞

uboot向kernel的傳參機制——bootm與tags   一uboot 如何啓動 kernel 1 do_bootm uboot下使用bootm命令啓動內核鏡像文件uImage,uImage是在zImage頭添加了64字節

原创 uart調試

    0.000000]@0 CPU: 0 PID: 0 Comm: swapper Nottainted 3.10.84-gc02f4f9-03166-g8c8a4c4-dirty #40 [    0.000000]@0 Call