• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 Institute of Parallel And Distributed Systems (IPADS), Shanghai Jiao Tong University (SJTU)
3  * Licensed under the Mulan PSL v2.
4  * You can use this software according to the terms and conditions of the Mulan PSL v2.
5  * You may obtain a copy of Mulan PSL v2 at:
6  *     http://license.coscl.org.cn/MulanPSL2
7  * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
8  * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
9  * PURPOSE.
10  * See the Mulan PSL v2 for more details.
11  */
12 #pragma once
13 
14 #include <common/types.h>
15 #include <common/tee_uuid.h>
16 
17 #define UUID_LEN              16
18 #define NEVER_USED_LEN        32U
19 #define LOG_ITEM_RESERVED_LEN 1U
20 
21 /* 64 byte head + user log */
22 struct log_item {
23     u8 never_used[NEVER_USED_LEN];
24     u16 magic;
25     u16 reserved0;
26     u32 serial_no;
27     s16 real_len; /* log real len */
28     u16 buffer_len; /* log buffer's len, multiple of 32 bytes */
29     u8 uuid[UUID_LEN];
30     u8 log_source_type;
31     u8 reserved[LOG_ITEM_RESERVED_LEN];
32     u8 log_level;
33     u8 new_line; /* '\n' char, easy viewing log in bbox.bin file */
34     u8 log_buffer[0];
35 };
36 
37 /* --- for log mem --------------------------------- */
38 #define LOG_BUFFER_RESERVED_LEN 11U
39 #define VERSION_INFO_LEN        156U
40 
41 /*
42  * Log's buffer flag info, size: 64 bytes head + 156 bytes's version info.
43  * For filed description:
44  * last_pos : current log's end position, last log's start position.
45  * write_loops: Write cyclically. Init value is 0, when memory is used
46  *              up, the value add 1.
47  */
48 struct log_buffer_flag {
49     u32 reserved0;
50     u32 last_pos;
51     u32 write_loops;
52     u32 log_level;
53     u32 reserved[LOG_BUFFER_RESERVED_LEN];
54     u32 max_len;
55     u8 version_info[VERSION_INFO_LEN];
56 };
57 
58 struct log_buffer {
59     struct log_buffer_flag flag;
60     u8 buffer_start[0];
61 };
62 
63 void enable_tlogger(void);
64 bool is_tlogger_on(void);
65 
66 int tmp_tlogger_init(void);
67 
68 int append_chcore_log(const char *str, size_t len, bool is_kernel);
69 
70 int sys_tee_push_rdr_update_addr(paddr_t addr, size_t size, bool is_cache_mem,
71                                  char *chip_type_buff, size_t buff_len);
72 
73 int sys_debug_rdr_logitem(char *str, size_t str_len);
74