mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 16:13:19 +09:00
crypto: ccp - Add support for an interface for platform features
Some platforms with a PSP support an interface for features that interact directly with the PSP instead of through a SEV or TEE environment. Initialize this interface so that other drivers can consume it. These drivers may either be subdrivers for the ccp module or external modules. For external modules, export a symbol for them to utilize. Acked-by: Tom Lendacky <thomas.lendacky@amd.com> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
committed by
Herbert Xu
parent
1c5c1daf04
commit
7ccc4f4e2e
49
include/linux/psp-platform-access.h
Normal file
49
include/linux/psp-platform-access.h
Normal file
@@ -0,0 +1,49 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#ifndef __PSP_PLATFORM_ACCESS_H
|
||||
#define __PSP_PLATFORM_ACCESS_H
|
||||
|
||||
#include <linux/psp.h>
|
||||
|
||||
enum psp_platform_access_msg {
|
||||
PSP_CMD_NONE = 0x0,
|
||||
};
|
||||
|
||||
struct psp_req_buffer_hdr {
|
||||
u32 payload_size;
|
||||
u32 status;
|
||||
} __packed;
|
||||
|
||||
struct psp_request {
|
||||
struct psp_req_buffer_hdr header;
|
||||
void *buf;
|
||||
} __packed;
|
||||
|
||||
/**
|
||||
* psp_send_platform_access_msg() - Send a message to control platform features
|
||||
*
|
||||
* This function is intended to be used by drivers outside of ccp to communicate
|
||||
* with the platform.
|
||||
*
|
||||
* Returns:
|
||||
* 0: success
|
||||
* -%EBUSY: mailbox in recovery or in use
|
||||
* -%ENODEV: driver not bound with PSP device
|
||||
* -%ETIMEDOUT: request timed out
|
||||
* -%EIO: unknown error (see kernel log)
|
||||
*/
|
||||
int psp_send_platform_access_msg(enum psp_platform_access_msg, struct psp_request *req);
|
||||
|
||||
/**
|
||||
* psp_check_platform_access_status() - Checks whether platform features is ready
|
||||
*
|
||||
* This function is intended to be used by drivers outside of ccp to determine
|
||||
* if platform features has initialized.
|
||||
*
|
||||
* Returns:
|
||||
* 0 platform features is ready
|
||||
* -%ENODEV platform features is not ready or present
|
||||
*/
|
||||
int psp_check_platform_access_status(void);
|
||||
|
||||
#endif /* __PSP_PLATFORM_ACCESS_H */
|
||||
Reference in New Issue
Block a user