LinuxDev 板


LINE

最近突然需要实现用dma与fpga沟通, 但由於一直以来都没有碰有关driver的东西, 而且有时间压力, 所以一直都是在网路上瞎找资料。 (因为真的没有按部就班的从基础学起, 所以可能会有非常严重的概念错误, 请各位见谅。) 想请问一些观念问题或有没有推荐的书? 1. 像是使用持续性(coherent)的DMA是在挂载driver时就将配置buffer的部分写在driver中了; 那如果是streaming这种,既然是每次动作时重新map,那是不是配置buffer的部分就是直接写在软体动作里? 2. (这问题不知道会不会错版) fpga的部分等软体分配完buffer後,将总线地址传给fpga。 照着TLP格式来放入此地址,并将TLP丢给RQ/RC通道, 就会自动判定成DMA请求并执行吗? (因为部分原因,所以pcie ip的部分没有使用官方含有dma的ip,而是使用最基础的Ultrasc 目前只是要将fpga内的资料在软体请求时,透过dma写入主机。 但因为相关概念真的非常不足, 也没有人可以询问,所以可能很多观念有严重错误,烦请大家不吝指教。 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.200.42.183 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1645689370.A.628.html ※ 编辑: uniquelegend (1.200.42.183 台湾), 02/24/2022 16:30:26
1F:推 breeze08: 我不是driver的专家,虽然不能给你什麽建议,但在你问 02/25 00:03
2F:→ breeze08: 题的描述上想探讨厘清一下,更清楚的描述或许有助於其 02/25 00:03
3F:→ breeze08: 他人帮助你。以下是我对问题的理解,目前看起来是你有 02/25 00:03
4F:→ breeze08: 一台x86主机,主机上有一套软体要透过PCIe介面来跟FPGA 02/25 00:03
5F:→ breeze08: 沟通,而你想使用DMA的方式来实现,到这部分我的理解对 02/25 00:03
6F:→ breeze08: 吗?假如这部分理解没错,再来会有几个延伸问题,这个F 02/25 00:03
7F:→ breeze08: PGA的供应商有提供基本的驱动给你吗?还是你要自己从从 02/25 00:03
8F:→ breeze08: 无到有?如果从无到有的话工程量可能颇巨大,就我的理 02/25 00:04
9F:→ breeze08: 解来说你需要先阅读那块FGPA的Spec知道如何操作那块FPG 02/25 00:04
10F:→ breeze08: A,再来是根据Spec来撰写主机上的PCIe驱动来实现跟FPGA 02/25 00:04
11F:→ breeze08: 基本的沟通,然後以此为基础调整成以DMA的方式传送。还 02/25 00:04
12F:→ breeze08: 是说你已经有厂商给的基本驱动只是要调整成DMA的方式? 02/25 00:04
13F:→ breeze08: 另外根据你最後提到的透过DMA传给主机这句话来看,我有 02/25 00:04
14F:→ breeze08: 疑惑的是你这块FPGA的角色是主动式还是被动式?他会主 02/25 00:04
15F:→ breeze08: 动给PC讯号还是PC给讯号後才会动?这块FPGA上的程式是 02/25 00:04
16F:→ breeze08: 你撰写的吗?还是厂商提供的?你有需要去调整这上面的 02/25 00:04
17F:→ breeze08: 程式码吗?还是程式码是已经固化的? 02/25 00:05
不好意思!因为怕手机排版不好看,所以用截图回覆! 非常谢谢您的帮助
18F:→ uniquelegend: https://i.imgur.com/PZQVy8o.jpg 02/25 00:32
※ 编辑: uniquelegend (36.230.25.93 台湾), 02/25/2022 00:33:34
19F:→ breeze08: 这边在厘清一下你想实现的DMA部份,指的是FPGA那一侧还 02/25 00:40
20F:→ breeze08: 是指主机那一侧?还是两侧都要? 02/25 00:40
21F:→ breeze08: 关於主机的PCIe驱动撰写,参考书籍可以看看Linux Devic 02/25 00:44
22F:→ breeze08: e Driver 3/e 或是平田丰的 Linux Device Driver Progr 02/25 00:44
23F:→ breeze08: amming 02/25 00:44
24F:→ breeze08: 这两本也有关於DMA的章节 02/25 00:46
25F:→ breeze08: 话说硕班一个人做这个感觉是有点惨,如果真的没有人可 02/25 00:54
26F:→ breeze08: 以帮的话可能就要考虑descent大说的外包了 02/25 00:54
27F:→ breeze08: 啊 抱歉 我看到你是要实现FPGA上的DMA了,但如果是要实 02/25 01:03
28F:→ breeze08: 现FPGA上的DMA可能就不属於Linux driver的范畴了,而是 02/25 01:03
29F:→ breeze08: 属於积体电路设计的部分 02/25 01:03
不好意思!我可能没有表达清楚。 是两边都需要的,驱动/fpga/软体都需要实现。目前打算先新增完驱动的部分,再来进一步测试硬体到底该如何实现 因为目前我可能观念有点模糊,所以不确定像这种streaming dma的buffer配置到底应不应该在驱动里实现? 因为在网路上查到的介绍看起来是在「每次执行读写动作时,重新配置。」 感觉这个动作(每次执行)比较偏向软体的部分而不是驱动。 我想确认我这个判断方式是否有误? 因为目前看到的范例都是比较简短的小例子,我不大会分辨该在哪部分实现他才是对的。 谢谢您的回答 ※ 编辑: uniquelegend (36.230.25.93 台湾), 02/25/2022 02:09:20
30F:→ breeze08: 关於buffer该放在哪,以我粗浅的认知,放在用户态(也就 02/25 15:40
31F:→ breeze08: 是你的软体)的效能会比较好,因为假如buffer放在驱动中 02/25 15:40
32F:→ breeze08: (内核态),你的软体还需要进行系统呼叫才能读取,这步 02/25 15:40
33F:→ breeze08: 骤就多了一份overhead。那所谓的buffer放在用户态,其 02/25 15:40
34F:→ breeze08: 具体实现也是透过驱动来达成的,通常是透过驱动中实现m 02/25 15:41
35F:→ breeze08: map这个file operation来把内核态的空间映射至用户态。 02/25 15:41
36F:→ uniquelegend: 了解!太感谢您的帮忙了! 02/27 00:52







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP