Edit online

CE 配置

9 Dec 2024
Read time: 1 minute(s)

内核配置

使能 CE 相关的内核驱动,可在通过下列命令进行配置(在 SDK 顶层目录执行):

make linux-menuconfig

或者使用快捷命令:

make km

在内核的配置界面中,进行下列的选择:

Cryptographic API  --->
    <*>   User-space interface for asymmetric key cipher algorithms
    [*]   Hardware crypto devices  --->
        [*]   Support for artinchip cryptographic accelerator
        <*>     Artinchip's crypto engine driver

此处特别选择了 User-space interface for asymmetric key cipher algorithms 是因为默认的 Linux 内核仅对用户空间开放了下列四种类型的算法。

算法类型 内核开放接口 说明
SKCIPHER 对称密钥类算法,如 AES、DES 等
AEAD 关联数据的认证加密类算法,如 GCM-AES,CCM-AES 等
HASH 消息摘要类算法,如 MD5,SHA-256 等
RNG 随机数类算法
AKCIPHER 非对称密钥类算法,如 RSA

内核中 非对称密钥类算法 默认并没有对用户空间开放。ArtInChip 对内核打了补丁,使得内核支持用户空间程序 使用内核所提供的非对称密钥算法,在配置内核时使能上述配置即可。

DTS 配置

crypto: crypto-engine@10020000 {
        compatible = "artinchip,aic-crypto-v1.0";
        reg = <0x0 0x10020000 0x0 0x1000>;
        interrupts-extended = <&plic0 33 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&cmu CLK_CE>;
        resets = <&rst RESET_CE>;
        status = "okay";
};