LinuxDev 板


LINE

一直忘记讲我的思路 我有段时间没有碰FPGA,可能有写错的地方了 ※ 引述《hirofumisyo (Ami)》之铭言: : 标题: [问题] 如何关掉/打开 arm cpu 快取记忆体 : 时间: Thu Apr 2 16:43:16 2020 : : 大家好, : : 我的作业平台是FPGA zynq 开发板,里面有arm cpu。 : : 最近在试用dma将写进DDR的资料搬出来, : : 但发现搬出来的资料都有问题。 : : 後来发现在dma开始搬资料前使用sdk开发平台的date cache disable这个功能就能让 : : 结果是正常的。 : : 不过我之後希望将这个流程搬到灌了linux作业系统的环境下去执行, : : 因此想要问一下在linux开发环境下要如何去关掉跟打开快取呢? : : 我是用ubuntu的linux, : : 谢谢大家。 : : -- :



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.161.58.88 (台湾)
: ※ 文章网址: https://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1585817001.A.3E3.html : → descent: dma 要记忆体的 function 可以配置non cacahe/non buffer 04/02 22:43 : → hizuki: linux dma coherent 了解下,划dma区段可用cma实现,如许 04/05 13:32 : → hizuki: 详细答覆我回头写给你 04/05 13:32 : 感谢回应,我找了一些dma coherent的资料来看後,我的理解是CPU在读写DDR时不是直接 : 读写DDR,而是透过cache; 但DMA却是直接搬运DDR的资料,所以才会产生搬的data跟从 : CPU写入的不一样。我不太懂你提到的用cma划dma区段是什麽意思,在我使用的FPGA手册 : 有给出DDR对应到的memory address range,因此我使用mmap的方法将data写到对应的 : address上(共4MB) FGPA因为没有Iommu,所以必须访问continguous memory 因此我们使用dts当中将一段memory设定为reserved-memory https://www.kernel.org/doc/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt 这样linux kernel就不会去使用这一段 Linux当中有两种memory是不会有cache的问题,一个是io的memory region,一个是dma memory 後者的问题是device/host的一致性问题 我们唯独需要确保的就是FPGA写入的东西,在我们读取的时候不被写入。这边的同步请自行 和FPGA进行通讯确保。效率的关键就在这里 然後关於Linux上访问该区段的问题,我这里写一个比较傻的方法,想必你也不需要别的DMA Memory 首先初始化该区段 of_reserved_mem_device_init() https://elixir.bootlin.com/linux/v5.6.3/source/drivers/media/platform/mtk-vpu/mtk_vpu.c#L854 然後去这个区段取一段memory出来进行mapping(这样kernel才可以访问) dma_alloc_coherent() https://www.kernel.org/doc/Documentation/DMA-API-HOWTO.txt https://elixir.bootlin.com/linux/v5.6.3/source/drivers/media/platform/mtk-vpu/mtk_vpu.c#L679 一般论的话,这段memory其实都是从开头开始分的 当然还有更简单的做法,只做reserved-memory那一步,然後对 /dev/mem 进行mmap()操作 这部分只要编译kernel的时候有许可访问 /dev/mem 就可以,记忆体的物理位置要自行在程式中配置, 或者从/proc 当中读dts出来 复杂点的做法可以用 memremap() 就好了 : → WPC001: flush_tlb_mm() / flush_tlb_range() /update_mmu_cache() 04/06 22:38 : → WPC001: 有空自己看一下... 04/06 22:38 别闹啊,哪个driver这样写,很简单的事情非要用非推荐的书写方式 : → leolarrel: 参考 volatile 关键字 04/07 16:07 这完全就是胡说八道了,这优化的是compiler -- 起初,皇军进占满州, 我没有反对,因为我要去满州捞钱。 接着,皇军发动对支战争, 我没有反对,因为那是支那人自找苦吃。 後来,皇军发动太平洋战争,我没有反对,因为看鬼畜米英四处奔逃出了一口恶气。 以後,鬼畜米英来轰炸, 我全力反对,因为我们台湾是无辜的,这是米英的战争罪行 最後,天皇宣布无条件投降,我没有反对。因为我们台湾人是战胜国国民, 战争责任与我无关,我要有跟战胜国一样的物资配给好赚钱,也不要坐祥瑞回家! --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 38.106.22.59 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1586499854.A.907.html 打了半天会发现别的FPGA有文档了,思路是万年不变的 https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841683/Linux+Reserved+Memory ※ 编辑: hizuki (38.106.22.59 美国), 04/10/2020 14:30:07
1F:→ leolarrel: 抱歉我胡说八道了 04/10 17:49
2F:推 bearbox: 感谢分享 06/09 10:02







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灯, 水草

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

TOP