DHD驱动层dhd_xxx.c 调用总线sdio驱动层bcmsdh_sdio_xxx.c 继而调用控制器层的FIFO,buf,reg等tx rx操作。而这一系列的调用中的内存,io,dma,中断等操作都会用到os的一些接口和结构。
像通用的网络驱动一样,bcm类的驱动,tx data的过程是将skb_buff数据打上硬件头写入到tx fifo或者reg中,同时写入data len,然后等待硬件tx,硬件tx完会中断cpu,然后CPU继续填包。
rx data过程就是硬件收到data就会中断CPU,启动中断isr,isr中或者在tasklet or work_struct中进行skbuff结构的分配并去掉硬件头,交给netif_rx接口,即提交上层协议剥包头。
时间: 2024-10-24 13:27:27