1414 * @return The 32-bit value read from the register.
1515 */
1616static inline uint32_t read_reg (paddr_t addr , paddr_t offset )
17- {
18- return * ((volatile uint32_t * )((paddr_t )(addr + offset )));
19- }
17+ { return * ((volatile uint32_t * )((paddr_t )(addr + offset ))); }
2018
2119/**
2220 * @brief Writes a 32-bit value to a memory-mapped register.
@@ -26,9 +24,7 @@ static inline uint32_t read_reg(paddr_t addr, paddr_t offset)
2624 * @param value The 32-bit value to write.
2725 */
2826static inline void write_reg (paddr_t addr , paddr_t offset , uint32_t value )
29- {
30- * ((volatile uint32_t * )((paddr_t )(addr + offset ))) = value ;
31- }
27+ { * ((volatile uint32_t * )((paddr_t )(addr + offset ))) = value ; }
3228
3329int32_t mbox_k3_sec_proxy_verify_thread (mbox_k3_sec_proxy_desc * sec_proxy_desc , uint8_t thread_id ,
3430 uint8_t msg_drxn )
@@ -41,7 +37,7 @@ int32_t mbox_k3_sec_proxy_verify_thread(mbox_k3_sec_proxy_desc* sec_proxy_desc,
4137 /* check for existing errors */
4238 if (read_reg (thread_rt_base , MBOX_K3_SEC_PROXY_RT_THREAD_STATUS_OFFSET ) &
4339 MBOX_K3_SEC_PROXY_RT_STATUS_ERROR_MASK ) {
44- ERROR ("secure_proxy_thread_%d corrupted" , thread_id );
40+ ERROR ("secure_proxy_thread_%d corrupted\n " , thread_id );
4541 return MBOX_K3_SEC_PROXY_STATUS_CODE_THREAD_CORRUPTED ;
4642 }
4743
@@ -51,10 +47,10 @@ int32_t mbox_k3_sec_proxy_verify_thread(mbox_k3_sec_proxy_desc* sec_proxy_desc,
5147 MBOX_K3_SEC_PROXY_SCFG_THREAD_CTRL_DIR_IDX !=
5248 msg_drxn ) {
5349 if (MBOX_K3_SEC_PROXY_MSG_DRXN_WRITE == msg_drxn ) {
54- ERROR ("secure_proxy_thread_%d cannot READ on WRITE thread" , thread_id );
50+ ERROR ("secure_proxy_thread_%d cannot READ on WRITE thread\n " , thread_id );
5551 return MBOX_K3_SEC_PROXY_STATUS_CODE_INCORRECT_DRXN ;
5652 } else {
57- ERROR ("secure_proxy_thread_%d cannot WRITE on READ thread" , thread_id );
53+ ERROR ("secure_proxy_thread_%d cannot WRITE on READ thread\n " , thread_id );
5854 return MBOX_K3_SEC_PROXY_STATUS_CODE_INCORRECT_DRXN ;
5955 }
6056 }
@@ -68,7 +64,6 @@ int32_t mbox_k3_sec_proxy_verify_thread(mbox_k3_sec_proxy_desc* sec_proxy_desc,
6864 MBOX_K3_SEC_PROXY_RT_STATUS_CUR_CNT_MASK )) {
6965 if ((sysreg_cntpct_el0_read () - tick_start ) >
7066 (sec_proxy_desc -> read_timeout_us * ticks_per_us )) {
71- ERROR ("secure_proxy_thread_%d no entries in message queue" , thread_id );
7267 return MBOX_K3_SEC_PROXY_STATUS_CODE_NO_DATA ;
7368 }
7469 }
@@ -108,7 +103,11 @@ int32_t mbox_k3_sec_proxy_read(mbox_k3_sec_proxy_desc* sec_proxy_desc, uint8_t t
108103 int32_t read_status =
109104 mbox_k3_sec_proxy_verify_thread (sec_proxy_desc , thread_id , MBOX_K3_SEC_PROXY_MSG_DRXN_READ );
110105 if (MBOX_K3_SEC_PROXY_STATUS_CODE_NO_ERROR != read_status ) {
111- ERROR ("secure_proxy_thread_%d thread verif failed" , thread_id );
106+ if (MBOX_K3_SEC_PROXY_STATUS_CODE_NO_DATA == read_status ) {
107+ ERROR ("secure_proxy_thread_%d no entries in message queue\n" , thread_id );
108+ } else {
109+ ERROR ("secure_proxy_thread_%d thread verif failed\n" , thread_id );
110+ }
112111 return read_status ;
113112 }
114113
@@ -143,7 +142,7 @@ int32_t mbox_k3_sec_proxy_read(mbox_k3_sec_proxy_desc* sec_proxy_desc, uint8_t t
143142 read_reg (data_reg , MBOX_K3_SEC_PROXY_DATA_END_OFFSET - MBOX_K3_SEC_PROXY_DATA_START_OFFSET );
144143 }
145144
146- INFO ("secure_proxy_thread_%d data READ success" , thread_id );
145+ INFO ("secure_proxy_thread_%d data READ success\n " , thread_id );
147146
148147 return read_status ;
149148}
@@ -184,13 +183,13 @@ int32_t mbox_k3_sec_proxy_write(mbox_k3_sec_proxy_desc* sec_proxy_desc, uint8_t
184183 int32_t write_status = mbox_k3_sec_proxy_verify_thread (sec_proxy_desc , thread_id ,
185184 MBOX_K3_SEC_PROXY_MSG_DRXN_WRITE );
186185 if (MBOX_K3_SEC_PROXY_STATUS_CODE_NO_ERROR != write_status ) {
187- ERROR ("secure_proxy_thread_%d thread verif failed" , thread_id );
186+ ERROR ("secure_proxy_thread_%d thread verif failed\n " , thread_id );
188187 return write_status ;
189188 }
190189
191190 /* msg len check */
192191 if (len > sec_proxy_desc -> thread_inst .max_msg_size ) {
193- ERROR ("secure_proxy_thread_%d msg len exceeds limit" , thread_id );
192+ ERROR ("secure_proxy_thread_%d msg len exceeds limit\n " , thread_id );
194193 return MBOX_K3_SEC_PROXY_STATUS_CODE_INVALID_MSG_LEN ;
195194 }
196195
@@ -228,7 +227,7 @@ int32_t mbox_k3_sec_proxy_write(mbox_k3_sec_proxy_desc* sec_proxy_desc, uint8_t
228227 write_reg (data_reg , word_iterator ++ * sizeof (uint32_t ), 0U );
229228 }
230229
231- INFO ("secure_proxy_thread_%d data WRITE success" , thread_id );
230+ INFO ("secure_proxy_thread_%d data WRITE success\n " , thread_id );
232231
233232 return write_status ;
234233}
@@ -238,7 +237,7 @@ int32_t mbox_k3_sec_proxy_clear(mbox_k3_sec_proxy_desc* sec_proxy_desc, uint8_t
238237 int32_t clear_status =
239238 mbox_k3_sec_proxy_verify_thread (sec_proxy_desc , thread_id , MBOX_K3_SEC_PROXY_MSG_DRXN_READ );
240239 if (MBOX_K3_SEC_PROXY_STATUS_CODE_NO_ERROR != clear_status ) {
241- ERROR ("secure_proxy_thread_%d thread verif failed" , thread_id );
240+ ERROR ("secure_proxy_thread_%d thread verif failed\n " , thread_id );
242241 return clear_status ;
243242 }
244243
@@ -252,11 +251,11 @@ int32_t mbox_k3_sec_proxy_clear(mbox_k3_sec_proxy_desc* sec_proxy_desc, uint8_t
252251 (read_reg (thread_rt_base , MBOX_K3_SEC_PROXY_RT_THREAD_STATUS_OFFSET ) &
253252 MBOX_K3_SEC_PROXY_RT_STATUS_CUR_CNT_MASK )) {
254253 if (0 == (try_count -- )) {
255- ERROR ("secure_proxy_thread_%d mailbox clear failed" , thread_id );
254+ ERROR ("secure_proxy_thread_%d mailbox clear failed\n " , thread_id );
256255 return MBOX_K3_SEC_PROXY_STATUS_CODE_THREAD_CLEAR_FAILED ;
257256 }
258257
259- WARNING ("secure_proxy_thread_%d mailbox clear in progress" , thread_id );
258+ WARNING ("secure_proxy_thread_%d mailbox clear in progress\n " , thread_id );
260259 read_reg (data_reg , MBOX_K3_SEC_PROXY_DATA_END_OFFSET );
261260 }
262261
@@ -265,28 +264,14 @@ int32_t mbox_k3_sec_proxy_clear(mbox_k3_sec_proxy_desc* sec_proxy_desc, uint8_t
265264
266265int32_t mbox_k3_sec_proxy_probe (mbox_k3_sec_proxy_desc * sec_proxy_desc , uint8_t thread_id )
267266{
268- paddr_t thread_scfg_base =
269- sec_proxy_desc -> thread_inst .scfg_base + MBOX_K3_SEC_PROXY_THREAD_OFFSET (thread_id );
270- uint32_t config = read_reg (thread_scfg_base , MBOX_K3_SEC_PROXY_SCFG_THREAD_CTRL_OFFSET );
271-
272- uint8_t hw_host = (config >> 8 ) & 0xFF ;
273- uint8_t expected_host = sec_proxy_desc -> sec_proxy_thread_desc [thread_id ].host_id ;
274-
275- /* [step-1] verify thread access/host ownership */
276- if (hw_host != expected_host ) {
277- ERROR ("sec_proxy_thread_%d probe failed (hw_host=%d, expected=%d)" , thread_id , hw_host ,
278- expected_host );
279- return MBOX_K3_SEC_PROXY_STATUS_CODE_THREAD_CORRUPTED ;
280- }
281-
282- /* [step-2] verify if thread is clean */
267+ /* verify if thread is clean */
283268 int32_t probe_status = mbox_k3_sec_proxy_verify_thread (sec_proxy_desc , thread_id ,
284269 sec_proxy_desc -> sec_proxy_thread_desc [thread_id ].msg_drxn );
285270
286271 if (MBOX_K3_SEC_PROXY_MSG_DRXN_READ ==
287272 sec_proxy_desc -> sec_proxy_thread_desc [thread_id ].msg_drxn &&
288273 MBOX_K3_SEC_PROXY_STATUS_CODE_NO_ERROR == probe_status ) {
289- ERROR ("secure_proxy_thread_%d probe failed (message queue not clean)" , thread_id );
274+ ERROR ("secure_proxy_thread_%d probe failed (message queue not clean)\n " , thread_id );
290275 return MBOX_K3_SEC_PROXY_STATUS_CODE_DIRTY_HANDOFF ;
291276 }
292277
@@ -297,11 +282,11 @@ int32_t mbox_k3_sec_proxy_probe(mbox_k3_sec_proxy_desc* sec_proxy_desc, uint8_t
297282 }
298283
299284 if (MBOX_K3_SEC_PROXY_STATUS_CODE_NO_ERROR != probe_status ) {
300- INFO ("sec_proxy_thread_%d probe failed (error_id=%d)" , thread_id , probe_status );
285+ INFO ("sec_proxy_thread_%d probe failed (error_id=%d)\n " , thread_id , probe_status );
301286 return probe_status ;
302287 }
303288
304- INFO ("sec_proxy_thread_%d probe success" , thread_id );
289+ INFO ("sec_proxy_thread_%d probe success\n " , thread_id );
305290 return probe_status ;
306291}
307292
0 commit comments