- 博客(3)
- 收藏
- 关注
原创 memcpy vs memcpy_toio
环境:Linux kernel 5.15.78 aarch64 armv8现象:使用vmap()以nocache的形式映射一段物理地址,使用memcpy()往其中写入数据,在写入最后64字节时发生如下错误确认并未发生溢出,且使用memcpy_toio()或以cache形式映射则不会有这个问题。网上搜了一圈没发现很好的解释,遂read the fxxking source code,趁热记录下来。本文主要探讨两个问题:1.memcpy()及memcpy_toio()的差别;
2023-03-16 14:15:59 1805
转载 Linux regmap机制:简化慢速 I/O 接口优化性能
Linux regmap机制:简化慢速 I/O 接口优化性能1. 简介Regmap 机制是在 Linux 3.1 加入进来的特性。主要目的是减少慢速 I/O 驱动上的重复逻辑,提供一种通用的接口来操作底层硬件上的寄存器。其实这就是内核做的一次重构。Regmap 除了能做到统一的 I/O 接口,还可以在驱动和硬件 IC 之间做一层缓存,从而能减少底层 I/O 的操作次数。2. 使用对比在了解 Regmap 的实现细节前,我们先来对比一下,传统操作寄存器的方式,与 Regmap 之间的差异。2.1 传
2022-04-01 21:46:33 267 1
原创 Linux Device Resource Management 原理实现
Linux Device Resource Management原理实现0x00 背景0x01 原理介绍0x02 具体实现1.资源的注册2.资源的卸载(1)驱动注册失败时(2)驱动卸载时0x03 总结0x00 背景在最近一次的驱动开发过程中,遇到由于devm接口使用不当导致kernel panic的问题。对于devm系列接口的认识,还停留在接口的简介中,只知道设备卸载时会自动释放申请过的资源。至于具体是如何实现的,还一无所知。devm接口真的有想象中的那么智能吗,这次便来一探究竟。0x01 原理介绍
2021-03-11 23:12:34 354 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人