ui_rom_defi_diag.h (14262B)
1 /* 2 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 3 * 4 * Copyright 2007-2020 Broadcom Inc. All rights reserved. 5 */ 6 #ifndef UI_ROM_DEFI_DIAG_INCLUDED 7 /* { */ 8 #define UI_ROM_DEFI_DIAG_INCLUDED 9 /* 10 * General include file for reference design. 11 */ 12 13 #include <appl/diag/dpp/ref_sys.h> 14 15 #include <appl/diag/dpp/ui_defx.h> 16 #include <appl/diag/dpp/utils_defx.h> 17 #ifdef LINK_FAP20V_LIBRARIES 18 #include <appl/diag/dpp/utils_fap20v_tests.h> 19 20 #include <sweep/Fap20v/sweep_fap20v_app.h> 21 #endif /* LINK_FAP20V_LIBRARIES */ 22 23 #include <ui_pure_defi_diag.h> 24 #include <appl/diag/dpp/utils_hw_diagnostics.h> 25 26 27 /* 28 * UI definition{ 29 */ 30 31 /******************************************************** 32 */ 33 EXTERN CONST 34 PARAM_VAL_RULES 35 Diag_revert_data_vals[] 36 #ifdef INIT 37 = 38 { 39 { 40 VAL_SYMBOL, 41 "true", 42 { 43 { 44 UTILS_HW_DIAG_MEM_TEST_REVERT_DATA_YES, 45 (long)" Revert data bits.", 46 (long)NULL 47 } 48 } 49 }, 50 { 51 VAL_SYMBOL, 52 "false", 53 { 54 { 55 UTILS_HW_DIAG_MEM_TEST_REVERT_DATA_NO, 56 /* 57 * Casting added here just to keep the compiler silent. 58 */ 59 (long)" Don't revert data bits.", 60 (long)NULL 61 } 62 } 63 }, 64 { 65 VAL_SYMBOL, 66 "both", 67 { 68 { 69 UTILS_HW_DIAG_MEM_TEST_REVERT_DATA_BOTH, 70 /* 71 * Casting added here just to keep the compiler silent. 72 */ 73 (long)" Run test once without reverted data, and again with reverted data.", 74 (long)NULL 75 } 76 } 77 }, 78 79 /* 80 * Last element. Do not remove. 81 */ 82 { 83 VAL_END_OF_LIST 84 } 85 } 86 #endif 87 ; 88 89 /******************************************************** 90 */ 91 EXTERN CONST 92 PARAM_VAL_RULES 93 Diag_revert_addrs_vals[] 94 #ifdef INIT 95 = 96 { 97 { 98 VAL_SYMBOL, 99 "true", 100 { 101 { 102 UTILS_HW_DIAG_MEM_TEST_REVERT_ADDRS_YES, 103 (long)" Revert address offset bits.", 104 (long)NULL 105 } 106 } 107 }, 108 { 109 VAL_SYMBOL, 110 "false", 111 { 112 { 113 UTILS_HW_DIAG_MEM_TEST_REVERT_ADDRS_NO, 114 /* 115 * Casting added here just to keep the compiler silent. 116 */ 117 (long)" Don't revert address offset bits.", 118 (long)NULL 119 } 120 } 121 }, 122 123 /* 124 * Last element. Do not remove. 125 */ 126 { 127 VAL_END_OF_LIST 128 } 129 } 130 #endif 131 ; 132 133 /******************************************************** 134 */ 135 EXTERN CONST 136 PARAM_VAL_RULES 137 Diag_addrs_alignment_vals[] 138 #ifdef INIT 139 = 140 { 141 { 142 VAL_SYMBOL, 143 "byte", 144 { 145 { 146 UTILS_HW_DIAG_MEM_TEST_ADDRESS_BYTE_ALIGNMENT, 147 (long)" Byte alignment.", 148 (long)NULL 149 } 150 } 151 }, 152 { 153 VAL_SYMBOL, 154 "long", 155 { 156 { 157 UTILS_HW_DIAG_MEM_TEST_ADDRESS_LONG_ALIGNMENT, 158 /* 159 * Casting added here just to keep the compiler silent. 160 */ 161 (long)" Long alignment.", 162 (long)NULL 163 } 164 } 165 }, 166 167 /* 168 * Last element. Do not remove. 169 */ 170 { 171 VAL_END_OF_LIST 172 } 173 } 174 #endif 175 ; 176 177 /******************************************************** 178 */ 179 EXTERN CONST 180 PARAM_VAL_RULES 181 Diag_data_walk_vals[] 182 #ifdef INIT 183 = 184 { 185 { 186 VAL_SYMBOL, 187 "index_walk", 188 { 189 { 190 UTILS_HW_DIAG_MEM_TEST_DATA_TYPE_RUNNING_INDEX, 191 (long)" Index walk: 0,1,2,3... (dec).", 192 (long)NULL 193 } 194 } 195 }, 196 { 197 VAL_SYMBOL, 198 "walking_one", 199 { 200 { 201 UTILS_HW_DIAG_MEM_TEST_DATA_TYPE_WALKING_ONE, 202 /* 203 * Casting added here just to keep the compiler silent. 204 */ 205 (long)" Walking one: 0, 1, 10, 100... (bin).", 206 (long)NULL 207 } 208 } 209 }, 210 { 211 VAL_SYMBOL, 212 "random", 213 { 214 { 215 UTILS_HW_DIAG_MEM_TEST_DATA_TYPE_RANDOM, 216 /* 217 * Casting added here just to keep the compiler silent. 218 */ 219 (long)" Random data", 220 (long)NULL 221 } 222 } 223 }, 224 { 225 VAL_SYMBOL, 226 "sso", 227 { 228 { 229 UTILS_HW_DIAG_MEM_TEST_DATA_TYPE_SSO, 230 /* 231 * Casting added here just to keep the compiler silent. 232 */ 233 (long)" SSO: 1111.., 0000..., 1111..., 0000 ...(bin).", 234 (long)NULL 235 } 236 } 237 }, 238 { 239 VAL_SYMBOL, 240 "cross", 241 { 242 { 243 UTILS_HW_DIAG_MEM_TEST_DATA_TYPE_CROSS_WALK, 244 /* 245 * Casting added here just to keep the compiler silent. 246 */ 247 (long)" Cross walk: 1010.., 0101..., 1010..., 0101...(bin).", 248 (long)NULL 249 } 250 } 251 }, 252 { 253 VAL_SYMBOL, 254 "pattern", 255 { 256 { 257 UTILS_HW_DIAG_MEM_TEST_DATA_TYPE_PATTERN, 258 /* 259 * Casting added here just to keep the compiler silent. 260 */ 261 (long)" Pattern: constant value.", 262 (long)NULL 263 } 264 } 265 }, 266 267 /* 268 * Last element. Do not remove. 269 */ 270 { 271 VAL_END_OF_LIST 272 } 273 } 274 #endif 275 ; 276 277 /******************************************************** 278 */ 279 EXTERN CONST 280 PARAM_VAL_RULES 281 Diag_offset_walk_vals[] 282 #ifdef INIT 283 = 284 { 285 { 286 VAL_SYMBOL, 287 "index_walk", 288 { 289 { 290 UTILS_HW_DIAG_MEM_TEST_ADDR_WALK_TYPE_INC_ONE, 291 (long)" Index walk: 0,1,2,3... (dec).", 292 (long)NULL 293 } 294 } 295 }, 296 { 297 VAL_SYMBOL, 298 "walking_one", 299 { 300 { 301 UTILS_HW_DIAG_MEM_TEST_ADDR_WALK_TYPE_WALKING_ONE, 302 /* 303 * Casting added here just to keep the compiler silent. 304 */ 305 (long)" Walking one: 0, 1, 10, 100... (bin).", 306 (long)NULL 307 } 308 } 309 }, 310 311 /* 312 * Last element. Do not remove. 313 */ 314 { 315 VAL_END_OF_LIST 316 } 317 } 318 #endif 319 ; 320 321 322 323 /******************************************************** 324 */ 325 EXTERN CONST 326 PARAM_VAL 327 Diag_revert_data_value_default 328 #ifdef INIT 329 = 330 { 331 VAL_NUMERIC, 332 UTILS_HW_DIAG_MEM_TEST_REVERT_DATA_NO, 333 { 334 /* 335 * Casting may be required here only to keep the compiler silent. 336 */ 337 (unsigned long)UTILS_HW_DIAG_MEM_TEST_REVERT_DATA_NO 338 } 339 } 340 #endif 341 ; 342 343 /******************************************************** 344 */ 345 EXTERN CONST 346 PARAM_VAL_RULES 347 Diag_empty_vals[] 348 #ifdef INIT 349 = 350 { 351 /* 352 * Last element. Do not remove. 353 */ 354 { 355 VAL_END_OF_LIST 356 } 357 } 358 #endif 359 ; 360 361 /******************************************************** 362 */ 363 EXTERN CONST 364 PARAM_VAL_RULES 365 Diag_free_vals[] 366 #ifdef INIT 367 = 368 { 369 { 370 VAL_NUMERIC,SYMB_NAME_NUMERIC, 371 { 372 { 373 HAS_NO_MIN_VALUE | HAS_NO_MAX_VALUE, 374 0,0, 375 /* 376 * Number of times this value can be repeated (i.e., 377 * value is an array). Must be at least 1! 378 */ 379 1, 380 (VAL_PROC_PTR)NULL 381 } 382 } 383 }, 384 /* 385 * Last element. Do not remove. 386 */ 387 { 388 VAL_END_OF_LIST 389 } 390 } 391 #endif 392 ; 393 394 395 /******************************************************** 396 */ 397 EXTERN CONST 398 PARAM 399 Diag_params[] 400 #ifdef INIT 401 = 402 /* 403 ****** 404 * ENTRY -- 0 405 * BIT(0,1) - MEM 406 * BIT(0) - MEM read 407 * BIT(1) - MEM write 408 * BIT(2) - fpga download 409 * BIT(3,4,5) - flash 410 ****** 411 * ENTRY -- 1 412 *BIT() - . 413 */ 414 { 415 { 416 PARAM_DIAG_HW_ID, 417 "gen_hw", 418 (PARAM_VAL_RULES *)&Diag_empty_vals[0], 419 (sizeof(Diag_empty_vals) / sizeof(Diag_empty_vals[0])) - 1, 420 HAS_NO_DEFAULT | MUST_APPEAR,(PARAM_VAL *)0, 421 0,0,0,0,0,0,0, 422 "Generic HW tests\r\n", 423 "", 424 "", 425 {BIT(0) | BIT(1)}, 426 1, 427 /* 428 * Pointer to a function to call after symbolic parameter 429 * has been accepted. 430 */ 431 (VAL_PROC_PTR)NULL 432 }, 433 { 434 PARAM_DIAG_HW_MEM_ID, 435 "mem_test", 436 (PARAM_VAL_RULES *)&Diag_empty_vals[0], 437 (sizeof(Diag_empty_vals) / sizeof(Diag_empty_vals[0])) - 1, 438 HAS_NO_DEFAULT | MUST_APPEAR,(PARAM_VAL *)0, 439 0,0,0,0,0,0,0, 440 "Test memory space.", 441 "Examples:\r\n" 442 " tevb mem read 0x10\r\n" 443 "NOTE: Do not run memory test on in use memory\r\n", 444 "", 445 {BIT(0) | BIT(1)}, 446 2, 447 /* 448 * Pointer to a function to call after symbolic parameter 449 * has been accepted. 450 */ 451 (VAL_PROC_PTR)NULL 452 }, 453 { 454 PARAM_DIAG_HW_MEM_SET_SPACE_ID, 455 "set_space", 456 (PARAM_VAL_RULES *)&Diag_empty_vals[0], 457 (sizeof(Diag_empty_vals) / sizeof(Diag_empty_vals[0])) - 1, 458 HAS_NO_DEFAULT | MUST_APPEAR,(PARAM_VAL *)0, 459 0,0,0,0,0,0,0, 460 "Set tested memory space (default is CPU space)", 461 "", 462 "", 463 {BIT(0)}, 464 3, 465 /* 466 * Pointer to a function to call after symbolic parameter 467 * has been accepted. 468 */ 469 (VAL_PROC_PTR)NULL 470 }, 471 472 #if LINK_FAP20V_LIBRARIES 473 /* 474 * { 475 */ 476 { 477 PARAM_DIAG_HW_MEM_SPACE_ZBT_ID, 478 "zbt", 479 (PARAM_VAL_RULES *)&Diag_free_vals[0], 480 (sizeof(Diag_free_vals) / sizeof(Diag_free_vals[0])) - 1, 481 HAS_NO_DEFAULT | MUST_APPEAR,(PARAM_VAL *)0, 482 0,0,0,0,0,0,0, 483 "ZBT memory space", 484 "\r\n", 485 "", 486 {BIT(0)}, 487 4, 488 /* 489 * Pointer to a function to call after symbolic parameter 490 * has been accepted. 491 */ 492 (VAL_PROC_PTR)NULL 493 }, 494 { 495 PARAM_DIAG_HW_MEM_SPACE_DRAM_ID, 496 "dram", 497 (PARAM_VAL_RULES *)&Diag_free_vals[0], 498 (sizeof(Diag_free_vals) / sizeof(Diag_free_vals[0])) - 1, 499 HAS_NO_DEFAULT | MUST_APPEAR,(PARAM_VAL *)0, 500 0,0,0,0,0,0,0, 501 "DRAM memory space", 502 "\r\n", 503 "", 504 {BIT(0)}, 505 4, 506 /* 507 * Pointer to a function to call after symbolic parameter 508 * has been accepted. 509 */ 510 (VAL_PROC_PTR)NULL 511 }, 512 /* 513 * } LINK_FAP20V_LIBRARIES 514 */ 515 #endif 516 517 { 518 PARAM_DIAG_HW_MEM_SPACE_CPU_ID, 519 "cpu", 520 (PARAM_VAL_RULES *)&Diag_empty_vals[0], 521 (sizeof(Diag_empty_vals) / sizeof(Diag_empty_vals[0])) - 1, 522 HAS_NO_DEFAULT | MUST_APPEAR,(PARAM_VAL *)0, 523 0,0,0,0,0,0,0, 524 "CPU memory space", 525 "\r\n", 526 "", 527 {BIT(0)}, 528 4, 529 /* 530 * Pointer to a function to call after symbolic parameter 531 * has been accepted. 532 */ 533 (VAL_PROC_PTR)NULL 534 }, 535 { 536 PARAM_DIAG_HW_MEM_BASE_ADDR_ID, 537 "base_addr", 538 (PARAM_VAL_RULES *)&Diag_free_vals[0], 539 (sizeof(Diag_free_vals) / sizeof(Diag_free_vals[0])) - 1, 540 HAS_NO_DEFAULT | MUST_APPEAR,(PARAM_VAL *)0, 541 0,0,0,0,0,0,0, 542 "Base address of tested memory", 543 "\r\n", 544 "", 545 {BIT(1)}, 546 3, 547 /* 548 * Pointer to a function to call after symbolic parameter 549 * has been accepted. 550 */ 551 (VAL_PROC_PTR)NULL 552 }, 553 { 554 PARAM_DIAG_HW_MEM_SIZE_ID, 555 "size", 556 (PARAM_VAL_RULES *)&Diag_free_vals[0], 557 (sizeof(Diag_free_vals) / sizeof(Diag_free_vals[0])) - 1, 558 HAS_NO_DEFAULT | MUST_APPEAR,(PARAM_VAL *)0, 559 0,0,0,0,0,0,0, 560 "Size of tested space in bytes", 561 "\r\n", 562 "", 563 {BIT(1)}, 564 4, 565 /* 566 * Pointer to a function to call after symbolic parameter 567 * has been accepted. 568 */ 569 (VAL_PROC_PTR)NULL 570 }, 571 { 572 PARAM_DIAG_HW_MEM_REVERT_DATA_ID, 573 "revert_data", 574 (PARAM_VAL_RULES *)&Diag_revert_data_vals[0], 575 (sizeof(Diag_revert_data_vals) / sizeof(Diag_revert_data_vals[0])) - 1, 576 HAS_NO_DEFAULT | MAY_NOT_APPEAR,(PARAM_VAL *)0, 577 0,0,0,0,0,0,0, 578 "Revertion of data bits", 579 "\r\n", 580 "", 581 {BIT(1)}, 582 LAST_ORDINAL, 583 /* 584 * Pointer to a function to call after symbolic parameter 585 * has been accepted. 586 */ 587 (VAL_PROC_PTR)NULL 588 }, 589 { 590 PARAM_DIAG_HW_MEM_REVERT_OFFSET_ID, 591 "revert_offset", 592 (PARAM_VAL_RULES *)&Diag_revert_addrs_vals[0], 593 (sizeof(Diag_revert_addrs_vals) / sizeof(Diag_revert_addrs_vals[0])) - 1, 594 HAS_NO_DEFAULT | MAY_NOT_APPEAR,(PARAM_VAL *)0, 595 0,0,0,0,0,0,0, 596 "Revertion of address offset bits", 597 "\r\n", 598 "", 599 {BIT(1)}, 600 LAST_ORDINAL, 601 /* 602 * Pointer to a function to call after symbolic parameter 603 * has been accepted. 604 */ 605 (VAL_PROC_PTR)NULL 606 }, 607 { 608 PARAM_DIAG_HW_MEM_OFFSET_WALK_ID, 609 "offset_walk", 610 (PARAM_VAL_RULES *)&Diag_offset_walk_vals[0], 611 (sizeof(Diag_offset_walk_vals) / sizeof(Diag_offset_walk_vals[0])) - 1, 612 HAS_NO_DEFAULT | MAY_NOT_APPEAR,(PARAM_VAL *)0, 613 0,0,0,0,0,0,0, 614 "Offset walk method (relation between address offset and index in test)", 615 "\r\n", 616 "", 617 {BIT(1)}, 618 LAST_ORDINAL, 619 /* 620 * Pointer to a function to call after symbolic parameter 621 * has been accepted. 622 */ 623 (VAL_PROC_PTR)NULL 624 }, 625 { 626 PARAM_DIAG_HW_MEM_DATA_WALK_ID, 627 "data_walk", 628 (PARAM_VAL_RULES *)&Diag_data_walk_vals[0], 629 (sizeof(Diag_data_walk_vals) / sizeof(Diag_data_walk_vals[0])) - 1, 630 HAS_NO_DEFAULT | MAY_NOT_APPEAR,(PARAM_VAL *)0, 631 0,0,0,0,0,0,0, 632 "Writen data method (relation between data and index in test)", 633 "\r\n", 634 "", 635 {BIT(1)}, 636 LAST_ORDINAL, 637 /* 638 * Pointer to a function to call after symbolic parameter 639 * has been accepted. 640 */ 641 (VAL_PROC_PTR)NULL 642 }, 643 { 644 PARAM_DIAG_HW_MEM_ALIGNMENT_ID, 645 "address_alignment", 646 (PARAM_VAL_RULES *)&Diag_addrs_alignment_vals[0], 647 (sizeof(Diag_addrs_alignment_vals) / sizeof(Diag_addrs_alignment_vals[0])) - 1, 648 HAS_NO_DEFAULT | MAY_NOT_APPEAR,(PARAM_VAL *)0, 649 0,0,0,0,0,0,0, 650 "Address alignment - bytes or longs", 651 "\r\n", 652 "", 653 {BIT(1)}, 654 LAST_ORDINAL, 655 /* 656 * Pointer to a function to call after symbolic parameter 657 * has been accepted. 658 */ 659 (VAL_PROC_PTR)NULL 660 }, 661 { 662 PARAM_DIAG_HW_MEM_PATTERN_ID, 663 "pattern_value", 664 (PARAM_VAL_RULES *)&Diag_free_vals[0], 665 (sizeof(Diag_free_vals) / sizeof(Diag_free_vals[0])) - 1, 666 HAS_NO_DEFAULT | MAY_NOT_APPEAR,(PARAM_VAL *)0, 667 0,0,0,0,0,0,0, 668 "Pattern to use when data type is set to PATTERN", 669 "\r\n", 670 "", 671 {BIT(1)}, 672 LAST_ORDINAL, 673 /* 674 * Pointer to a function to call after symbolic parameter 675 * has been accepted. 676 */ 677 (VAL_PROC_PTR)NULL 678 }, 679 { 680 PARAM_DIAG_VERBOSE_ID, 681 "verbose", 682 (PARAM_VAL_RULES *)&Diag_empty_vals[0], 683 (sizeof(Diag_empty_vals) / sizeof(Diag_empty_vals[0])) - 1, 684 HAS_NO_DEFAULT | MAY_NOT_APPEAR,(PARAM_VAL *)0, 685 0,0,0,0,0,0,0, 686 "Do more printing.", 687 "", 688 "", 689 {BIT(0) | BIT(1) | BIT(2) | BIT(3)}, 690 LAST_ORDINAL, 691 /* 692 * Pointer to a function to call after symbolic parameter 693 * has been accepted. 694 */ 695 (VAL_PROC_PTR)NULL 696 }, 697 698 /* 699 * Last element. Do not remove. 700 */ 701 { 702 PARAM_END_OF_LIST 703 } 704 } 705 #endif 706 ; 707 708 /* 709 * } 710 */ 711 712 713 /* } */ 714 #endif 715 716