没有合适的资源?快使用搜索试试~ 我知道了~
首页100ask IMX6ull dts 在启动过程中解析过程流程图
资源详情
资源评论
资源推荐

of_platform_device_create_pdata of_device_alloc
return platform_device *dev
为 root-/ 下的一级子节点创建platform_device
count device_node resource
[ irq, reg ]
num_reg = of_address_to_resource()
num_irq = of_irq_count() of_irq_parse_one
fill platform_device->resource
of_address_to_resource
of_irq_to_resource_table
of_irq_to_resource
irq_of_parse_and_map
of_irq_parse_one
irq_create_of_mapping
irq_create_fwspec_mapping
__irq_domain_alloc_irqs
irq_domain_alloc_irqs_recursive
domain->ops->alloc
imx_gpc_domain_alloc
domain->ops->alloc
gic_irq_domain_alloc
gic_irq_domain_translate
start_kernel
setup_arch(&command_line);
mdesc = setup_machine_fdt(__atags_pointer);
machine_desc = mdesc;
获取machine结构体
unflatten_device_tree
展开设备树
__unflatten_device_tree
unflatten_dt_nodes
unflatten_dt_nodes
unflatten_dt_nodes
计算dts需要的内存
正式展开dts
populate_node
populate_properties
遍历dts中的每一个node
遍历node下的每一个每一个属性
pp->name
pp->length
pp->value
init_IRQ();
machine_desc->init_irq();
imx6ul_init_irq()
irqchip_init();
of_irq_init(__irqchip_of_table);
of_find_property(np, "interrupt-controller", NULL)
<[ find interrupt-controller in dts ]>
<[ init interrupt-controller ]>
gic_of_init
ret = desc->irq_init_cb(desc->dev, desc->interrupt_parent);
imx_gpc_init
init /interrupt-controller@00a01000 (8bb41de0), parent (null)
init /soc/aips-bus@02000000/gpc@020dc000 (8bb4afc8), parent 8bb41de0
rest_init();
kernel_thread(kernel_init, NULL, CLONE_FS);
kernel_init
kernel_init_freeable();
do_basic_setup();
do_initcalls();
imx6ul_init_machine()
/interrupt-controller@00a01000 <=== [interrupt-controller]
/soc/aips-bus@02000000/gpc@020dc000 <=== [gpc]
parent = imx_soc_device_init();
of_platform_default_populate(NULL, NULL, parent);
创建IMX6特有struct device
/sys/devices/soc0
其他platform设备节点都将挂在这里
of_platform_populate
为dts创建 platform_device
of_platform_bus_create
遍历 root - / 下的所有子节点
of_platform_bus_create
迭代:逐级创建platform_device
为一级子节点的子节点创建platform_device
of_platform_device_create_pdata
of_platform_bus_create
获取virq
如果有多个中断资源,则遍历多次
translate dts to hwirq / domain
of_platform_default_populate_init
查看root下是否有未创建的platform_device
driver_register
platform_drv_probe
platform_get_irq
irq_create_fwspec_mapping
注册很多driver
获取device的virq
但是platform_device->source->start已经填充好了呀



















dstary
- 粉丝: 0
- 资源: 6
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- Xilinx SRIO详解.pptx
- Informatica PowerCenter 10.2 for Centos7.6安装配置说明.pdf
- 现代无线系统射频电路实用设计卷II 英文版.pdf
- 电子产品可靠性设计 自己讲课用的PPT,包括设计方案的可靠性选择,元器件的选择与使用,降额设计,热设计,余度设计,参数优化设计 和 失效分析等
- MPC5744P-DEV-KIT-REVE-QSG.pdf
- 通信原理课程设计报告(ASK FSK PSK Matlab仿真--数字调制技术的仿真实现及性能研究)
- ORIGIN7.0使用说明
- 在VMware Player 3.1.3下安装Redhat Linux详尽步骤
- python学生信息管理系统实现代码
- 西门子MES手册 13 OpcenterEXCR_PortalStudio1_81RB1.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0