linux-kernel - 将 Linux DMA 分配限制在特定范围内
问题描述
我正在开发一个 SOC,它的 RAM 从 0x200M 开始。出于某种原因,我需要将 DMA 分配限制为 0x220M,所以我调用了 - dma_set_mask_and_coherent(dev, 0x21FFFFFFF)
。
我注意到
dev->dma_mask
没有设置,而
dev->coherent_dma_mask
设置。
尽管如此,调用 dma_alloc_coherent 会返回超出请求限制的缓冲区。
如何限制缓冲区地址?
解决方案
推荐阅读
- android - 房间数据库 - 从查询中删除冒号
- javascript - 为什么这个承诺不会在异步函数中向我的变量返回值:console.log print well
- mysql - '/var/lib/mysql-files' 上的 realpath() 错误(错误 2 - 没有这样的文件或目录)
- javascript - 在 $router.push 方法中传递整个对象
- linux-device-driver - linux 子系统中 i2c_get_dma_safe_msg_buf 返回的最大分配内存大小是多少?
- google-cloud-functions - 从 DialogFlow 调用 Webhook 云函数
- php - 为什么我不能在 php 中有一个带有 Object 值的私有静态字段?
- unit-testing - Luaunit:如何获得测试断言数量的报告?
- php - 如果更新和插入未提交但未在 PHP (PDO) 中回滚,会发生什么情况?
- javascript - 记住页面重新加载后的复选框和单选按钮状态