blob: ea024258b4ab1af43275dc167477c824a7a7b7cf [file] [log] [blame]
Mona Hossain803c3d92012-11-21 13:33:42 -08001/*
2 * Copyright (c) 2013, The Linux Foundation. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 and
6 * only version 2 as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 */
13
14#ifndef __QSEECOMI_H_
15#define __QSEECOMI_H_
16
17#include <linux/qseecom.h>
18
19enum qseecom_command_scm_resp_type {
20 QSEOS_APP_ID = 0xEE01,
21 QSEOS_LISTENER_ID
22};
23
24enum qseecom_qceos_cmd_id {
25 QSEOS_APP_START_COMMAND = 0x01,
26 QSEOS_APP_SHUTDOWN_COMMAND,
27 QSEOS_APP_LOOKUP_COMMAND,
28 QSEOS_REGISTER_LISTENER,
29 QSEOS_DEREGISTER_LISTENER,
30 QSEOS_CLIENT_SEND_DATA_COMMAND,
31 QSEOS_LISTENER_DATA_RSP_COMMAND,
32 QSEOS_LOAD_EXTERNAL_ELF_COMMAND,
33 QSEOS_UNLOAD_EXTERNAL_ELF_COMMAND,
34 QSEOS_GET_APP_STATE_COMMAND,
35 QSEOS_LOAD_SERV_IMAGE_COMMAND,
36 QSEOS_UNLOAD_SERV_IMAGE_COMMAND,
37 QSEOS_APP_REGION_NOTIFICATION,
38 QSEOS_REGISTER_LOG_BUF_COMMAND,
Hariprasad Dhalinarasimhaadf27a82013-02-11 15:07:59 -080039 QSEE_RPMB_PROVISION_KEY_COMMAND,
40 QSEE_RPMB_ERASE_COMMAND,
Mona Hossain803c3d92012-11-21 13:33:42 -080041 QSEOS_CMD_MAX = 0xEFFFFFFF
42};
43
44enum qseecom_qceos_cmd_status {
45 QSEOS_RESULT_SUCCESS = 0,
46 QSEOS_RESULT_INCOMPLETE,
47 QSEOS_RESULT_FAILURE = 0xFFFFFFFF
48};
49
50__packed struct qsee_apps_region_info_ireq {
51 uint32_t qsee_cmd_id;
52 uint32_t addr;
53 uint32_t size;
54};
55
56__packed struct qseecom_check_app_ireq {
57 uint32_t qsee_cmd_id;
58 char app_name[MAX_APP_NAME_SIZE];
59};
60
61__packed struct qseecom_load_app_ireq {
62 uint32_t qsee_cmd_id;
63 uint32_t mdt_len; /* Length of the mdt file */
64 uint32_t img_len; /* Length of .bxx and .mdt files */
65 uint32_t phy_addr; /* phy addr of the start of image */
66 char app_name[MAX_APP_NAME_SIZE]; /* application name*/
67};
68
69__packed struct qseecom_unload_app_ireq {
70 uint32_t qsee_cmd_id;
71 uint32_t app_id;
72};
73
74__packed struct qseecom_load_lib_image_ireq {
75 uint32_t qsee_cmd_id;
76 uint32_t mdt_len;
77 uint32_t img_len;
78 uint32_t phy_addr;
79};
80
81__packed struct qseecom_unload_lib_image_ireq {
82 uint32_t qsee_cmd_id;
83};
84
85__packed struct qseecom_register_listener_ireq {
86 uint32_t qsee_cmd_id;
87 uint32_t listener_id;
88 void *sb_ptr;
89 uint32_t sb_len;
90};
91
92__packed struct qseecom_unregister_listener_ireq {
93 uint32_t qsee_cmd_id;
94 uint32_t listener_id;
95};
96
97__packed struct qseecom_client_send_data_ireq {
98 uint32_t qsee_cmd_id;
99 uint32_t app_id;
100 void *req_ptr;
101 uint32_t req_len;
102 void *rsp_ptr; /* First 4 bytes should always be the return status */
103 uint32_t rsp_len;
104};
105
106__packed struct qseecom_reg_log_buf_ireq {
107 uint32_t qsee_cmd_id;
108 unsigned long phy_addr;
109 uint32_t len;
110};
111
112/* send_data resp */
113__packed struct qseecom_client_listener_data_irsp {
114 uint32_t qsee_cmd_id;
115 uint32_t listener_id;
Mona Hossain0b3a2792013-02-05 17:38:55 -0800116 uint32_t status;
Mona Hossain803c3d92012-11-21 13:33:42 -0800117};
118
119/*
120 * struct qseecom_command_scm_resp - qseecom response buffer
121 * @cmd_status: value from enum tz_sched_cmd_status
122 * @sb_in_rsp_addr: points to physical location of response
123 * buffer
124 * @sb_in_rsp_len: length of command response
125 */
126__packed struct qseecom_command_scm_resp {
127 uint32_t result;
128 enum qseecom_command_scm_resp_type resp_type;
129 unsigned int data;
130};
131
Hariprasad Dhalinarasimhaadf27a82013-02-11 15:07:59 -0800132struct qseecom_rpmb_provision_key {
133 uint32_t key_type;
134};
135
136__packed struct qseecom_client_send_service_ireq {
137 uint32_t qsee_cmd_id;
138 uint32_t key_type; /* in */
139 unsigned int req_len; /* in */
140 void *rsp_ptr; /* in/out */
141 unsigned int rsp_len; /* in/out */
142};
143
144
Mona Hossain803c3d92012-11-21 13:33:42 -0800145#endif /* __QSEECOMI_H_ */