继续进行驱动开发,在上一篇文章中完成了对寄存器的读写,Hikey soc 中对Trustzone IP核是支持的,但在官方文档中并未对三个IP核的寄存器地址进行定义和使用,所以需要自行编写驱动用以初始化TZPC和AXI-APB总线桥信号寄存器的外围设备时钟,代码如下,可以参考OP-TEE的core/driver/目录下的pl011.c代码:
一.定义头文件
在/devel/optee/optee_os/core/include/drivers/目录下新建hikey_tzpc.h文件,并与其中添加代码,如下:
#ifndef HIKEY_TZPC_H
#define HIKEY_TZPC_H
#include <types_ext.h>
#define SOC_TZPC_BASE_ADDR 0xF8002000
/* offset address */
#define SOC_TZPC_TZPCDECPROT3SET_ADDR 0x0828
#define SOC_TZPC_TZPCDECPROT3STAT_ADDR 0x0824
#define AO_SC_PERIPH_CLKEN4 0x630
#define AO_SC_PERIPH_CLKSTAT4 0x638
#define PERI_SC_PERIPH_CLKEN3 0x230
#define PERI_SC_PERIPH_CLKSTAT3 0x238
/* register flag */
#define AO_SC_PERIPH_CLKEN4_PCLK_TZPC (1 << 11)