blob: 8f2b4350fdb1c535f60a6704bb9ade9bb8a0cc5b [file] [log] [blame]
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
*/
#ifndef _AML_SECURITY_KEY_H_
#define _AML_SECURITY_KEY_H_
/* internal return value*/
#define RET_OK 0
#define RET_EFAIL 1 /*not found*/
#define RET_EINVAL 2 /*name length*/
#define RET_EMEM 3 /*no enough memory*/
#define RET_EUND 0xff
#define SMC_UNK 0xffffffff
#define BL31_STORAGE_QUERY 0x82000060
#define BL31_STORAGE_READ 0x82000061
#define BL31_STORAGE_WRITE 0x82000062
#define BL31_STORAGE_TELL 0x82000063
#define BL31_STORAGE_VERIFY 0x82000064
#define BL31_STORAGE_STATUS 0x82000065
#define BL31_STORAGE_LIST 0x82000067
#define BL31_STORAGE_REMOVE 0x82000068
#define BL31_STORAGE_IN 0x82000023
#define BL31_STORAGE_OUT 0x82000024
#define BL31_STORAGE_BLOCK 0x82000025
#define BL31_STORAGE_SIZE 0x82000027
#define BL31_STORAGE_SET_ENCTYPE 0x8200006A
#define BL31_STORAGE_GET_ENCTYPE 0x8200006B
#define BL31_STORAGE_VER 0x8200006C
struct bl31_storage_share_mem {
void __iomem *in;
void __iomem *out;
void __iomem *block;
unsigned long size;
};
/* keyattr: 0: normal, 1: secure*/
unsigned long secure_storage_write(u8 *name, u8 *buf, u32 len, u32 attr);
unsigned long secure_storage_read(u8 *name, u8 *buf, u32 len, u32 *readlen);
unsigned long secure_storage_verify(u8 *name, u8 *hashbuf);
unsigned long secure_storage_query(u8 *name, u32 *retval);
unsigned long secure_storage_tell(u8 *name, u32 *retval);
unsigned long secure_storage_status(u8 *name, u32 *retval);
void *secure_storage_getbuf(u32 *size);
int __init security_key_init(struct platform_device *pdev);
#endif