1 /* 2 * Copyright � 2014 Intel Corporation 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * copy of this software and associated documentation files (the 6 * "Software"), to deal in the Software without restriction, including 7 * without limitation the rights to use, copy, modify, merge, publish, 8 * distribute, sub license, and/or sell copies of the Software, and to 9 * permit persons to whom the Software is furnished to do so, subject to 10 * the following conditions: 11 * 12 * The above copyright notice and this permission notice (including the 13 * next paragraph) shall be included in all copies or substantial portions 14 * of the Software. 15 * 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 17 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 19 * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR 20 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 * 24 * Authors: 25 * Wei Lin<wei.w.lin@intel.com> 26 * Yuting Yang<yuting.yang@intel.com> 27 */ 28 #include "hw_cmd.h" 29 30 CONST BINDING_TABLE_STATE_G5 g_cInit_BINDING_TABLE_STATE_G5 = { 31 { 32 0, 33 0, 34 0, 35 0} 36 }; 37 38 CONST MI_BATCH_BUFFER_END_CMD_G5 g_cInit_MI_BATCH_BUFFER_END_CMD_G5 = { 39 { 40 MI_BATCH_BUFFER_END, 41 INSTRUCTION_MI} 42 }; 43 44 CONST MI_NOOP_CMD_G5 g_cInit_MI_NOOP_CMD_G5 = { 45 { 46 0, 47 FALSE, 48 MI_NOOP, 49 INSTRUCTION_MI} 50 }; 51 52 CONST PIPELINE_SELECT_CMD_G5 g_cInit_PIPELINE_SELECT_CMD_MEDIA_G575 = { 53 { 54 GFXPIPELINE_MEDIA, 55 GFXSUBOP_PIPELINE_SELECT, 56 GFXOP_NONPIPELINED, 57 PIPE_SINGLE_DWORD, 58 INSTRUCTION_GFX} 59 }; 60 61 CONST SURFACE_STATE_TOKEN_G75 g_cInit_SURFACE_STATE_TOKEN_G75 = { 62 { 63 OP_LENGTH(SIZE32(SURFACE_STATE_TOKEN_G75)), 64 GFXSUBOP_SURFACE_STATE_TOKEN, 65 GFXOP_PIPELINED, 66 PIPE_3D, 67 INSTRUCTION_GFX, 68 1}, 69 70 { 71 0, 72 0}, 73 74 { 75 0}, 76 77 { 78 0, 79 0, 80 0}, 81 82 { 83 0}, 84 85 { 86 0}, 87 }; 88 89 CONST MEDIA_OBJECT_HEADER_G6 g_cInit_MEDIA_OBJECT_HEADER_G6 = { 90 { 91 OP_LENGTH(SIZE32(MEDIA_OBJECT_FC_CMD_G6)), 92 MEDIASUBOP_MEDIA_OBJECT, 93 MEDIAOP_MEDIA_OBJECT, 94 PIPE_MEDIA, 95 INSTRUCTION_GFX}, 96 97 { 98 0, 99 0}, 100 101 { 102 0, 103 0, 104 0, 105 0, 106 0, 107 0, 108 0}, 109 110 { 111 0}, 112 113 { 114 0, 115 0}, 116 117 { 118 0, 119 0}, 120 }; 121 122 CONST PIPE_CONTROL_CMD_G6 g_cInit_PIPE_CONTROL_CMD_G6 = { 123 { 124 OP_LENGTH(SIZE32(PIPE_CONTROL_CMD_G6)), 125 GFX3DSUBOP_3DCONTROL, 126 GFX3DOP_3DCONTROL, 127 PIPE_3D, 128 INSTRUCTION_GFX}, 129 130 { 131 0, 132 0, 133 0, 134 0, 135 0, 136 0, 137 0, 138 0, 139 0, 140 0, 141 1, 142 0, 143 0, 144 0, 145 0, 146 0, 147 0, 148 0, 149 0, 150 0}, 151 152 { 153 1, 154 0}, 155 156 { 157 0}, 158 159 { 160 0} 161 }; 162 163 CONST MI_LOAD_REGISTER_IMM_CMD_G6 g_cInit_MI_LOAD_REGISTER_IMM_CMD_G6 = { 164 { 165 OP_LENGTH(SIZE32(MI_LOAD_REGISTER_IMM_CMD_G6)), 166 0, 167 MI_LOAD_REGISTER_IMM, 168 INSTRUCTION_MI}, 169 170 { 171 0}, 172 173 { 174 0} 175 }; 176 177 CONST MI_BATCH_BUFFER_START_CMD_G75 g_cInit_MI_BATCH_BUFFER_START_CMD_G75 178 = { 179 { 180 OP_LENGTH(SIZE32(MI_BATCH_BUFFER_START_CMD_G75)), 181 MI_BB_ADDRESS_USE_PPGTT, 182 FALSE, 183 FALSE, 184 FALSE, 185 MI_BB_SECURITY_PRIVILEGED, 186 FALSE, 187 FALSE, 188 FALSE, 189 MI_BATCH_BUFFER_START, 190 INSTRUCTION_MI}, 191 192 { 193 0} 194 }; 195 196 CONST MI_BATCH_BUFFER_START_CMD_G8 g_cInit_MI_BATCH_BUFFER_START_CMD_G8 = { 197 { 198 OP_LENGTH(SIZE32(MI_BATCH_BUFFER_START_CMD_G8)), 199 MI_BB_ADDRESS_USE_PPGTT, 200 FALSE, 201 FALSE, 202 FALSE, 203 FALSE, 204 MI_BATCH_BUFFER_START, 205 INSTRUCTION_MI}, 206 207 { 208 0}, 209 210 { 211 0} 212 }; 213 214 CONST SURFACE_STATE_G6 g_cInit_SURFACE_STATE_G6 = { 215 { 216 FALSE, 217 FALSE, 218 FALSE, 219 FALSE, 220 FALSE, 221 FALSE, 222 GFX3DSTATE_BOUNDARY_NORMAL, 223 GFX3DSTATE_WRITE_ONLY_ON_MISS, 224 GFX3DSTATE_CUBE_REPLICATE, 225 GFX3DSTATE_SURFACE_MIPMAPLAYOUT_BELOW, 226 0, 227 0, 228 FALSE, 229 FALSE, 230 FALSE, 231 FALSE, 232 FALSE, 233 GFX3DSTATE_SURFACEFORMAT_R8_UNORM, 234 GFX3DSTATE_SURFACERETURNFORMAT_FLOAT32, 235 GFX3DSTATE_SURFACETYPE_2D}, 236 237 { 238 0}, 239 240 { 241 0, 242 0, 243 0, 244 0}, 245 246 { 247 GFX3DSTATE_TILEWALK_XMAJOR, 248 FALSE, 249 0, 250 0}, 251 252 { 253 0, 254 0, 255 0, 256 0, 257 0}, 258 259 { 260 0, 261 0, 262 0, 263 0, 264 0, 265 0} 266 }; 267 268 CONST STATE_BASE_ADDRESS_CMD_G6 g_cInit_STATE_BASE_ADDRESS_CMD_G6 = { 269 { 270 OP_LENGTH(SIZE32(STATE_BASE_ADDRESS_CMD_G6)), 271 GFXSUBOP_STATE_BASE_ADDRESS, 272 GFXOP_NONPIPELINED, 273 PIPE_COMMON, 274 INSTRUCTION_GFX}, 275 276 { 277 TRUE, 278 0, 279 0, 280 0, 281 0}, 282 283 { 284 TRUE, 285 0, 286 0}, 287 288 { 289 TRUE, 290 0, 291 0}, 292 293 { 294 TRUE, 295 0, 296 0}, 297 298 { 299 TRUE, 300 0, 301 0}, 302 303 { 304 TRUE, 305 0}, 306 307 { 308 TRUE, 309 0}, 310 311 { 312 TRUE, 313 0x0}, 314 315 { 316 TRUE, 317 0} 318 319 }; 320 321 CONST MEDIA_VFE_STATE_CMD_G6 g_cInit_MEDIA_VFE_STATE_CMD_G6 = { 322 { 323 OP_LENGTH(SIZE32(MEDIA_VFE_STATE_CMD_G6)), 324 MEDIASUBOP_MEDIA_VFE_STATE, 325 GFXOP_PIPELINED, 326 PIPE_MEDIA, 327 INSTRUCTION_GFX}, 328 329 { 330 0, 331 0}, 332 333 { 334 0, 335 MEDIASTATE_MEDIA_MODE, 336 0, 337 FALSE, 338 FALSE, 339 FALSE, 340 0, 341 0}, 342 343 { 344 0}, 345 346 { 347 0, 348 0}, 349 350 { 351 0xFF, 352 0, 353 FALSE}, 354 355 { 356 0xF, 357 0, 358 0, 359 0xF, 360 1, 361 0xF, 362 0xF, 363 0xF}, 364 365 { 366 0xF, 367 1, 368 0, 369 0xE, 370 1, 371 0xE, 372 0xF, 373 0xE} 374 }; 375 376 CONST MEDIA_VFE_STATE_CMD_G8 g_cInit_MEDIA_VFE_STATE_CMD_G8 = { 377 { 378 OP_LENGTH(SIZE32(MEDIA_VFE_STATE_CMD_G8)), 379 MEDIASUBOP_MEDIA_VFE_STATE, 380 GFXOP_PIPELINED, 381 PIPE_MEDIA, 382 INSTRUCTION_GFX}, 383 384 { 385 0, 386 0}, 387 388 { 389 0}, 390 391 { 392 0, 393 MEDIASTATE_MEDIA_MODE, 394 0, 395 FALSE, 396 FALSE, 397 FALSE, 398 0, 399 0}, 400 401 { 402 0}, 403 404 { 405 0, 406 0}, 407 408 { 409 0xFF, 410 0, 411 FALSE}, 412 413 { 414 0xF, 415 0, 416 0, 417 0xF, 418 1, 419 0xF, 420 0xF, 421 0xF}, 422 423 { 424 0xF, 425 1, 426 0, 427 0xE, 428 1, 429 0xE, 430 0xF, 431 0xE} 432 }; 433 434 CONST MEDIA_CURBE_LOAD_CMD_G6 g_cInit_MEDIA_CURBE_LOAD_CMD_G6 = { 435 { 436 OP_LENGTH(SIZE32(MEDIA_CURBE_LOAD_CMD_G6)), 437 MEDIASUBOP_MEDIA_CURBE_LOAD, 438 GFXOP_PIPELINED, 439 PIPE_MEDIA, 440 INSTRUCTION_GFX}, 441 442 { 443 0}, 444 445 { 446 0}, 447 448 { 449 0} 450 }; 451 452 CONST MEDIA_INTERFACE_DESCRIPTOR_LOAD_CMD_G6 453 g_cInit_MEDIA_INTERFACE_DESCRIPTOR_LOAD_CMD_G6 = { 454 { 455 OP_LENGTH(SIZE32(MEDIA_INTERFACE_DESCRIPTOR_LOAD_CMD_G6)), 456 MEDIASUBOP_MEDIA_INTERFACE_DESCRIPTOR_LOAD, 457 GFXOP_PIPELINED, 458 PIPE_MEDIA, 459 INSTRUCTION_GFX}, 460 461 { 462 0}, 463 464 { 465 0}, 466 467 { 468 0} 469 }; 470 471 CONST INTERFACE_DESCRIPTOR_DATA_G6 g_cInit_INTERFACE_DESCRIPTOR_DATA_G6 = { 472 { 473 0}, 474 475 { 476 0, 477 0, 478 0, 479 0, 480 0, 481 0, 482 }, 483 484 { 485 0, 486 0}, 487 488 { 489 0, 490 0}, 491 492 { 493 0, 494 0}, 495 496 { 497 0, 498 0, 499 0, 500 FALSE, 501 0, 502 0}, 503 504 { 505 0, 506 0}, 507 508 { 509 0} 510 }; 511 512 CONST INTERFACE_DESCRIPTOR_DATA_G8 g_cInit_INTERFACE_DESCRIPTOR_DATA_G8 = { 513 { 514 0}, 515 516 { 517 0}, 518 519 { 520 0, 521 0, 522 0, 523 0, 524 0, 525 0, 526 0, 527 }, 528 529 { 530 0, 531 0}, 532 533 { 534 0, 535 0}, 536 537 { 538 0, 539 0}, 540 541 { 542 1, 543 0, 544 0, 545 FALSE, 546 0, 547 }, 548 549 { 550 0} 551 }; 552 553 CONST MEDIA_OBJECT_WALKER_CMD_G6 g_cInit_MEDIA_OBJECT_WALKER_CMD_G6 = { 554 { 555 OP_LENGTH(SIZE32(MEDIA_OBJECT_WALKER_CMD_G6)), 556 MEDIASUBOP_MEDIA_OBJECT_WALKER, 557 GFXOP_NONPIPELINED, 558 PIPE_MEDIA, 559 INSTRUCTION_GFX}, 560 561 { 562 0, 563 0}, 564 565 { 566 0, 567 0, 568 0, 569 0}, 570 571 { 572 0}, 573 574 { 575 0}, 576 577 { 578 0, 579 0}, 580 581 { 582 0, 583 0, 584 0, 585 0, 586 0, 587 0, 588 0}, 589 590 { 591 0, 592 0}, 593 594 { 595 0, 596 0}, 597 598 { 599 0, 600 0}, 601 602 { 603 0, 604 0}, 605 606 { 607 0, 608 0}, 609 610 { 611 0, 612 0}, 613 614 { 615 0, 616 0}, 617 618 { 619 0, 620 0}, 621 622 { 623 0, 624 0}, 625 626 { 627 0, 628 0} 629 }; 630 631 CONST GPGPU_WALKER_CMD_G75 g_cInit_GPGPU_WALKER_CMD_G75 = { 632 { 633 OP_LENGTH(SIZE32(GPGPU_WALKER_CMD_G75)), 634 0, 635 0, 636 MEDIASUBOP_GPGPU_WALKER, 637 GFXOP_NONPIPELINED, 638 PIPE_MEDIA, 639 INSTRUCTION_GFX}, 640 641 { 642 0, 643 0}, 644 645 { 646 0, 647 0, 648 0, 649 2}, 650 651 { 652 0}, 653 654 { 655 0}, 656 657 { 658 0}, 659 660 { 661 0}, 662 663 { 664 0}, 665 666 { 667 0}, 668 669 { 670 0xffffffff}, 671 672 { 673 0xffffffff}, 674 }; 675 676 CONST GPGPU_WALKER_CMD_G8 g_cInit_GPGPU_WALKER_CMD_G8 = { 677 { 678 OP_LENGTH(SIZE32(GPGPU_WALKER_CMD_G8)), 679 0, 680 0, 681 MEDIASUBOP_GPGPU_WALKER, 682 GFXOP_NONPIPELINED, 683 PIPE_MEDIA, 684 INSTRUCTION_GFX}, 685 686 { 687 0, 688 0}, 689 690 { 691 0}, 692 693 { 694 0}, 695 696 { 697 0, 698 0, 699 0, 700 2}, 701 702 { 703 0}, 704 705 { 706 0}, 707 708 { 709 0}, 710 711 { 712 0}, 713 714 { 715 0}, 716 717 { 718 0}, 719 720 { 721 0}, 722 723 { 724 0}, 725 726 { 727 0xffffffff}, 728 729 { 730 0xffffffff}, 731 }; 732 733 CONST PIPE_CONTROL_CMD_G7 g_cInit_PIPE_CONTROL_CMD_G7 = { 734 { 735 OP_LENGTH(SIZE32(PIPE_CONTROL_CMD_G7)), 736 GFX3DSUBOP_3DCONTROL, 737 GFX3DOP_3DCONTROL, 738 PIPE_3D, 739 INSTRUCTION_GFX}, 740 741 { 742 0, 743 0, 744 0, 745 0, 746 0, 747 0, 748 0, 749 0, 750 0, 751 0, 752 0, 753 0, 754 1, 755 0, 756 0, 757 0, 758 0, 759 0, 760 0, 761 0, 762 0, 763 0, 764 0, 765 1, 766 0}, 767 768 { 769 0}, 770 771 { 772 0}, 773 774 { 775 0} 776 }; 777 778 CONST PIPE_CONTROL_CMD_G8 g_cInit_PIPE_CONTROL_CMD_G8 = { 779 { 780 OP_LENGTH(SIZE32(PIPE_CONTROL_CMD_G8)), 781 GFX3DSUBOP_3DCONTROL, 782 GFX3DOP_3DCONTROL, 783 PIPE_3D, 784 INSTRUCTION_GFX}, 785 786 { 787 0, 788 0, 789 0, 790 0, 791 0, 792 0, 793 0, 794 0, 795 0, 796 0, 797 0, 798 0, 799 1, 800 0, 801 0, 802 0, 803 0, 804 0, 805 0, 806 0, 807 0, 808 0, 809 0, 810 1, 811 0}, 812 813 { 814 0}, 815 816 { 817 0}, 818 819 { 820 0}, 821 822 { 823 0} 824 }; 825 826 CONST SURFACE_STATE_G7 g_cInit_SURFACE_STATE_G7 = { 827 { 828 FALSE, 829 FALSE, 830 FALSE, 831 FALSE, 832 FALSE, 833 FALSE, 834 GFX3DSTATE_BOUNDARY_NORMAL, 835 GFX3DSTATE_WRITE_ONLY_ON_MISS, 836 1, 837 0, 838 0, 839 GFX3DSTATE_TILEWALK_XMAJOR, 840 FALSE, 841 GFX3DSTATE_SURFACE_HORIZONTAL_ALIGNMENT_4, 842 GFX3DSTATE_SURFACE_VERTICAL_ALIGNMENT_2, 843 GFX3DSTATE_SURFACEFORMAT_R8_UNORM, 844 0, 845 FALSE, 846 GFX3DSTATE_SURFACETYPE_2D}, 847 848 { 849 0}, 850 851 { 852 0, 853 0}, 854 855 { 856 0, 857 0}, 858 859 { 860 0, 861 0, 862 0, 863 0, 864 0, 865 0}, 866 867 { 868 0, 869 0, 870 0, 871 0, 872 0, 873 0, 874 0}, 875 876 { 877 0, 878 0}, 879 880 { 881 0, 882 SCS_ALPHA, 883 SCS_BLUE, 884 SCS_GREEN, 885 SCS_RED, 886 0, 887 0, 888 0, 889 0} 890 }; 891 892 CONST BINDING_TABLE_STATE_G8 g_cInit_BINDING_TABLE_STATE_G8 = { 893 { 894 0, 895 0, 896 0, 897 0} 898 }; 899 900 CONST SURFACE_STATE_G8 g_cInit_SURFACE_STATE_G8 = { 901 { 902 FALSE, 903 FALSE, 904 FALSE, 905 FALSE, 906 FALSE, 907 FALSE, 908 GFX3DSTATE_BOUNDARY_NORMAL, 909 GFX3DSTATE_WRITE_ONLY_ON_MISS, 910 0, 911 0, 912 0, 913 1, 914 1, 915 GFX3DSTATE_SURFACEFORMAT_R8_UNORM, 916 0, 917 GFX3DSTATE_SURFACETYPE_2D}, 918 919 { 920 0, 921 0x20}, 922 923 { 924 0, 925 0}, 926 927 { 928 0, 929 0}, 930 931 { 932 0}, 933 934 { 935 0, 936 0, 937 0, 938 0, 939 0}, 940 941 { 942 0, 943 }, 944 945 { 946 0, 947 SCS_ALPHA, 948 SCS_BLUE, 949 SCS_GREEN, 950 SCS_RED, 951 0, 952 0, 953 0, 954 0}, 955 956 { 957 0}, 958 959 { 960 0}, 961 962 { 963 0}, 964 965 { 966 0}, 967 968 { 969 0}, 970 971 { 972 0, 973 0, 974 0}, 975 }; 976 977 CONST STATE_BASE_ADDRESS_CMD_G75 g_cInit_STATE_BASE_ADDRESS_CMD_G75 = { 978 { 979 OP_LENGTH(SIZE32(STATE_BASE_ADDRESS_CMD_G75)), 980 GFXSUBOP_STATE_BASE_ADDRESS, 981 GFXOP_NONPIPELINED, 982 PIPE_COMMON, 983 INSTRUCTION_GFX}, 984 985 { 986 TRUE, 987 0, 988 0, 989 0}, 990 991 { 992 FALSE, 993 0, 994 0}, 995 996 { 997 TRUE, 998 0, 999 0}, 1000 1001 { 1002 TRUE, 1003 0, 1004 0}, 1005 1006 { 1007 TRUE, 1008 0, 1009 0}, 1010 1011 { 1012 TRUE, 1013 0}, 1014 1015 { 1016 TRUE, 1017 0}, 1018 1019 { 1020 TRUE, 1021 0xFFFFF}, 1022 1023 { 1024 TRUE, 1025 0}, 1026 1027 { 1028 FALSE, 1029 0}, 1030 1031 { 1032 FALSE, 1033 0} 1034 }; 1035 1036 CONST STATE_BASE_ADDRESS_CMD_G8 g_cInit_STATE_BASE_ADDRESS_CMD_G8 = { 1037 { 1038 OP_LENGTH(SIZE32(STATE_BASE_ADDRESS_CMD_G8)), 1039 GFXSUBOP_STATE_BASE_ADDRESS, 1040 GFXOP_NONPIPELINED, 1041 PIPE_COMMON, 1042 INSTRUCTION_GFX}, 1043 1044 { 1045 TRUE, 1046 0, 1047 0}, 1048 1049 { 1050 0, 1051 }, 1052 1053 { 1054 0, 1055 0}, 1056 1057 { 1058 FALSE, 1059 0, 1060 0}, 1061 1062 { 1063 0}, 1064 1065 { 1066 TRUE, 1067 0, 1068 0}, 1069 1070 { 1071 0}, 1072 1073 { 1074 TRUE, 1075 0, 1076 0}, 1077 1078 { 1079 0}, 1080 1081 { 1082 TRUE, 1083 0, 1084 0}, 1085 1086 { 1087 0}, 1088 1089 { 1090 TRUE, 1091 0}, 1092 1093 { 1094 TRUE, 1095 0}, 1096 1097 { 1098 TRUE, 1099 0}, 1100 1101 { 1102 TRUE, 1103 0}, 1104 }; 1105 1106 CONST MI_SET_PREDICATE_CMD_G75 g_cInit_MI_SET_PREDICATE_CMD_G75 = { 1107 { 1108 0, 1109 MI_SET_PREDICATE, 1110 INSTRUCTION_MI} 1111 }; 1112 1113 CONST MEDIA_STATE_FLUSH_CMD_G75 g_cInit_MEDIA_STATE_FLUSH_CMD_G75 = { 1114 { 1115 OP_LENGTH(SIZE32(MEDIA_STATE_FLUSH_CMD_G75)), 1116 MEDIASUBOP_MEDIA_STATE_FLUSH, 1117 GFXOP_PIPELINED, 1118 PIPE_MEDIA, 1119 INSTRUCTION_GFX}, 1120 1121 { 1122 0, 1123 0, 1124 0, 1125 0, 1126 } 1127 }; 1128 1129 const STATE_SIP_CMD_G8 g_cInit_STATE_SIP_CMD_G8 = 1130 { 1131 { 1132 OP_LENGTH(SIZE32(STATE_SIP_CMD_G8)), // Length 1133 GFXSUBOP_STATE_SIP, // InstructionSubOpcode 1134 GFXOP_NONPIPELINED, // InstructionOpcode 1135 PIPE_COMMON, // InstructionPipeline 1136 INSTRUCTION_GFX // InstructionType 1137 }, 1138 { 1139 0 // SystemInstructionPointer 1140 }, 1141 { 1142 0 // SystemInstructionPointer64 1143 } 1144 }; 1145