Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/include/uapi/misc/amd-apml.h
26285 views
1
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2
/*
3
* Copyright (C) 2021-2024 Advanced Micro Devices, Inc.
4
*/
5
#ifndef _AMD_APML_H_
6
#define _AMD_APML_H_
7
8
#include <linux/types.h>
9
10
/* Mailbox data size for data_in and data_out */
11
#define AMD_SBI_MB_DATA_SIZE 4
12
13
struct apml_mbox_msg {
14
/*
15
* Mailbox Message ID
16
*/
17
__u32 cmd;
18
/*
19
* [0]...[3] mailbox 32bit input/output data
20
*/
21
__u32 mb_in_out;
22
/*
23
* Error code is returned in case of soft mailbox error
24
*/
25
__u32 fw_ret_code;
26
};
27
28
struct apml_cpuid_msg {
29
/*
30
* CPUID input
31
* [0]...[3] cpuid func,
32
* [4][5] cpuid: thread
33
* [6] cpuid: ext function & read eax/ebx or ecx/edx
34
* [7:0] -> bits [7:4] -> ext function &
35
* bit [0] read eax/ebx or ecx/edx
36
* CPUID output
37
*/
38
__u64 cpu_in_out;
39
/*
40
* Status code for CPUID read
41
*/
42
__u32 fw_ret_code;
43
__u32 pad;
44
};
45
46
struct apml_mcamsr_msg {
47
/*
48
* MCAMSR input
49
* [0]...[3] mca msr func,
50
* [4][5] thread
51
* MCAMSR output
52
*/
53
__u64 mcamsr_in_out;
54
/*
55
* Status code for MCA/MSR access
56
*/
57
__u32 fw_ret_code;
58
__u32 pad;
59
};
60
61
struct apml_reg_xfer_msg {
62
/*
63
* RMI register address offset
64
*/
65
__u16 reg_addr;
66
/*
67
* Register data for read/write
68
*/
69
__u8 data_in_out;
70
/*
71
* Register read or write
72
*/
73
__u8 rflag;
74
};
75
76
/*
77
* AMD sideband interface base IOCTL
78
*/
79
#define SB_BASE_IOCTL_NR 0xF9
80
81
/**
82
* DOC: SBRMI_IOCTL_MBOX_CMD
83
*
84
* @Parameters
85
*
86
* @struct apml_mbox_msg
87
* Pointer to the &struct apml_mbox_msg that will contain the protocol
88
* information
89
*
90
* @Description
91
* IOCTL command for APML messages using generic _IOWR
92
* The IOCTL provides userspace access to AMD sideband mailbox protocol
93
* - Mailbox message read/write(0x0~0xFF)
94
* - returning "-EFAULT" if none of the above
95
* "-EPROTOTYPE" error is returned to provide additional error details
96
*/
97
#define SBRMI_IOCTL_MBOX_CMD _IOWR(SB_BASE_IOCTL_NR, 0, struct apml_mbox_msg)
98
99
/**
100
* DOC: SBRMI_IOCTL_CPUID_CMD
101
*
102
* @Parameters
103
*
104
* @struct apml_cpuid_msg
105
* Pointer to the &struct apml_cpuid_msg that will contain the protocol
106
* information
107
*
108
* @Description
109
* IOCTL command for APML messages using generic _IOWR
110
* The IOCTL provides userspace access to AMD sideband cpuid protocol
111
* - CPUID protocol to get CPU details for Function/Ext Function
112
* at thread level
113
* - returning "-EFAULT" if none of the above
114
* "-EPROTOTYPE" error is returned to provide additional error details
115
*/
116
#define SBRMI_IOCTL_CPUID_CMD _IOWR(SB_BASE_IOCTL_NR, 1, struct apml_cpuid_msg)
117
118
/**
119
* DOC: SBRMI_IOCTL_MCAMSR_CMD
120
*
121
* @Parameters
122
*
123
* @struct apml_mcamsr_msg
124
* Pointer to the &struct apml_mcamsr_msg that will contain the protocol
125
* information
126
*
127
* @Description
128
* IOCTL command for APML messages using generic _IOWR
129
* The IOCTL provides userspace access to AMD sideband MCAMSR protocol
130
* - MCAMSR protocol to get MCA bank details for Function at thread level
131
* - returning "-EFAULT" if none of the above
132
* "-EPROTOTYPE" error is returned to provide additional error details
133
*/
134
#define SBRMI_IOCTL_MCAMSR_CMD _IOWR(SB_BASE_IOCTL_NR, 2, struct apml_mcamsr_msg)
135
136
/**
137
* DOC: SBRMI_IOCTL_REG_XFER_CMD
138
*
139
* @Parameters
140
*
141
* @struct apml_reg_xfer_msg
142
* Pointer to the &struct apml_reg_xfer_msg that will contain the protocol
143
* information
144
*
145
* @Description
146
* IOCTL command for APML messages using generic _IOWR
147
* The IOCTL provides userspace access to AMD sideband register xfer protocol
148
* - Register xfer protocol to get/set hardware register for given offset
149
*/
150
#define SBRMI_IOCTL_REG_XFER_CMD _IOWR(SB_BASE_IOCTL_NR, 3, struct apml_reg_xfer_msg)
151
152
#endif /*_AMD_APML_H_*/
153
154