blob: 3a13af81b670b46f1503b1b32f279cb88b2ffa4d [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,
39 QSEOS_CMD_MAX = 0xEFFFFFFF
40};
41
42enum qseecom_qceos_cmd_status {
43 QSEOS_RESULT_SUCCESS = 0,
44 QSEOS_RESULT_INCOMPLETE,
45 QSEOS_RESULT_FAILURE = 0xFFFFFFFF
46};
47
48__packed struct qsee_apps_region_info_ireq {
49 uint32_t qsee_cmd_id;
50 uint32_t addr;
51 uint32_t size;
52};
53
54__packed struct qseecom_check_app_ireq {
55 uint32_t qsee_cmd_id;
56 char app_name[MAX_APP_NAME_SIZE];
57};
58
59__packed struct qseecom_load_app_ireq {
60 uint32_t qsee_cmd_id;
61 uint32_t mdt_len; /* Length of the mdt file */
62 uint32_t img_len; /* Length of .bxx and .mdt files */
63 uint32_t phy_addr; /* phy addr of the start of image */
64 char app_name[MAX_APP_NAME_SIZE]; /* application name*/
65};
66
67__packed struct qseecom_unload_app_ireq {
68 uint32_t qsee_cmd_id;
69 uint32_t app_id;
70};
71
72__packed struct qseecom_load_lib_image_ireq {
73 uint32_t qsee_cmd_id;
74 uint32_t mdt_len;
75 uint32_t img_len;
76 uint32_t phy_addr;
77};
78
79__packed struct qseecom_unload_lib_image_ireq {
80 uint32_t qsee_cmd_id;
81};
82
83__packed struct qseecom_register_listener_ireq {
84 uint32_t qsee_cmd_id;
85 uint32_t listener_id;
86 void *sb_ptr;
87 uint32_t sb_len;
88};
89
90__packed struct qseecom_unregister_listener_ireq {
91 uint32_t qsee_cmd_id;
92 uint32_t listener_id;
93};
94
95__packed struct qseecom_client_send_data_ireq {
96 uint32_t qsee_cmd_id;
97 uint32_t app_id;
98 void *req_ptr;
99 uint32_t req_len;
100 void *rsp_ptr; /* First 4 bytes should always be the return status */
101 uint32_t rsp_len;
102};
103
104__packed struct qseecom_reg_log_buf_ireq {
105 uint32_t qsee_cmd_id;
106 unsigned long phy_addr;
107 uint32_t len;
108};
109
110/* send_data resp */
111__packed struct qseecom_client_listener_data_irsp {
112 uint32_t qsee_cmd_id;
113 uint32_t listener_id;
Mona Hossain0b3a2792013-02-05 17:38:55 -0800114 uint32_t status;
Mona Hossain803c3d92012-11-21 13:33:42 -0800115};
116
117/*
118 * struct qseecom_command_scm_resp - qseecom response buffer
119 * @cmd_status: value from enum tz_sched_cmd_status
120 * @sb_in_rsp_addr: points to physical location of response
121 * buffer
122 * @sb_in_rsp_len: length of command response
123 */
124__packed struct qseecom_command_scm_resp {
125 uint32_t result;
126 enum qseecom_command_scm_resp_type resp_type;
127 unsigned int data;
128};
129
130#endif /* __QSEECOMI_H_ */