Linux驱动开发始末

SMx内核驱动开发笔记

- 背景

硬件背景

为SMx开发Linux驱动。

SMx为与ARMv8核心以AXI和AHB挂接的SoC内部模块,用于SM3/4加速。

SMx功能包括SM3,SM4-ECB/CBC/CTR/CFB/OFB/GCM计算。

含有内部自用DMA,以及与SPAcc相似的内部连线接口。

软件背景

目标系统Peta Linux, kernel 4.6, ......

用AF_ALG实现内核crypto API的用户空间调用

由于内核驱动运行于内核空间,而Linux的crypto API本身并不推荐开放给用户空间调用,如果要测试该驱动,理论上的办法是在内核里再写一个模块,像kernel自带的tcrypt那样,insmod这个新模块,用类似modprobe tcrypt sec=1 mode=200的方式测试。然而这个方法对于需要大量调用固定测试向量的testbench非常不友好,于是还是寻求从用户空间自由自在编写测试框......

Linux内核驱动hello

first linux kernel driver

Reference:

LED驱动/dev/led

preparation

get kernel version from uname -r.

find real KERNELDIR (in Makefile), for kernel module programming.

if /lib/module/build doesn&......

'