.. | .. |
---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-or-later */ |
---|
1 | 2 | /* |
---|
2 | 3 | * OPAL API definitions. |
---|
3 | 4 | * |
---|
4 | 5 | * Copyright 2011-2015 IBM Corp. |
---|
5 | | - * |
---|
6 | | - * This program is free software; you can redistribute it and/or |
---|
7 | | - * modify it under the terms of the GNU General Public License |
---|
8 | | - * as published by the Free Software Foundation; either version |
---|
9 | | - * 2 of the License, or (at your option) any later version. |
---|
10 | 6 | */ |
---|
11 | 7 | |
---|
12 | 8 | #ifndef __OPAL_API_H |
---|
.. | .. |
---|
186 | 182 | #define OPAL_XIVE_FREE_IRQ 140 |
---|
187 | 183 | #define OPAL_XIVE_SYNC 141 |
---|
188 | 184 | #define OPAL_XIVE_DUMP 142 |
---|
189 | | -#define OPAL_XIVE_RESERVED3 143 |
---|
190 | | -#define OPAL_XIVE_RESERVED4 144 |
---|
| 185 | +#define OPAL_XIVE_GET_QUEUE_STATE 143 |
---|
| 186 | +#define OPAL_XIVE_SET_QUEUE_STATE 144 |
---|
191 | 187 | #define OPAL_SIGNAL_SYSTEM_RESET 145 |
---|
192 | 188 | #define OPAL_NPU_INIT_CONTEXT 146 |
---|
193 | 189 | #define OPAL_NPU_DESTROY_CONTEXT 147 |
---|
.. | .. |
---|
209 | 205 | #define OPAL_SENSOR_GROUP_ENABLE 163 |
---|
210 | 206 | #define OPAL_PCI_GET_PBCQ_TUNNEL_BAR 164 |
---|
211 | 207 | #define OPAL_PCI_SET_PBCQ_TUNNEL_BAR 165 |
---|
| 208 | +#define OPAL_HANDLE_HMI2 166 |
---|
212 | 209 | #define OPAL_NX_COPROC_INIT 167 |
---|
213 | | -#define OPAL_LAST 167 |
---|
| 210 | +#define OPAL_XIVE_GET_VP_STATE 170 |
---|
| 211 | +#define OPAL_MPIPL_UPDATE 173 |
---|
| 212 | +#define OPAL_MPIPL_REGISTER_TAG 174 |
---|
| 213 | +#define OPAL_MPIPL_QUERY_TAG 175 |
---|
| 214 | +#define OPAL_SECVAR_GET 176 |
---|
| 215 | +#define OPAL_SECVAR_GET_NEXT 177 |
---|
| 216 | +#define OPAL_SECVAR_ENQUEUE_UPDATE 178 |
---|
| 217 | +#define OPAL_LAST 178 |
---|
214 | 218 | |
---|
215 | 219 | #define QUIESCE_HOLD 1 /* Spin all calls at entry */ |
---|
216 | 220 | #define QUIESCE_REJECT 2 /* Fail all calls with OPAL_BUSY */ |
---|
.. | .. |
---|
455 | 459 | OPAL_MSG_DPO = 5, |
---|
456 | 460 | OPAL_MSG_PRD = 6, |
---|
457 | 461 | OPAL_MSG_OCC = 7, |
---|
| 462 | + OPAL_MSG_PRD2 = 8, |
---|
458 | 463 | OPAL_MSG_TYPE_MAX, |
---|
459 | 464 | }; |
---|
460 | 465 | |
---|
.. | .. |
---|
566 | 571 | CHECKSTOP_TYPE_UNKNOWN = 0, |
---|
567 | 572 | CHECKSTOP_TYPE_CORE = 1, |
---|
568 | 573 | CHECKSTOP_TYPE_NX = 2, |
---|
| 574 | + CHECKSTOP_TYPE_NPU = 3 |
---|
569 | 575 | }; |
---|
570 | 576 | |
---|
571 | 577 | enum OpalHMI_CoreXstopReason { |
---|
.. | .. |
---|
632 | 638 | } u; |
---|
633 | 639 | } xstop_error; |
---|
634 | 640 | } u; |
---|
| 641 | +}; |
---|
| 642 | + |
---|
| 643 | +/* OPAL_HANDLE_HMI2 out_flags */ |
---|
| 644 | +enum { |
---|
| 645 | + OPAL_HMI_FLAGS_TB_RESYNC = (1ull << 0), /* Timebase has been resynced */ |
---|
| 646 | + OPAL_HMI_FLAGS_DEC_LOST = (1ull << 1), /* DEC lost, needs to be reprogrammed */ |
---|
| 647 | + OPAL_HMI_FLAGS_HDEC_LOST = (1ull << 2), /* HDEC lost, needs to be reprogrammed */ |
---|
| 648 | + OPAL_HMI_FLAGS_TOD_TB_FAIL = (1ull << 3), /* TOD/TB recovery failed. */ |
---|
| 649 | + OPAL_HMI_FLAGS_NEW_EVENT = (1ull << 63), /* An event has been created */ |
---|
635 | 650 | }; |
---|
636 | 651 | |
---|
637 | 652 | enum { |
---|
.. | .. |
---|
1050 | 1065 | enum { |
---|
1051 | 1066 | OPAL_REBOOT_NORMAL = 0, |
---|
1052 | 1067 | OPAL_REBOOT_PLATFORM_ERROR = 1, |
---|
| 1068 | + OPAL_REBOOT_FULL_IPL = 2, |
---|
| 1069 | + OPAL_REBOOT_MPIPL = 3, |
---|
| 1070 | + OPAL_REBOOT_FAST = 4, |
---|
1053 | 1071 | }; |
---|
1054 | 1072 | |
---|
1055 | 1073 | /* Argument to OPAL_PCI_TCE_KILL */ |
---|
.. | .. |
---|
1117 | 1135 | enum { |
---|
1118 | 1136 | OPAL_IMC_COUNTERS_NEST = 1, |
---|
1119 | 1137 | OPAL_IMC_COUNTERS_CORE = 2, |
---|
| 1138 | + OPAL_IMC_COUNTERS_TRACE = 3, |
---|
1120 | 1139 | }; |
---|
1121 | 1140 | |
---|
1122 | 1141 | |
---|
.. | .. |
---|
1125 | 1144 | #define OPAL_PCI_P2P_LOAD 0x2 |
---|
1126 | 1145 | #define OPAL_PCI_P2P_STORE 0x4 |
---|
1127 | 1146 | |
---|
| 1147 | +/* MPIPL update operations */ |
---|
| 1148 | +enum opal_mpipl_ops { |
---|
| 1149 | + OPAL_MPIPL_ADD_RANGE = 0, |
---|
| 1150 | + OPAL_MPIPL_REMOVE_RANGE = 1, |
---|
| 1151 | + OPAL_MPIPL_REMOVE_ALL = 2, |
---|
| 1152 | + OPAL_MPIPL_FREE_PRESERVED_MEMORY = 3, |
---|
| 1153 | +}; |
---|
| 1154 | + |
---|
| 1155 | +/* Tag will point to various metadata area. Kernel will |
---|
| 1156 | + * use tag to get metadata value. |
---|
| 1157 | + */ |
---|
| 1158 | +enum opal_mpipl_tags { |
---|
| 1159 | + OPAL_MPIPL_TAG_CPU = 0, |
---|
| 1160 | + OPAL_MPIPL_TAG_OPAL = 1, |
---|
| 1161 | + OPAL_MPIPL_TAG_KERNEL = 2, |
---|
| 1162 | + OPAL_MPIPL_TAG_BOOT_MEM = 3, |
---|
| 1163 | +}; |
---|
| 1164 | + |
---|
| 1165 | +/* Preserved memory details */ |
---|
| 1166 | +struct opal_mpipl_region { |
---|
| 1167 | + __be64 src; |
---|
| 1168 | + __be64 dest; |
---|
| 1169 | + __be64 size; |
---|
| 1170 | +}; |
---|
| 1171 | + |
---|
| 1172 | +/* Structure version */ |
---|
| 1173 | +#define OPAL_MPIPL_VERSION 0x01 |
---|
| 1174 | + |
---|
| 1175 | +struct opal_mpipl_fadump { |
---|
| 1176 | + u8 version; |
---|
| 1177 | + u8 reserved[7]; |
---|
| 1178 | + __be32 crashing_pir; /* OPAL crashing CPU PIR */ |
---|
| 1179 | + __be32 cpu_data_version; |
---|
| 1180 | + __be32 cpu_data_size; |
---|
| 1181 | + __be32 region_cnt; |
---|
| 1182 | + struct opal_mpipl_region region[]; |
---|
| 1183 | +} __packed; |
---|
| 1184 | + |
---|
1128 | 1185 | #endif /* __ASSEMBLY__ */ |
---|
1129 | 1186 | |
---|
1130 | 1187 | #endif /* __OPAL_API_H */ |
---|