/* * @brief Trigger AEE exception red screen. * @param * dump_flag [in] what info need show in EE. * @return * none. */ void eemcs_aed(unsigned int dump_flag, char *aed_str) { #define AED_STR_LEN (512) int *ex_log_addr = NULL; int ex_log_len = 0; int *md_img_addr = NULL; int md_img_len = 0; int info_str_len = 0; char buff[AED_STR_LEN]; char img_inf[MD_INFO_STR_LEN]=""; eemcs_get_md_info_str(img_inf); info_str_len = strlen(aed_str); info_str_len += strlen(img_inf); if(info_str_len > AED_STR_LEN){ buff[AED_STR_LEN-1] = '\0'; // Cut string length to AED_STR_LEN } snprintf(buff, AED_STR_LEN, "\n%s%s\n", aed_str, img_inf); if(dump_flag & CCCI_AED_DUMP_EX_MEM){ ex_log_addr = (int *)g_except_inst.expt_info_mem; ex_log_len = MD_EX_MEM_SIZE; DBGLOG(EXPT, DBG, ""); DBGLOG(EXPT, DBG, "Dump MD Exception share memory"); eemcs_mem_dump(g_except_inst.expt_info_mem, MD_EX_MEM_SIZE); } #if defined (CONFIG_MTK_AEE_FEATURE) && defined (ENABLE_AEE_MD_EE) aed_md_exception_api(ex_log_addr, ex_log_len, md_img_addr, md_img_len, buff, DB_OPT_FTRACE); #endif }
/* * @brief Trigger AEE exception red screen. * @param * aed_addr [in] address for get exceptiog log and md image. * aed_len [in] exception length. * aed_str [in] exception string show on the red screen. * @return * none. */ void eemcs_aed(char* ex_log_addr, unsigned int ex_log_len, char *aed_str) { #define AED_STR_LEN (512) int *md_img_addr = NULL; int md_img_len = 0; int info_str_len = 0; char buff[AED_STR_LEN]; char img_inf[MD_INFO_STR_LEN]=""; eemcs_get_md_info_str(img_inf); info_str_len = strlen(aed_str); info_str_len += strlen(img_inf); if(info_str_len > AED_STR_LEN){ buff[AED_STR_LEN-1] = '\0'; // Cut string length to AED_STR_LEN } snprintf(buff, AED_STR_LEN, "\n%s%s\n", aed_str, img_inf); #if defined (CONFIG_MTK_AEE_FEATURE) && defined (ENABLE_AEE_MD_EE) DBGLOG(EXPT, DBG, "aed_md_exception"); aed_md_exception((int const *)ex_log_addr, ex_log_len, md_img_addr, md_img_len, buff); #endif }