日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux高通平台代码,高通linux系统初始化

發布時間:2025/3/20 linux 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux高通平台代码,高通linux系统初始化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

標簽:

很多驅動中出現:arch_initcall,subsys_initcall

比如: drivers/i2c/busses/i2c-msm-v2.c 中為subsys_initcall

查看代碼可追蹤到include/linux/init.h, 都是一些宏定義。

init.h 會根據條件語句選擇宏定義, 本平臺代碼摘錄如下:

#define pure_initcall(fn)????????? __define_initcall(fn, 0)

#define core_initcall(fn)????????? __define_initcall(fn, 1)

#define core_initcall_sync(fn)??????? __define_initcall(fn, 1s)

#define postcore_initcall(fn)????????? __define_initcall(fn, 2)

#define postcore_initcall_sync(fn)? __define_initcall(fn, 2s)

#define arch_initcall(fn)????????? __define_initcall(fn, 3)

#define arch_initcall_sync(fn)??????? __define_initcall(fn, 3s)

#define subsys_initcall(fn)?????? __define_initcall(fn, 4)

#define subsys_initcall_sync(fn)???? __define_initcall(fn, 4s)

#define fs_initcall(fn)????????????? __define_initcall(fn, 5)

#define fs_initcall_sync(fn)?????????? __define_initcall(fn, 5s)

#define rootfs_initcall(fn)??????? __define_initcall(fn, rootfs)

#define device_initcall(fn)?????? __define_initcall(fn, 6)

#define device_initcall_sync(fn)???? __define_initcall(fn, 6s)

#define late_initcall(fn)?????????? __define_initcall(fn, 7)

#define late_initcall_sync(fn)???????? __define_initcall(fn, 7s)

#define __initcall(fn) device_initcall(fn)

__define_initcall ----> arch/arm/kernel/vmlinux.lds

vmlinux.lds中追蹤到:

.init.data : {

*(.init.data) *(.meminit.data) *(.init.rodata) . = ALIGN(8); __start_ftrace_events = .; *(_ftrace_events) __stop_ftrace_events = .; . = ALIGN(8); __start_kprobe_blacklist = .; *(_kprobe_blacklist) __stop_kprobe_blacklist = .; *(.meminit.rodata) . = ALIGN(8); __reservedmem_of_table = .; *(__reservedmem_of_table) *(__reservedmem_of_table_end) . = ALIGN(8); __clksrc_of_table = .; *(__clksrc_of_table) *(__clksrc_of_table_end) . = ALIGN(8); __iommu_of_table = .; *(__iommu_of_table) *(__iommu_of_table_end) . = ALIGN(8); __cpu_method_of_table = .; *(__cpu_method_of_table) *(__cpu_method_of_table_end) . = ALIGN(32); __dtb_start = .; *(.dtb.init.rodata) __dtb_end = .; . = ALIGN(8); __irqchip_of_table = .; *(__irqchip_of_table) *(__irqchip_of_table_end) . = ALIGN(8); __earlycon_of_table = .; *(__earlycon_of_table) *(__earlycon_of_table_end)

. = ALIGN(16); __setup_start = .; *(.init.setup) __setup_end = .;

__initcall_start = .; *(.initcallearly.init) __initcall0_start = .; *(.initcall0.init) *(.initcall0s.init) __initcall1_start = .; *(.initcall1.init) *(.initcall1s.init) __initcall2_start = .; *(.initcall2.init) *(.initcall2s.init) __initcall3_start = .; *(.initcall3.init) *(.initcall3s.init) __initcall4_start = .; *(.initcall4.init) *(.initcall4s.init) __initcall5_start = .; *(.initcall5.init) *(.initcall5s.init) __initcallrootfs_start = .; *(.initcallrootfs.init) *(.initcallrootfss.init) __initcall6_start = .; *(.initcall6.init) *(.initcall6s.init) __initcall7_start = .; *(.initcall7.init) *(.initcall7s.init) __initcall_end = .;

__con_initcall_start = .; *(.con_initcall.init) __con_initcall_end = .;

__security_initcall_start = .; *(.security_initcall.init) __security_initcall_end = .;

. = ALIGN(4); __initramfs_start = .; *(.init.ramfs) . = ALIGN(8); *(.init.ramfs.info)

可知initcall分為0-7等級。

內核啟動后,下一步就會進入文件系統, 那么如何進入root,代碼是如何實現的的呢?

查看include/linux/init.h, 找到init_rootfs 。

init/do_mounts.c

int __init init_rootfs(void)

{

int err = register_filesystem(&rootfs_fs_type);

if (err)

return err;

if (IS_ENABLED(CONFIG_TMPFS) && !saved_root_name[0] &&

(!root_fs_names || strstr(root_fs_names, "tmpfs"))) {

err = shmem_init();

is_tmpfs = true;

} else {

err = init_ramfs_fs();

}

if (err)

unregister_filesystem(&rootfs_fs_type);

return err;

}

標簽:

來源: https://blog.csdn.net/sheji105/article/details/82625667

總結

以上是生活随笔為你收集整理的linux高通平台代码,高通linux系统初始化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。