aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/firmware/intel/stratix10-smc.h47
-rw-r--r--include/linux/firmware/intel/stratix10-svc-client.h20
2 files changed, 65 insertions, 2 deletions
diff --git a/include/linux/firmware/intel/stratix10-smc.h b/include/linux/firmware/intel/stratix10-smc.h
index a109e4ccbc7e..5be5dab50b13 100644
--- a/include/linux/firmware/intel/stratix10-smc.h
+++ b/include/linux/firmware/intel/stratix10-smc.h
@@ -67,6 +67,12 @@
67 * 67 *
68 * INTEL_SIP_SMC_FPGA_CONFIG_STATUS_ERROR: 68 * INTEL_SIP_SMC_FPGA_CONFIG_STATUS_ERROR:
69 * There is error during the FPGA configuration process. 69 * There is error during the FPGA configuration process.
70 *
71 * INTEL_SIP_SMC_REG_ERROR:
72 * There is error during a read or write operation of the protected registers.
73 *
74 * INTEL_SIP_SMC_RSU_ERROR:
75 * There is error during a remote status update.
70 */ 76 */
71#define INTEL_SIP_SMC_RETURN_UNKNOWN_FUNCTION 0xFFFFFFFF 77#define INTEL_SIP_SMC_RETURN_UNKNOWN_FUNCTION 0xFFFFFFFF
72#define INTEL_SIP_SMC_STATUS_OK 0x0 78#define INTEL_SIP_SMC_STATUS_OK 0x0
@@ -74,6 +80,7 @@
74#define INTEL_SIP_SMC_FPGA_CONFIG_STATUS_REJECTED 0x2 80#define INTEL_SIP_SMC_FPGA_CONFIG_STATUS_REJECTED 0x2
75#define INTEL_SIP_SMC_FPGA_CONFIG_STATUS_ERROR 0x4 81#define INTEL_SIP_SMC_FPGA_CONFIG_STATUS_ERROR 0x4
76#define INTEL_SIP_SMC_REG_ERROR 0x5 82#define INTEL_SIP_SMC_REG_ERROR 0x5
83#define INTEL_SIP_SMC_RSU_ERROR 0x7
77 84
78/** 85/**
79 * Request INTEL_SIP_SMC_FPGA_CONFIG_START 86 * Request INTEL_SIP_SMC_FPGA_CONFIG_START
@@ -262,4 +269,44 @@ INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_FPGA_CONFIG_COMPLETED_WRITE)
262#define INTEL_SIP_SMC_REG_UPDATE \ 269#define INTEL_SIP_SMC_REG_UPDATE \
263 INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_REG_UPDATE) 270 INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_REG_UPDATE)
264 271
272/*
273 * Request INTEL_SIP_SMC_RSU_STATUS
274 *
275 * Request remote status update boot log, call is synchronous.
276 *
277 * Call register usage:
278 * a0 INTEL_SIP_SMC_RSU_STATUS
279 * a1-7 not used
280 *
281 * Return status
282 * a0: Current Image
283 * a1: Last Failing Image
284 * a2: Version | State
285 * a3: Error details | Error location
286 *
287 * Or
288 *
289 * a0: INTEL_SIP_SMC_RSU_ERROR
290 */
291#define INTEL_SIP_SMC_FUNCID_RSU_STATUS 11
292#define INTEL_SIP_SMC_RSU_STATUS \
293 INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_RSU_STATUS)
294
295/*
296 * Request INTEL_SIP_SMC_RSU_UPDATE
297 *
298 * Request to set the offset of the bitstream to boot after reboot, call
299 * is synchronous.
300 *
301 * Call register usage:
302 * a0 INTEL_SIP_SMC_RSU_UPDATE
303 * a1 64bit physical address of the configuration data memory in flash
304 * a2-7 not used
305 *
306 * Return status
307 * a0 INTEL_SIP_SMC_STATUS_OK
308 */
309#define INTEL_SIP_SMC_FUNCID_RSU_UPDATE 12
310#define INTEL_SIP_SMC_RSU_UPDATE \
311 INTEL_SIP_SMC_FAST_CALL_VAL(INTEL_SIP_SMC_FUNCID_RSU_UPDATE)
265#endif 312#endif
diff --git a/include/linux/firmware/intel/stratix10-svc-client.h b/include/linux/firmware/intel/stratix10-svc-client.h
index f2fda7e1ca52..e521f172a47a 100644
--- a/include/linux/firmware/intel/stratix10-svc-client.h
+++ b/include/linux/firmware/intel/stratix10-svc-client.h
@@ -10,8 +10,10 @@
10 * Service layer driver supports client names 10 * Service layer driver supports client names
11 * 11 *
12 * fpga: for FPGA configuration 12 * fpga: for FPGA configuration
13 * rsu: for remote status update
13 */ 14 */
14#define SVC_CLIENT_FPGA "fpga" 15#define SVC_CLIENT_FPGA "fpga"
16#define SVC_CLIENT_RSU "rsu"
15 17
16/** 18/**
17 * Status of the sent command, in bit number 19 * Status of the sent command, in bit number
@@ -36,6 +38,9 @@
36 * 38 *
37 * SVC_COMMAND_STATUS_RECONFIG_ERROR: 39 * SVC_COMMAND_STATUS_RECONFIG_ERROR:
38 * Error encountered during FPGA configuration. 40 * Error encountered during FPGA configuration.
41 *
42 * SVC_STATUS_RSU_OK:
43 * Secure firmware accepts the request of remote status update (RSU).
39 */ 44 */
40#define SVC_STATUS_RECONFIG_REQUEST_OK 0 45#define SVC_STATUS_RECONFIG_REQUEST_OK 0
41#define SVC_STATUS_RECONFIG_BUFFER_SUBMITTED 1 46#define SVC_STATUS_RECONFIG_BUFFER_SUBMITTED 1
@@ -43,7 +48,8 @@
43#define SVC_STATUS_RECONFIG_COMPLETED 3 48#define SVC_STATUS_RECONFIG_COMPLETED 3
44#define SVC_STATUS_RECONFIG_BUSY 4 49#define SVC_STATUS_RECONFIG_BUSY 4
45#define SVC_STATUS_RECONFIG_ERROR 5 50#define SVC_STATUS_RECONFIG_ERROR 5
46 51#define SVC_STATUS_RSU_OK 6
52#define SVC_STATUS_RSU_ERROR 7
47/** 53/**
48 * Flag bit for COMMAND_RECONFIG 54 * Flag bit for COMMAND_RECONFIG
49 * 55 *
@@ -56,9 +62,11 @@
56/** 62/**
57 * Timeout settings for service clients: 63 * Timeout settings for service clients:
58 * timeout value used in Stratix10 FPGA manager driver. 64 * timeout value used in Stratix10 FPGA manager driver.
65 * timeout value used in RSU driver
59 */ 66 */
60#define SVC_RECONFIG_REQUEST_TIMEOUT_MS 100 67#define SVC_RECONFIG_REQUEST_TIMEOUT_MS 100
61#define SVC_RECONFIG_BUFFER_TIMEOUT_MS 240 68#define SVC_RECONFIG_BUFFER_TIMEOUT_MS 240
69#define SVC_RSU_REQUEST_TIMEOUT_MS 300
62 70
63struct stratix10_svc_chan; 71struct stratix10_svc_chan;
64 72
@@ -81,13 +89,21 @@ struct stratix10_svc_chan;
81 * @COMMAND_RECONFIG_STATUS: check the status of the configuration, return 89 * @COMMAND_RECONFIG_STATUS: check the status of the configuration, return
82 * status is SVC_STATUS_RECONFIG_COMPLETED, or SVC_STATUS_RECONFIG_BUSY, or 90 * status is SVC_STATUS_RECONFIG_COMPLETED, or SVC_STATUS_RECONFIG_BUSY, or
83 * SVC_STATUS_RECONFIG_ERROR 91 * SVC_STATUS_RECONFIG_ERROR
92 *
93 * @COMMAND_RSU_STATUS: request remote system update boot log, return status
94 * is log data or SVC_STATUS_RSU_ERROR
95 *
96 * @COMMAND_RSU_UPDATE: set the offset of the bitstream to boot after reboot,
97 * return status is SVC_STATUS_RSU_OK or SVC_STATUS_RSU_ERROR
84 */ 98 */
85enum stratix10_svc_command_code { 99enum stratix10_svc_command_code {
86 COMMAND_NOOP = 0, 100 COMMAND_NOOP = 0,
87 COMMAND_RECONFIG, 101 COMMAND_RECONFIG,
88 COMMAND_RECONFIG_DATA_SUBMIT, 102 COMMAND_RECONFIG_DATA_SUBMIT,
89 COMMAND_RECONFIG_DATA_CLAIM, 103 COMMAND_RECONFIG_DATA_CLAIM,
90 COMMAND_RECONFIG_STATUS 104 COMMAND_RECONFIG_STATUS,
105 COMMAND_RSU_STATUS,
106 COMMAND_RSU_UPDATE
91}; 107};
92 108
93/** 109/**