rjw | 6c1fd8f | 2022-11-30 14:33:01 +0800 | [diff] [blame] | 1 | /***************************************************************************** |
| 2 | * Copyright Statement: |
| 3 | * -------------------- |
| 4 | * This software is protected by Copyright and the information contained |
| 5 | * herein is confidential. The software may not be copied and the information |
| 6 | * contained herein may not be used or disclosed except with the written |
| 7 | * permission of MediaTek Inc. (C) 2005 |
| 8 | * |
| 9 | * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES |
| 10 | * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE") |
| 11 | * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON |
| 12 | * AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES, |
| 13 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF |
| 14 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT. |
| 15 | * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE |
| 16 | * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR |
| 17 | * SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH |
| 18 | * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO |
| 19 | * NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S |
| 20 | * SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM. |
| 21 | * |
| 22 | * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE |
| 23 | * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE, |
| 24 | * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE, |
| 25 | * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO |
| 26 | * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. |
| 27 | * |
| 28 | * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE |
| 29 | * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF |
| 30 | * LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND |
| 31 | * RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER |
| 32 | * THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC). |
| 33 | * |
| 34 | *****************************************************************************/ |
| 35 | |
| 36 | /***************************************************************************** |
| 37 | * |
| 38 | * Filename: |
| 39 | * --------- |
| 40 | * cc_ex_item.h |
| 41 | * |
| 42 | * Description: |
| 43 | * ------------ |
| 44 | * Header file for cross core exception handling |
| 45 | * |
| 46 | * |
| 47 | * Author: |
| 48 | * ------- |
| 49 | * ------- |
| 50 | * |
| 51 | *============================================================================ |
| 52 | * HISTORY |
| 53 | * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!! |
| 54 | *------------------------------------------------------------------------------ |
| 55 | * removed! |
| 56 | * removed! |
| 57 | * removed! |
| 58 | * |
| 59 | * removed! |
| 60 | * removed! |
| 61 | * removed! |
| 62 | * |
| 63 | * removed! |
| 64 | * removed! |
| 65 | * removed! |
| 66 | * removed! |
| 67 | * removed! |
| 68 | * removed! |
| 69 | * removed! |
| 70 | * removed! |
| 71 | * removed! |
| 72 | * removed! |
| 73 | * removed! |
| 74 | * removed! |
| 75 | * |
| 76 | * removed! |
| 77 | * removed! |
| 78 | * removed! |
| 79 | * |
| 80 | * removed! |
| 81 | * removed! |
| 82 | * removed! |
| 83 | * removed! |
| 84 | * |
| 85 | * removed! |
| 86 | * removed! |
| 87 | * |
| 88 | * removed! |
| 89 | * |
| 90 | * removed! |
| 91 | * removed! |
| 92 | * |
| 93 | * removed! |
| 94 | * removed! |
| 95 | * removed! |
| 96 | * |
| 97 | * removed! |
| 98 | * removed! |
| 99 | * removed! |
| 100 | * removed! |
| 101 | * |
| 102 | * removed! |
| 103 | * removed! |
| 104 | * removed! |
| 105 | * removed! |
| 106 | * removed! |
| 107 | * removed! |
| 108 | * |
| 109 | * removed! |
| 110 | * |
| 111 | * removed! |
| 112 | * |
| 113 | * removed! |
| 114 | * removed! |
| 115 | * removed! |
| 116 | * |
| 117 | * removed! |
| 118 | * removed! |
| 119 | * removed! |
| 120 | * |
| 121 | * removed! |
| 122 | * removed! |
| 123 | * removed! |
| 124 | * |
| 125 | * removed! |
| 126 | * removed! |
| 127 | * removed! |
| 128 | * |
| 129 | * removed! |
| 130 | * removed! |
| 131 | * removed! |
| 132 | * |
| 133 | * removed! |
| 134 | * removed! |
| 135 | * removed! |
| 136 | * removed! |
| 137 | * removed! |
| 138 | * removed! |
| 139 | * removed! |
| 140 | * |
| 141 | * removed! |
| 142 | * removed! |
| 143 | * removed! |
| 144 | * |
| 145 | * removed! |
| 146 | * removed! |
| 147 | * removed! |
| 148 | * |
| 149 | * removed! |
| 150 | * removed! |
| 151 | * removed! |
| 152 | * removed! |
| 153 | * removed! |
| 154 | * removed! |
| 155 | * removed! |
| 156 | * removed! |
| 157 | * removed! |
| 158 | * removed! |
| 159 | * |
| 160 | * removed! |
| 161 | * removed! |
| 162 | * removed! |
| 163 | * |
| 164 | * removed! |
| 165 | * removed! |
| 166 | * |
| 167 | * removed! |
| 168 | * removed! |
| 169 | * |
| 170 | * removed! |
| 171 | * |
| 172 | * removed! |
| 173 | * removed! |
| 174 | * removed! |
| 175 | * |
| 176 | * removed! |
| 177 | * removed! |
| 178 | * removed! |
| 179 | * |
| 180 | * removed! |
| 181 | * removed! |
| 182 | * removed! |
| 183 | * |
| 184 | * removed! |
| 185 | * removed! |
| 186 | * removed! |
| 187 | * |
| 188 | * removed! |
| 189 | * removed! |
| 190 | * removed! |
| 191 | * removed! |
| 192 | * removed! |
| 193 | * removed! |
| 194 | * removed! |
| 195 | * |
| 196 | * removed! |
| 197 | * removed! |
| 198 | * |
| 199 | * removed! |
| 200 | * |
| 201 | * removed! |
| 202 | * removed! |
| 203 | * |
| 204 | * removed! |
| 205 | * |
| 206 | * removed! |
| 207 | * removed! |
| 208 | * removed! |
| 209 | * |
| 210 | * removed! |
| 211 | * removed! |
| 212 | * |
| 213 | * removed! |
| 214 | * removed! |
| 215 | * |
| 216 | * removed! |
| 217 | * removed! |
| 218 | * |
| 219 | * removed! |
| 220 | * removed! |
| 221 | * removed! |
| 222 | * |
| 223 | * removed! |
| 224 | * removed! |
| 225 | * removed! |
| 226 | * |
| 227 | * removed! |
| 228 | * removed! |
| 229 | * removed! |
| 230 | * |
| 231 | * removed! |
| 232 | * removed! |
| 233 | * removed! |
| 234 | * |
| 235 | * removed! |
| 236 | * removed! |
| 237 | * removed! |
| 238 | * |
| 239 | * removed! |
| 240 | * removed! |
| 241 | * removed! |
| 242 | * |
| 243 | * removed! |
| 244 | * removed! |
| 245 | * removed! |
| 246 | * |
| 247 | * removed! |
| 248 | * removed! |
| 249 | * |
| 250 | * removed! |
| 251 | * |
| 252 | * removed! |
| 253 | * removed! |
| 254 | * removed! |
| 255 | * |
| 256 | * removed! |
| 257 | * removed! |
| 258 | * |
| 259 | * removed! |
| 260 | * |
| 261 | * removed! |
| 262 | * removed! |
| 263 | * removed! |
| 264 | * |
| 265 | * removed! |
| 266 | * removed! |
| 267 | * removed! |
| 268 | * |
| 269 | * removed! |
| 270 | * removed! |
| 271 | * |
| 272 | * removed! |
| 273 | * |
| 274 | * removed! |
| 275 | * removed! |
| 276 | * removed! |
| 277 | * |
| 278 | * removed! |
| 279 | * removed! |
| 280 | * |
| 281 | * removed! |
| 282 | * |
| 283 | * removed! |
| 284 | * removed! |
| 285 | * removed! |
| 286 | * |
| 287 | * removed! |
| 288 | * removed! |
| 289 | * |
| 290 | * removed! |
| 291 | * |
| 292 | * removed! |
| 293 | * removed! |
| 294 | * removed! |
| 295 | * |
| 296 | * removed! |
| 297 | * removed! |
| 298 | * removed! |
| 299 | * |
| 300 | * removed! |
| 301 | * removed! |
| 302 | * removed! |
| 303 | * |
| 304 | * removed! |
| 305 | * removed! |
| 306 | * removed! |
| 307 | * |
| 308 | * removed! |
| 309 | * removed! |
| 310 | * |
| 311 | * removed! |
| 312 | * |
| 313 | * removed! |
| 314 | * removed! |
| 315 | * removed! |
| 316 | * |
| 317 | * removed! |
| 318 | * removed! |
| 319 | * removed! |
| 320 | * |
| 321 | * removed! |
| 322 | * removed! |
| 323 | * removed! |
| 324 | * |
| 325 | * removed! |
| 326 | * removed! |
| 327 | * removed! |
| 328 | * |
| 329 | * removed! |
| 330 | * removed! |
| 331 | * removed! |
| 332 | * |
| 333 | * removed! |
| 334 | * removed! |
| 335 | * removed! |
| 336 | * |
| 337 | * removed! |
| 338 | * removed! |
| 339 | * removed! |
| 340 | * |
| 341 | * removed! |
| 342 | * removed! |
| 343 | * removed! |
| 344 | * |
| 345 | * removed! |
| 346 | * removed! |
| 347 | * removed! |
| 348 | * removed! |
| 349 | * removed! |
| 350 | * |
| 351 | * removed! |
| 352 | * removed! |
| 353 | * removed! |
| 354 | * |
| 355 | * removed! |
| 356 | * removed! |
| 357 | * removed! |
| 358 | * |
| 359 | * removed! |
| 360 | * removed! |
| 361 | * removed! |
| 362 | * |
| 363 | * removed! |
| 364 | * removed! |
| 365 | * removed! |
| 366 | * |
| 367 | * removed! |
| 368 | * removed! |
| 369 | * removed! |
| 370 | * |
| 371 | * removed! |
| 372 | * removed! |
| 373 | * removed! |
| 374 | * |
| 375 | * |
| 376 | * removed! |
| 377 | * removed! |
| 378 | * removed! |
| 379 | * |
| 380 | *------------------------------------------------------------------------------ |
| 381 | * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! |
| 382 | *============================================================================ |
| 383 | ****************************************************************************/ |
| 384 | |
| 385 | #ifndef _CC_EX_ITEM_H |
| 386 | #define _CC_EX_ITEM_H |
| 387 | |
| 388 | #if !defined(__OFFLINE_EX_LOG_PARSER__) |
| 389 | #include "kal_general_types.h" |
| 390 | #include "kal_public_defs.h" |
| 391 | #include "kal_internal_def.h" |
| 392 | #include "DVFS_drv_public.h" |
| 393 | #else |
| 394 | //NOTE: for exLogAnalyzer.exe only. Copy it here to avoid including DVFS_drv_public |
| 395 | #define DVFS_DUMP_NUM 48 /* Note: This number should also sync to EE owner.(Kari Suvanto) */ |
| 396 | #endif /* __OFFLINE_EX_LOG_PARSER__ */ |
| 397 | #include "ex_item.h" |
| 398 | #include "ex_public.h" |
| 399 | #include "us_excep_hdlr_format.h" |
| 400 | #include "md32_excep_hdlr.h" |
| 401 | #include "vc_excep_hdlr_format.h" |
| 402 | #if defined(__MD97__) || defined(__MD97P__) |
| 403 | #include "ex_cs_excep_hdlr_format.h" |
| 404 | #endif |
| 405 | #include "busmpu.h" |
| 406 | #include "drv_pcmon.h" |
| 407 | #include "mpu_public.h" |
| 408 | #include "sst_defs.h" |
| 409 | |
| 410 | /******************************************************************************* |
| 411 | * Compiler Option Definition |
| 412 | *******************************************************************************/ |
| 413 | |
| 414 | |
| 415 | /******************************************************************************* |
| 416 | * Constant Definition - ex record overview |
| 417 | *******************************************************************************/ |
| 418 | /* total: EX_CC_LOG_SIZE */ |
| 419 | /*************************** |
| 420 | * overview * =EX_CC_OVERVIEW_SIZE |
| 421 | |
| 422 | **************************** mcu main info total: EX_CORE_MAIN_SIZE |
| 423 | * exlog * =EX_CORE_SIZE |
| 424 | |
| 425 | **************************** us total: EX_USIP_SCQ_CORE_SIZE |
| 426 | * us hs status * =EX_USIP_HS_STATUS_SIZE |
| 427 | * us exlog * =EX_USIP_SCQ_CORE_SIZE |
| 428 | |
| 429 | **************************** md32 total: EX_MD32_CORE_SIZE |
| 430 | * md32 hs status * =EX_MD32_HS_STATUS_SIZE |
| 431 | * md32 exlog * =EX_MD32_CORE_SIZE |
| 432 | |
| 433 | **************************** sonic total: EX_SONIC_CORE_SIZE |
| 434 | * sonic hs status * =EX_SONIC_HS_STATUS_SIZE |
| 435 | * sonic exlog * =EX_SONIC_CORE_SIZE |
| 436 | |
| 437 | **************************** mcu minor info total: EX_CORE_MINOR_SIZE |
| 438 | * nested exlog * =EX_NESTED_LOG_SIZE |
| 439 | * pcmon * =EX_PCMON_SIZE |
| 440 | * nested pcmon * =EX_NESTED_PCMON_SIZE |
| 441 | * bus err * =EX_BUS_ERR_SIZE |
| 442 | * dsm info * =EX_DSM_SIZE |
| 443 | * reserved * =EX_MINOR_INFO_RESERVED_SIZE(216) |
| 444 | * step logging * =EX_STEP_LOG_SIZE |
| 445 | |
| 446 | |
| 447 | ****************************/ |
| 448 | // EX_CC_LOG_SIZE (7*1024) //defined in ex_public.h |
| 449 | |
| 450 | #define EX_CC_OVERVIEW_SIZE 640 |
| 451 | #define EX_AFOUND_MSG_SIZE 1024 |
| 452 | |
| 453 | |
| 454 | // EX_LOG_SIZE 2560 //2.5K //defined in ex_public.h - run out |
| 455 | |
| 456 | #define EX_USIP_SCQ_CORE_SIZE (USIP_SCQ16_TOTAL_THREAD_NUM*100) |
| 457 | #define EX_MD32_CORE_SIZE 100 |
| 458 | #if defined(__MD97__) || defined(__MD97P__) |
| 459 | #define EX_SONIC_CORE_SIZE (EX_SONIC_TOTAL_CORE_NUM*100) |
| 460 | #else |
| 461 | #define EX_SONIC_CORE_SIZE 0 |
| 462 | #endif |
| 463 | #define EX_MCU_SYSINFO_SIZE (EX_CC_LOG_SIZE-EX_AFOUND_MSG_SIZE-EX_CC_OVERVIEW_SIZE-EX_LOG_SIZE-EX_USIP_SCQ_CORE_SIZE-EX_MD32_CORE_SIZE-EX_SONIC_CORE_SIZE) |
| 464 | |
| 465 | |
| 466 | #define EX_PCMON_SIZE 64 |
| 467 | #define EX_BUS_ERR_SIZE 16 |
| 468 | //#define EX_STEP_LOG_SIZE (sizeof(EX_STEP_T)*TOTAL_VPE_COUNT) |
| 469 | |
| 470 | #define EX_USIP_HS_STATUS_SIZE sizeof(kal_uint32) |
| 471 | #define EX_MD32_HS_STATUS_SIZE sizeof(kal_uint32) |
| 472 | #if defined(__MD97__) || defined(__MD97P__) |
| 473 | #define EX_SONIC_HS_STATUS_SIZE sizeof(kal_uint32) |
| 474 | #endif |
| 475 | |
| 476 | |
| 477 | #define DSM_STATUS_COUNT 3 |
| 478 | #define EX_PROFILING_SET_COUNT 13 |
| 479 | #define EX_USIP_SCQ_CORE_USED_SIZE (sizeof(USIP_SCQ_EXCEPTION_RECORD_T)+EX_USIP_HS_STATUS_SIZE) |
| 480 | #define EX_MD32_CORE_USED_SIZE (sizeof(MD32_ExceptionLog_T) +EX_MD32_HS_STATUS_SIZE) |
| 481 | #if defined(__MD97__) || defined(__MD97P__) |
| 482 | #define EX_SONIC_CORE_USED_SIZE (sizeof(EX_SONIC_EXCEPTION_RECORD_T)+EX_SONIC_HS_STATUS_SIZE) |
| 483 | #endif |
| 484 | |
| 485 | |
| 486 | /************************* * SYNC TIME ***************************************/ |
| 487 | #define EX_OFFENDING_VPE_MORE_SYNC_TIME (200000) // 0.2s |
| 488 | #define EX_SYNC_DSP_FLOW_TIME (5000000) // 5s |
| 489 | #define EX_INT_SYNC_TIME (5000000) // 5s |
| 490 | #define EX_US_SYNC_TIME (2000000) // 2s |
| 491 | #define EX_MD32_SYNC_TIME (1000000) // 1s |
| 492 | #if defined(__MD97__) || defined(__MD97P__) |
| 493 | #define EX_SONIC_SYNC_TIME (2000000) // 2s |
| 494 | #endif |
| 495 | #define EX_SAP_SYNC_TIME (4000000) // 4s |
| 496 | #define EX_OP_SYNC_TIME (1000000) // 1s |
| 497 | /******************************************************************************* |
| 498 | * Enum Type Definition |
| 499 | *******************************************************************************/ |
| 500 | |
| 501 | typedef enum ex_core_t |
| 502 | { |
| 503 | EX_MCU = 0, |
| 504 | EX_USIP0_0, |
| 505 | EX_USIP0_1, |
| 506 | EX_USIP1_0, |
| 507 | EX_USIP1_1, |
| 508 | EX_SCQ_0, |
| 509 | EX_SCQ_1, |
| 510 | #if defined(__MD97__) || defined(__MD97P__) |
| 511 | EX_SCQ_2, |
| 512 | EX_SCQ_3, |
| 513 | #endif |
| 514 | EX_RAKE, |
| 515 | #if defined(__MD97__) || defined(__MD97P__) |
| 516 | EX_SONIC_M0, |
| 517 | EX_SONIC_V0, |
| 518 | #endif |
| 519 | EX_CORE_AMOUNT, |
| 520 | } EX_CORE_T; |
| 521 | |
| 522 | typedef enum ex_coretype_t |
| 523 | { |
| 524 | EX_CORETYPE_MCU = 0, |
| 525 | EX_CORETYPE_USIP_SCQ, |
| 526 | EX_CORETYPE_MD32, |
| 527 | #if defined(__MD97__) || defined(__MD97P__) |
| 528 | EX_CORETYPE_SONIC |
| 529 | #endif |
| 530 | #if !defined(__OFFLINE_EX_LOG_PARSER__) && !defined(_MSC_VER) |
| 531 | } EX_CORETYPE_T; |
| 532 | #else |
| 533 | } EX_CORETYPE_T_FORMAT; |
| 534 | typedef kal_uint8 EX_CORETYPE_T; |
| 535 | #endif /*__OFFLINE_EX_LOG_PARSER__*/ |
| 536 | |
| 537 | |
| 538 | |
| 539 | #if !defined(__OFFLINE_EX_LOG_PARSER__) |
| 540 | typedef enum ex_flowstep_t |
| 541 | { |
| 542 | /*mcu*/ |
| 543 | EX_FLOWSTEP_INIT_BEGIN = 0, |
| 544 | EX_FLOWSTEP_INIT_DONE, |
| 545 | EX_FLOWSTEP_MAINREASON_INIT_DONE, |
| 546 | EX_FLOWSTEP_COMM_DONE, |
| 547 | EX_FLOWSTEP_PROCESS_DONE, |
| 548 | EX_FLOWSTEP_REBOOT_DONE, |
| 549 | /*dsp*/ |
| 550 | EX_FLOWSTEP_DSPINIT_BEGIN, |
| 551 | EX_FLOWSTEP_USIPINIT_DONE, |
| 552 | EX_FLOWSTEP_MD32INIT_DONE, |
| 553 | #if defined(__MD97__) || defined(__MD97P__) |
| 554 | EX_FLOWSTEP_SONICINIT_DONE, |
| 555 | #endif |
| 556 | EX_FLOWSTEP_DSPINIT_DONE, |
| 557 | /*stophw*/ |
| 558 | EX_FLOWSTEP_STOPHW_BEGIN, |
| 559 | EX_FLOWSTEP_STOPHW_DONE, |
| 560 | EX_FLOWSTEP_END = EX_PROFILING_SET_COUNT, /*15*/ |
| 561 | #if !defined(_MSC_VER) |
| 562 | } EX_FLOWSTEP_T; |
| 563 | #else |
| 564 | } EX_FLOWSTEP_T_; |
| 565 | typedef kal_uint8 EX_FLOWSTEP_T; |
| 566 | #endif |
| 567 | |
| 568 | |
| 569 | typedef enum ex_sync |
| 570 | { |
| 571 | NEVER_SYNCED = 0, |
| 572 | SYNC_SUCCESS = 1, |
| 573 | SYNC_FAIL = 2, |
| 574 | NO_NEED_TO_SYNC = 3, |
| 575 | NESTED_SYNC = 4, |
| 576 | } EX_SYNC; |
| 577 | |
| 578 | #else |
| 579 | #include "ex_item_types.h" |
| 580 | #endif /*__OFFLINE_EX_LOG_PARSER__*/ |
| 581 | |
| 582 | typedef enum ex_thin_modem_sync_pattern |
| 583 | { |
| 584 | THIN_MODEM_EX_HS_AP_ENTER = 0xAAAAAAAA, |
| 585 | THIN_MODEM_EX_HS_AP_DONE = 0xBBBBBBBB, |
| 586 | THIN_MODEM_EX_HS_MD_ENTER = 0xCCCCCCCC, |
| 587 | THIN_MODEM_EX_HS_MD_DONE = 0xDDDDDDDD |
| 588 | } EX_THIN_MODEM_SYNC_PATTERN; |
| 589 | |
| 590 | |
| 591 | #if defined(__MTK_TARGET__) || defined(__OFFLINE_EX_LOG_PARSER__) || defined(KAL_ON_OSCAR) |
| 592 | /******************************************************************************* |
| 593 | * Data Structure Definition |
| 594 | *******************************************************************************/ |
| 595 | PRAGMA_BEGIN_PACK_STRUCT |
| 596 | /***************************** +Debug Structure+ *******************************/ |
| 597 | |
| 598 | typedef struct _ex_brief_assertfail_t |
| 599 | { |
| 600 | kal_char filepath[EX_ASSERTFAIL_FILEPATH_LEN]; /* length: 256 */ |
| 601 | kal_uint32 linenumber; /* length: 4 */ |
| 602 | kal_uint32 parameters[3]; /* length: 12 */ |
| 603 | kal_uint32 lr; /* length: 4 */ |
| 604 | } EX_BRIEF_ASSERTFAIL_T; |
| 605 | |
| 606 | typedef struct _ex_brief_fatalerr_t |
| 607 | { |
| 608 | kal_uint32 code1; |
| 609 | kal_uint32 code2; |
| 610 | kal_uint32 code3; |
| 611 | kal_char offender[EX_FATALERR_ANALYSIS_OWNER_LEN]; |
| 612 | kal_bool is_cadefa_supported; |
| 613 | kal_bool is_filename_supported; |
| 614 | kal_uint8 error_section; |
| 615 | kal_uint8 is_valid_dispatch_arg; |
| 616 | kal_uint8 pad[4]; |
| 617 | kal_uint32 error_status; |
| 618 | kal_uint32 error_sp; |
| 619 | kal_uint32 error_pc; |
| 620 | kal_uint32 error_lr; |
| 621 | kal_uint32 error_address; |
| 622 | kal_uint32 error_cause; |
| 623 | kal_char filename[sizeof(EX_BRIEF_ASSERTFAIL_T) - 52]; |
| 624 | } EX_BRIEF_FATALERR_T; |
| 625 | |
| 626 | typedef union |
| 627 | { |
| 628 | EX_BRIEF_FATALERR_T fatalerr; |
| 629 | EX_BRIEF_ASSERTFAIL_T assert; |
| 630 | } EX_MAINCONTENT_T; |
| 631 | |
| 632 | typedef struct _ex_brief_maininfo_t |
| 633 | { |
| 634 | kal_uint16 ex_type; /* offset: 0x, length: 2 */ |
| 635 | EX_CORETYPE_T ex_type_format; //0=mcu, 1=usip|scq, 2=md32, 3=sonic |
| 636 | EX_MAINCONTENT_TYPE_T maincontent_type; //0=assert, 1=fatal |
| 637 | kal_uint8 elm_status; |
| 638 | kal_uint8 system_info1; //ex_offending_vpe_id |
| 639 | kal_uint8 system_info2; //ex_offending_tc_id |
| 640 | kal_uint8 pad; |
| 641 | EX_MAINCONTENT_T content; |
| 642 | } EX_BRIEF_MAININFO_T; |
| 643 | |
| 644 | typedef struct ex_step_t_s |
| 645 | { |
| 646 | volatile kal_uint32 step; |
| 647 | volatile kal_uint32 timestamp; |
| 648 | }EX_STEP_T; |
| 649 | |
| 650 | #define EX_MD32_CORE_NUM 1 |
| 651 | #define EX_USIP_CORE_NUM (USIP_CORE_NUMBER*USIP_THREAD_NUMBER)// 4 |
| 652 | #define EX_SCQ_CORE_NUM (SCQ16_MAXIMUM_NUM) // 2 or 4 |
| 653 | #if defined(__MD97__) || defined(__MD97P__) |
| 654 | # define EX_SONIC_CORE_NUM (EX_SONIC_TOTAL_CORE_NUM)// 2 |
| 655 | # define EX_SONIC_OFFENDING_CORE_SIZE (sizeof(kal_uint8)) |
| 656 | #else |
| 657 | # define EX_SONIC_CORE_NUM (0) |
| 658 | # define EX_SONIC_OFFENDING_CORE_SIZE (0) |
| 659 | #endif |
| 660 | #define EX_CORE_NUM (1+EX_USIP_CORE_NUM+EX_SCQ_CORE_NUM+EX_MD32_CORE_NUM+EX_SONIC_CORE_NUM) //mcu+usip*N+scq*N+RAKE+sonic*N |
| 661 | #define EX_CORE_NAME_MAX_SIZE 11 |
| 662 | typedef struct _ex_main_reason_t |
| 663 | { |
| 664 | kal_char core_name[EX_CORE_NAME_MAX_SIZE]; |
| 665 | kal_bool is_offender; |
| 666 | } EX_MAIN_REASON_T; |
| 667 | |
| 668 | #define EX_OVERVIEW_PAD_COMPENSATE_SIZE (\ |
| 669 | /*sizeof(overview_verno)*/sizeof(kal_uint32) + \ |
| 670 | /*sizeof(core_num)*/sizeof(kal_uint32) + \ |
| 671 | /*sizeof(main_reason)*/sizeof(EX_MAIN_REASON_T)* EX_CORE_NUM +\ |
| 672 | /*sizeof(info)*/sizeof(EX_BRIEF_MAININFO_T) +\ |
| 673 | /*sizeof(mips_vpe_num)*/sizeof(kal_uint32) + \ |
| 674 | /*sizeof(ex_steplog)*/sizeof(EX_STEP_T)* TOTAL_VPE_COUNT +\ |
| 675 | /*sizeof(ect_status)*/sizeof(kal_uint32) + \ |
| 676 | /*sizeof(afound_buffer_offset)*/sizeof(kal_uint32)+ \ |
| 677 | /*sizeof(afound_buffer_size)*/sizeof(kal_uint32) + \ |
| 678 | /*sizeof(usip_scq_offending_core)*/sizeof(kal_uint8) + \ |
| 679 | /*sizeof(sonic_offending_core)*/EX_SONIC_OFFENDING_CORE_SIZE + \ |
| 680 | /*sizeof(mcu_exception_count)*/sizeof(kal_uint8)* TOTAL_VPE_COUNT + \ |
| 681 | /*sizeof(core_offset)*/sizeof(kal_uint32)* EX_CORE_NUM \ |
| 682 | ) |
| 683 | |
| 684 | typedef struct _ex_overview_t |
| 685 | { |
| 686 | kal_uint32 overview_verno; // 4 |
| 687 | kal_uint32 core_num; // 4 //EX_CORE_NUM |
| 688 | EX_MAIN_REASON_T main_reason[EX_CORE_NUM]; // 96 = 12*EX_CORE_NUM |
| 689 | EX_BRIEF_MAININFO_T info; // 284 |
| 690 | kal_uint32 mips_vpe_num; // 4 |
| 691 | volatile EX_STEP_T ex_steplog[TOTAL_VPE_COUNT]; // 48 = 8*6 |
| 692 | kal_uint32 ect_status; // 4 //offending vpe |
| 693 | kal_uint32 afound_buffer_offset; |
| 694 | kal_uint32 afound_buffer_size; |
| 695 | kal_uint8 usip_scq_offending_core; // 1 usip+scq |
| 696 | #if defined(__MD97__) || defined(__MD97P__) |
| 697 | kal_uint8 sonic_offending_core; // 1 |
| 698 | #endif |
| 699 | kal_uint8 mcu_exception_count[TOTAL_VPE_COUNT]; // 6 |
| 700 | kal_uint8 pad[EX_CC_OVERVIEW_SIZE-EX_OVERVIEW_PAD_COMPENSATE_SIZE]; // 97:29 = 512-(4+4+96+284+4+48+4+1+6+32), before 97: 29 = 512-(4+4+96+284+4+48+4+1+6+32) |
| 701 | kal_uint32 core_offset[EX_CORE_NUM]; // 32 = 4*8 |
| 702 | } EX_OVERVIEW_T; |
| 703 | |
| 704 | typedef struct ex_dsm_status_t_s |
| 705 | { |
| 706 | kal_uint32 DSM_load_label; |
| 707 | kal_uint32 DSM_init_label; |
| 708 | kal_uint32 DSM_loading_label; |
| 709 | kal_uint32 DSM_unloading_label; |
| 710 | }EX_DSM_T; |
| 711 | |
| 712 | typedef struct _ex_mculog_t |
| 713 | { |
| 714 | EX_LOG_T ex_log; |
| 715 | } EX_MCULOG_T; |
| 716 | |
| 717 | typedef struct _ex_usiplog_t |
| 718 | { |
| 719 | volatile kal_uint32 ex_hs; |
| 720 | USIP_SCQ_EXCEPTION_RECORD_T ex_log; |
| 721 | kal_uint32 pad[(EX_USIP_SCQ_CORE_SIZE - EX_USIP_SCQ_CORE_USED_SIZE)/ sizeof(kal_uint32)]; |
| 722 | } EX_USLOG_T; |
| 723 | |
| 724 | typedef struct _ex_md32log_t |
| 725 | { |
| 726 | volatile kal_uint32 ex_hs; |
| 727 | MD32_ExceptionLog_T ex_log; |
| 728 | #if !defined(__OFFLINE_EX_LOG_PARSER__) && !defined(_MSC_VER) //NOTE: this pad is currently zero sized and visual studio cannot handle it |
| 729 | kal_uint32 pad[(EX_MD32_CORE_SIZE - EX_MD32_CORE_USED_SIZE)/ sizeof(kal_uint32)]; |
| 730 | #endif |
| 731 | } EX_MD32LOG_T; |
| 732 | |
| 733 | #if defined(__MD97__) || defined(__MD97P__) |
| 734 | typedef struct _ex_soniclog_t |
| 735 | { |
| 736 | volatile kal_uint32 ex_hs; |
| 737 | EX_SONIC_EXCEPTION_RECORD_T ex_log; |
| 738 | #if !defined(__OFFLINE_EX_LOG_PARSER__) && !defined(_MSC_VER) //NOTE: this pad is currently zero sized and visual studio cannot handle it |
| 739 | kal_uint32 pad[(EX_SONIC_CORE_SIZE - EX_SONIC_CORE_USED_SIZE)/ sizeof(kal_uint32)]; |
| 740 | #endif |
| 741 | } EX_SONICLOG_T; |
| 742 | #endif |
| 743 | |
| 744 | typedef struct _ex_busmpu_t |
| 745 | { |
| 746 | busmpu_iocu_vio_data ex_busmpu_iocu_err; |
| 747 | busmpu_irq_status ex_busmpu_irq_sts; |
| 748 | #if defined(EMIMPU_MD2AP_INFODUMP_ENABLE) |
| 749 | emimpu_vio_info ex_emimpu_vio_dump; |
| 750 | #else |
| 751 | kal_uint32 reserved[8]; //to keep struct size same |
| 752 | #endif |
| 753 | } EX_BUSMPU_T; |
| 754 | |
| 755 | #define PLL_INFO_NUM 48 |
| 756 | |
| 757 | #define EX_MCU_SYSINFO_USED_SIZE ( \ |
| 758 | sizeof(kal_uint32)*(EX_PROFILING_SET_COUNT) + \ |
| 759 | sizeof(kal_uint32)*3 + \ |
| 760 | sizeof(kal_uint32)*TOTAL_VPE_COUNT*2 + \ |
| 761 | sizeof(EX_DSM_T) + \ |
| 762 | sizeof(EX_NE_LOG_T) + \ |
| 763 | sizeof(PDAMON_EX_RAW_T) + \ |
| 764 | sizeof(PDAMON_NEX_RAW_T) + \ |
| 765 | EX_BUS_ERR_SIZE + \ |
| 766 | sizeof(EX_BUSMPU_T) + \ |
| 767 | sizeof(kal_uint32)*(PLL_INFO_NUM) + \ |
| 768 | sizeof(kal_uint32)*(DVFS_DUMP_NUM) + \ |
| 769 | (sizeof(_MPU_REG)*NBR_CORE)) |
| 770 | |
| 771 | typedef struct _ex_mcu_sysinfo_t |
| 772 | { |
| 773 | kal_uint32 ex_profiling_timestamp[EX_PROFILING_SET_COUNT]; |
| 774 | kal_uint32 ex_GLBTS; |
| 775 | kal_uint32 ex_sst_dc_offshoot_vpeid; |
| 776 | kal_uint32 ex_sst_hw_offshoot_vpeid; |
| 777 | kal_uint32 ex_ISR_Executing[TOTAL_VPE_COUNT]; //GSAL_GE_ISR_Executing |
| 778 | kal_uint32 ex_ect_status[TOTAL_VPE_COUNT]; |
| 779 | EX_DSM_T ex_dsm_status; |
| 780 | EX_NE_LOG_T ex_nested_log; |
| 781 | PDAMON_EX_RAW_T ex_pcmon; |
| 782 | PDAMON_NEX_RAW_T ex_nested_pcmon; |
| 783 | kal_uint32 ex_buserr[EX_BUS_ERR_SIZE / sizeof(kal_uint32)]; |
| 784 | EX_BUSMPU_T ex_busmpuerr; |
| 785 | kal_uint32 ex_pll_info[PLL_INFO_NUM]; |
| 786 | kal_uint32 ex_DVFS_data[DVFS_DUMP_NUM]; |
| 787 | _MPU_REG ex_mpu[NBR_CORE]; |
| 788 | kal_uint32 pad[(EX_MCU_SYSINFO_SIZE - EX_MCU_SYSINFO_USED_SIZE)/ sizeof(kal_uint32)]; |
| 789 | } EX_MCU_SYSINFO_T; |
| 790 | |
| 791 | |
| 792 | typedef struct ex_fulllog_t |
| 793 | { |
| 794 | EX_OVERVIEW_T overview; |
| 795 | char afound[EX_AFOUND_MSG_SIZE]; |
| 796 | EX_MCULOG_T mcu; |
| 797 | EX_USLOG_T usip_scq; |
| 798 | EX_MD32LOG_T md32; |
| 799 | #if defined(__MD97__) || defined(__MD97P__) |
| 800 | EX_SONICLOG_T sonic; |
| 801 | #endif |
| 802 | EX_MCU_SYSINFO_T mcu_sysinfo; |
| 803 | } EX_FULLLOG_T; |
| 804 | |
| 805 | typedef struct ex_dump_comm_t |
| 806 | { |
| 807 | volatile kal_uint32 addr; |
| 808 | volatile kal_uint32 len; |
| 809 | volatile kal_uint32 op; |
| 810 | } EX_DUMP_COMM_T; |
| 811 | |
| 812 | |
| 813 | /***************************** -Debug Structure- *******************************/ |
| 814 | PRAGMA_END_PACK_STRUCT |
| 815 | #endif /* __MTK_TARGET__ */ |
| 816 | /******************************************************************************* |
| 817 | * Global Definition |
| 818 | *******************************************************************************/ |
| 819 | |
| 820 | /******************************************************************************* |
| 821 | * Globally Exported variables |
| 822 | *******************************************************************************/ |
| 823 | #if defined(__MTK_TARGET__) |
| 824 | extern EX_FULLLOG_T *ex_fulllog_ptr; |
| 825 | extern EX_LOG_T *ex_log_ptr; // for OfflineSST |
| 826 | extern USIP_SCQ_EXCEPTION_RECORD_T *usip_scq_ex_log_ptr; |
| 827 | extern MD32_ExceptionLog_T *md32_ex_log_ptr; |
| 828 | extern char *afound_ptr; |
| 829 | #if defined(__MD97__) || defined(__MD97P__) |
| 830 | extern EX_SONIC_EXCEPTION_RECORD_T *sonic_ex_log_ptr; |
| 831 | #endif |
| 832 | extern EX_NE_LOG_T *ex_nested_log_ptr; |
| 833 | extern PDAMON_EX_RAW_T *ex_pcmon_ptr; |
| 834 | extern PDAMON_NEX_RAW_T *ex_nested_pcmon_ptr; |
| 835 | extern kal_uint32 *ex_buserr_ptr; |
| 836 | extern EX_DSM_T *ex_dsm_ptr; |
| 837 | extern EX_BUSMPU_T *ex_busmpuerr_ptr; |
| 838 | extern kal_uint32 *ex_pll_info_ptr; |
| 839 | extern kal_uint32 *ex_DVFS_data; |
| 840 | extern _MPU_REG *ex_mpu_ptr; |
| 841 | extern volatile kal_uint32 *ex_steplog_ptr; |
| 842 | extern volatile kal_uint32 *ex_md32_hs_ptr; |
| 843 | #if defined(__MD97__) || defined(__MD97P__) |
| 844 | extern volatile kal_uint32 *ex_sonic_hs_ptr; |
| 845 | #endif |
| 846 | #endif /* __MTK_TARGET__ */ |
| 847 | /******************************************************************************* |
| 848 | * Globally Exported functions |
| 849 | *******************************************************************************/ |
| 850 | extern kal_bool INT_IsEXT_CC_COMMDone(); |
| 851 | extern kal_bool SST_HandleDumpRegion(kal_uint32 **address, kal_uint32* length, kal_uint32* option); |
| 852 | extern kal_uint32 ex_get_step_logging(kal_uint32 vpe, kal_bool bNested); |
| 853 | extern void ex_unguard_l1core_tcm(); |
| 854 | extern kal_uint32 ex_get_value(kal_uint32* _ptr); |
| 855 | extern void ex_init_overview(); |
| 856 | extern void ex_init_usip(); |
| 857 | extern void ex_wait_init_usip(); |
| 858 | extern void ex_init_md32(); |
| 859 | extern void ex_wait_init_md32(); |
| 860 | #if defined (__HIF_CCCI_SUPPORT__) && defined(__CCCI_PRODUCT_TYPE_THIN_MODEM__) |
| 861 | extern void ex_sync_with_thinmodem_sap(); |
| 862 | #endif |
| 863 | #if defined(__MD97__) || defined(__MD97P__) |
| 864 | extern void ex_init_sonic(); |
| 865 | extern void ex_wait_init_sonic(); |
| 866 | #endif |
| 867 | extern kal_bool ex_is_ap_triggered_cross_core_error(); |
| 868 | extern kal_uint32 ex_GetECTStatus(); |
| 869 | extern void ex_output_usip_log(); |
| 870 | extern void ex_output_md32_log(); |
| 871 | extern void ex_output_sonic_log(); |
| 872 | extern void ex_usip_cadefa(); |
| 873 | extern void ex_md32_cadefa(); |
| 874 | #if defined(__MD97__) || defined(__MD97P__) |
| 875 | extern void ex_sonic_cadefa(); |
| 876 | #endif |
| 877 | extern void ex_detect_dsp_version_mismatched(); |
| 878 | extern void ex_query_cc_ex_reason(kal_uint32 ect_status, kal_char** reason, kal_char* local_sys_info_str, kal_uint32 len); |
| 879 | extern void ex_query_ap_ex_reason(kal_uint32 code1, kal_uint32 code2, kal_char** reason); |
| 880 | extern void ex_ondemand_op(); |
| 881 | extern void ex_init_dc_offshoot(); |
| 882 | extern void ex_init_hw_offshoot(); |
| 883 | extern void ex_init_mcu_sysinfo(); |
| 884 | extern void ex_set_value(kal_uint32* _ptr, kal_uint32 value); |
| 885 | extern kal_uint32 ex_get_value(kal_uint32* _ptr); |
| 886 | #if defined(__MTK_TARGET__) |
| 887 | extern void ex_set_flowstep(EX_FLOWSTEP_T step); |
| 888 | #endif /* __MTK_TARGET__ */ |
| 889 | extern kal_char* ex_get_dsp_build_date_time(EX_CORE_T dsp_core); |
| 890 | extern kal_char* ex_get_usipscq_build_date_time(EX_CORE_T dsp_core); |
| 891 | extern kal_char* ex_get_rake_build_date_time(EX_CORE_T dsp_core); |
| 892 | extern kal_char* ex_get_sonic_build_date_time(EX_CORE_T dsp_core); |
| 893 | #endif /* _CC_EX_ITEM_H */ |
| 894 | |
| 895 | |