| /* 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 |