Chinaunix首页 | 论坛 | 博客
  • 博客访问: 223696
  • 博文数量: 86
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 256
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-12 15:39
文章分类

全部博文(86)

文章存档

2016年(20)

2015年(65)

2014年(1)

我的朋友

发布时间:2015-07-21 18:38:31

What is device/driver register?
Platform device-driver model
I2C device-driver model
Device/Driver register
There are three key entities including bus, device, driver.
Declare there is one special device/driver on the BUS
The name and ID of device/driver must be exclusive
The process of register is only to add the device/driver kobject into the kobject list(kset), not verify whether are the details right or not.
The bus driver will match the device and driver according to......【阅读全文】

阅读(1683) | 评论(0) | 转发(0)

发布时间:2015-07-19 17:18:26

一致性DMA可以认为是“同步的”,就是DMA和CPU之间看到的物理内存是一致的。流式DMA则不然。
DMA操作和CPU之间的主要隔阂就是cache,因为一般来说DMA只操作物理内存,不会动cache,但CPU却首先看到的是L1 L2cache,所以设备驱动就需要调用正确的DMA函数来操作cache。拿网卡收发包为例,假如CPU发包给网卡,那CPU填好skb的数据之后,得先把cache里有关这个skb数据的行给刷到物理内存,否则网卡从物理内存拿到的数据不是真正所要的数据。反之,CPU把skb数据装配好DMA rx descriptor的时候,得先invalid掉这个skb数据在cache里的行。这样DMA把收到的包填到物理内存后再中断告知CPU时,CPU就可以避免从cache拿到关于这个skb的老(脏)数据,而会从物理内存取包而重新建立数据cache。dma_map_single dma_unmap_single做的就是这个事情,它会根据数据的方向来判断该是clean cache还是incalid cache。......【阅读全文】

阅读(1963) | 评论(0) | 转发(0)

发布时间:2015-07-19 17:05:38

使用大块DMA一致性缓冲区(dma-coherent buffers)
1-2 使用小块DMA一致性缓冲区
1-3 DMA寻址限制
1-4 流式DMA映射dma_map_single......【阅读全文】

阅读(979) | 评论(0) | 转发(0)

发布时间:2015-07-19 16:59:16

......【阅读全文】

阅读(1392) | 评论(0) | 转发(0)

发布时间:2015-07-19 16:11:24

dma_alloc_coherent: 一致性DMA映射
dma_alloc_writecombine: 流式DMA映射
原来 dma_alloc_coherent 在 arm 平台上会禁止页表项中的 C (Cacheable) 域以及 B (Bufferable)域。
而 dma_alloc_writecombine 只禁止 C (Cacheable) 域.......【阅读全文】

阅读(1586) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册