blob: b4d7f6af9175075ae73f3ad01c8c31fae1104e58 [file] [log] [blame]
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
*/
#ifndef __DEFENDKEY_H
#define __DEFENDKEY_H
#define CMD_SECURE_CHECK _IO('d', 0x01)
#define CMD_DECRYPT_DTB _IO('d', 0x02)
#define GET_SHARE_MEM_INPUT_BASE (0x82000020)
#define AML_DATA_PROCESS (0x820000FF)
#define AML_D_P_UPGRADE_CHECK (0x80)
#define AML_D_P_IMG_DECRYPT (0x40)
#define AML_D_Q_IMG_SIG_HDR_SIZE (0x100)
#define DEFENDKEY_LIMIT_ADDR (0x0F000000)
#define NSTATE_INIT (1)
#define NSTATE_UPDATE (2)
#define NSTATE_FINAL (4)
#define NSTATE_ALL (7)
struct aml_defendkey_dev {
struct platform_device *pdev;
struct class cls;
struct cdev cdev;
dev_t devno;
void __iomem *reg_base;
};
struct defendkey_mem {
unsigned long base;
unsigned long size;
};
enum e_defendkey_type {
E_UPGRADE_CHECK = 0,
E_DECRYPT_DTB = 1,
};
struct aml_defendkey_type {
enum e_defendkey_type decrypt_dtb;
int status;
};
enum ret_defendkey {
RET_FAIL = 0,
RET_SUCCESS = 1,
RET_ERROR = -1,
};
int aml_is_secure_set(void __iomem *reg_base);
unsigned long aml_sec_boot_check(unsigned long type,
unsigned long buffer,
unsigned long length,
unsigned long option);
#endif