![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux内核之芯片级驱动
文章平均质量分 84
芯片级驱动介绍
qxqxa
弱小就以弱小的方式前进吧!
展开
-
怎么简单熟悉下一个新平台的设备树
gpio节点可能有多个,他们的中断号都是位于同一个中断控制器,比如gic中断控制器;还有个细节就是simple-bus的字节点也会在系统初始化时生成platform_device,以匹配驱动aon {ranges;原创 2024-07-29 15:02:48 · 410 阅读 · 0 评论 -
硬件中断号怎么跟irq映射的?
内核启动由这两个函数,完成中断的的初始化,包括硬件中断号和virq的映射。原创 2024-07-04 16:40:35 · 378 阅读 · 0 评论 -
device_node和platform_device的生成流程
有介绍DT_MACHINE_START的一些初始化操作,匹配上就会在后续的初始化中调用DT_MACHINE_START的成员来初始化系统的设备树,时钟,中断等。原创 2024-07-01 16:05:23 · 667 阅读 · 0 评论 -
scatterlist的相关概念与实例分析
scatterlist用来描述一块内存,sg_table一般用于将物理不同大小的物理内存链接起来,一次性送给DMA控制器搬运page_link:(1).对于chain sg 来说,记录下一个 SG 数组的首地址,并且用bit[0] 和 bit[1] 来表示是chain sg 还是 end sg;(2).对于 end sg 来说,只有bit[1] 为1,其他无意义;(3).对于普通 sg 来说,记录的是关联的内存页块的地址;原创 2024-06-28 15:44:40 · 1139 阅读 · 0 评论 -
pinctrl驱动详解
pinmux_enable_setting调用pinctrl_ops->get_group_pins获取对应的group,及其里面的pin信息;还是从pcs_parse_one_pinctrl_entry和pcs_parse_pinconf看到 ----每个state会有两个type的map;pinctrl主机驱动会用devm_pinctrl_register注册时,放进去的那三个ops(下面的代码前几行就可以看出)来真正的配置pin的复用功能和电气属性;根据从设备树获取的pinctrl的信息;原创 2024-04-30 14:57:55 · 485 阅读 · 0 评论 -
DMA控制器驱动分析
驱动按上面的步骤1,2分配通道和传输信息后,通过通道找到dma设备,再调用设备的device_prep_dma_memcpy这个成员,就会调用到dma控制器的这个具体实现。4、dma数据提交, dmaengine_submit(),主要是将DMA处理事务提交到dma通道处理链上,这个submit用的是第四步得到的DMA TX结构。2、dma通道配置, dmaengine_slave_config(), 用户通过该函数,可以配置指定通道的参数,比如目的和源地址,位宽,传输方向等。原创 2024-03-07 16:41:13 · 1061 阅读 · 0 评论 -
概述pinctrl子系统工作原理
pinctrl子系统的工作流程原创 2023-03-04 17:57:31 · 1065 阅读 · 1 评论 -
内核启动时的中断和时钟的初始化流程
内核通过start_kernel从汇编进入c世界,在用serup_arch设置体系架构的时候,会返回当前机器的machine_desc;然后init_IRQ和time_init来初始化中断。时钟子系统mdesc = setup_machine_fdt(atags_vaddr) //返回成功匹配的machine_desc//赋值给全局变量machine_desc,以供后续初始化等操作使用,比如给下面的中断和时钟子系统使用......init_IRQ......time_initelse。原创 2024-06-19 11:22:41 · 825 阅读 · 0 评论 -
概述gpio子系统工作原理
gpio子系统工作原理原创 2023-03-08 23:25:39 · 648 阅读 · 0 评论