RK3399 驱动开发 _ 08 - 加密芯片atsha204a驱动开发

前言

在RK3399平台开发过程中,为了确保数据安全性,需要使用加密芯片。本文旨在介绍一款型号为atsha204a的加密芯片。

系统:Android8.1
内核 : Kernel 4.4.167
加密芯片型号:atsha204a
通信方式:I2C

一、加密芯片 atsha204a

1. 简介

关于简介可参考博客:https://blog.csdn.net/zhanghaochen_/article/details/88693749

2. linux driver源码

atsha204a linux driver源码 :https://download.csdn.net/download/chenkanuo/88158252

二、驱动移植

1. DTS节点配置

atsha204a 的DTS节点定义在 kernel/arch/arm64/boot/dts/rockchip/rk3399-xxx.dtsi 文件中,如下所示:

&i2c7 {
    
    
	status = "okay";
	i2c-scl-rising-time-ns = <150>;
	i2c-scl-falling-time-ns = <30>;
	clock-frequency = <400000>;
	
	atsha204a@64 {
    
    
		compatible = "atmel,atsha204a";
		status = "okay";
		reg = <0x64>;
	};
};

2. 内核中添加驱动源码

  • 驱动添加在 kernel/drivers/cryptol/路径下:
  • 在 kernel/drivers/cryptol/Makefile 中添加:
obj-$(CONFIG_CRYPTO_DEV_ATSHA204A) := atsha204a.o
atsha204a-objs := sha204_helper.o atsha204a_api.o atsha204a_i2c.o atsha204a_module.o
  • 在 kernel/drivers/cryptol/Kconfig 中添加:
config CRYPTO_DEV_ATSHA204A
	tristate "Support for Atmel atsha204a authentication devices."
	depends on I2C
	help
	  This option enables the driver for atsha204a hardware authentication devices

	  To compile this driver as a module, choose M here.

  • 在 kernel/arch/arm64/configs/xxx_defconfig 中新增宏定义:
CONFIG_CRYPTO_DEV_ATSHA204A=y 

3. 重新编译并烧录

重新编译内核并烧录生效。

三、测试

更新内核后,设备上电,生成生成ioctl节点 : /dev/atsha204a
读取加密芯片SN:
cat /sys/class/crypto/atsha204a/sn

读取加密芯片配置:
cat /sys/class/crypto/atsha204a/config

在这里插入图片描述


猜你喜欢

转载自blog.csdn.net/chenkanuo/article/details/132087316