You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
936 B
44 lines
936 B
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* (C) Copyright 2025 Rockchip Electronics Co., Ltd
|
|
*/
|
|
|
|
#ifndef _CORE_KEYLAD_H_
|
|
#define _CORE_KEYLAD_H_
|
|
|
|
#include <common.h>
|
|
#include <dm.h>
|
|
|
|
enum RK_FW_KEYID {
|
|
RK_FW_KEY0 = 0,
|
|
RK_FW_KEYMAX
|
|
};
|
|
|
|
struct dm_keylad_ops {
|
|
/* transfer firmware key to dst module */
|
|
int (*transfer_fwkey)(struct udevice *dev, ulong dst,
|
|
enum RK_FW_KEYID fw_keyid, u32 keylen);
|
|
};
|
|
|
|
/**
|
|
* keylad_get_device() - Get keylad device
|
|
*
|
|
* @return dev on success, otherwise NULL
|
|
*/
|
|
struct udevice *keylad_get_device(void);
|
|
|
|
/**
|
|
* keylad_transfer_fwkey() - Transfer firmware key otp to dst module
|
|
*
|
|
* @dev: crypto device
|
|
* @dst: dst module addr
|
|
* @fw_keyid: firmware key id select from enum RK_FW_KEYID
|
|
* @keylen: key length of firmware key
|
|
|
|
* @return 0 on success, otherwise failed
|
|
*/
|
|
int keylad_transfer_fwkey(struct udevice *dev, ulong dst,
|
|
enum RK_FW_KEYID fw_keyid, u32 keylen);
|
|
|
|
#endif
|