1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106
|
/*
* Copyright (c) 2003-2012 Broadcom Corporation
* All Rights Reserved
*
* This software is available to you under a choice of one of two
* licenses. You may choose to be licensed under the terms of the GNU
* General Public License (GPL) Version 2, available from the file
* COPYING in the main directory of this source tree, or the Broadcom
* license below:
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY BROADCOM ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL BROADCOM OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/* #define MAC_SPLIT_MODE */
#define MAC_SPACING 0x400
#define XGMAC_SPACING 0x400
/* PE-MCXMAC register and bit field definitions */
#define R_MAC_CONFIG_1 0x00
#define O_MAC_CONFIG_1__srst 31
#define O_MAC_CONFIG_1__simr 30
#define O_MAC_CONFIG_1__hrrmc 18
#define W_MAC_CONFIG_1__hrtmc 2
#define O_MAC_CONFIG_1__hrrfn 16
#define W_MAC_CONFIG_1__hrtfn 2
#define O_MAC_CONFIG_1__intlb 8
#define O_MAC_CONFIG_1__rxfc 5
#define O_MAC_CONFIG_1__txfc 4
#define O_MAC_CONFIG_1__srxen 3
#define O_MAC_CONFIG_1__rxen 2
#define O_MAC_CONFIG_1__stxen 1
#define O_MAC_CONFIG_1__txen 0
#define R_MAC_CONFIG_2 0x01
#define O_MAC_CONFIG_2__prlen 12
#define W_MAC_CONFIG_2__prlen 4
#define O_MAC_CONFIG_2__speed 8
#define W_MAC_CONFIG_2__speed 2
#define O_MAC_CONFIG_2__hugen 5
#define O_MAC_CONFIG_2__flchk 4
#define O_MAC_CONFIG_2__crce 1
#define O_MAC_CONFIG_2__fulld 0
#define R_IPG_IFG 0x02
#define O_IPG_IFG__ipgr1 24
#define W_IPG_IFG__ipgr1 7
#define O_IPG_IFG__ipgr2 16
#define W_IPG_IFG__ipgr2 7
#define O_IPG_IFG__mifg 8
#define W_IPG_IFG__mifg 8
#define O_IPG_IFG__ipgt 0
#define W_IPG_IFG__ipgt 7
#define R_HALF_DUPLEX 0x03
#define O_HALF_DUPLEX__abebt 24
#define W_HALF_DUPLEX__abebt 4
#define O_HALF_DUPLEX__abebe 19
#define O_HALF_DUPLEX__bpnb 18
#define O_HALF_DUPLEX__nobo 17
#define O_HALF_DUPLEX__edxsdfr 16
#define O_HALF_DUPLEX__retry 12
#define W_HALF_DUPLEX__retry 4
#define O_HALF_DUPLEX__lcol 0
#define W_HALF_DUPLEX__lcol 10
#define R_MAXIMUM_FRAME_LENGTH 0x04
#define O_MAXIMUM_FRAME_LENGTH__maxf 0
#define W_MAXIMUM_FRAME_LENGTH__maxf 16
#define R_TEST 0x07
#define O_TEST__mbof 3
#define O_TEST__rthdf 2
#define O_TEST__tpause 1
#define O_TEST__sstct 0
#define R_MII_MGMT_CONFIG 0x08
#define O_MII_MGMT_CONFIG__scinc 5
#define O_MII_MGMT_CONFIG__spre 4
#define O_MII_MGMT_CONFIG__clks 3
#define W_MII_MGMT_CONFIG__clks 3
#define R_MII_MGMT_COMMAND 0x09
#define O_MII_MGMT_COMMAND__scan 1
#define O_MII_MGMT_COMMAND__rstat 0
#define R_MII_MGMT_ADDRESS 0x0A
#define O_MII_MGMT_ADDRESS__fiad 8
#define W_MII_MGMT_ADDRESS__fiad 5
#define O_MII_MGMT_ADDRESS__fgad 5
#define W_MII_MGMT_ADDRESS__fgad 0
#define R_MII_MGMT_WRITE_DATA 0x0B
#define O_MII_MGMT_WRITE_DATA__ctld 0
#define W_MII_MGMT_WRITE_DATA__ctld 16
#define R_MII_MGMT_STATUS 0x0C
#define R_MII_MGMT_INDICATORS 0x0D
#define O_MII_MGMT_INDICATORS__nvalid 2
#define O_MII_MGMT_INDICATORS__scan 1
#define O_MII_MGMT_INDICATORS__busy 0
#define R_INTERFACE_CONTROL 0x0E
#define O_INTERFACE_CONTROL__hrstint 31
#define O_INTERFACE_CONTROL__tbimode 27
#define O_INTERFACE_CONTROL__ghdmode 26
#define O_INTERFACE_CONTROL__lhdmode 25
#define O_INTERFACE_CONTROL__phymod 24
#define O_INTERFACE_CONTROL__hrrmi 23
#define O_INTERFACE_CONTROL__rspd 16
#define O_INTERFACE_CONTROL__hr100 15
#define O_INTERFACE_CONTROL__frcq 10
#define O_INTERFACE_CONTROL__nocfr 9
#define O_INTERFACE_CONTROL__dlfct 8
#define O_INTERFACE_CONTROL__enjab 0
#define R_INTERFACE_STATUS 0x0F
#define O_INTERFACE_STATUS__xsdfr 9
#define O_INTERFACE_STATUS__ssrr 8
#define W_INTERFACE_STATUS__ssrr 5
#define O_INTERFACE_STATUS__miilf 3
#define O_INTERFACE_STATUS__locar 2
#define O_INTERFACE_STATUS__sqerr 1
#define O_INTERFACE_STATUS__jabber 0
#define R_STATION_ADDRESS_LS 0x10
#define R_STATION_ADDRESS_MS 0x11
/* A-XGMAC register and bit field definitions */
#define R_XGMAC_CONFIG_0 0x00
#define O_XGMAC_CONFIG_0__hstmacrst 31
#define O_XGMAC_CONFIG_0__hstrstrctl 23
#define O_XGMAC_CONFIG_0__hstrstrfn 22
#define O_XGMAC_CONFIG_0__hstrsttctl 18
#define O_XGMAC_CONFIG_0__hstrsttfn 17
#define O_XGMAC_CONFIG_0__hstrstmiim 16
#define O_XGMAC_CONFIG_0__hstloopback 8
#define R_XGMAC_CONFIG_1 0x01
#define O_XGMAC_CONFIG_1__hsttctlen 31
#define O_XGMAC_CONFIG_1__hsttfen 30
#define O_XGMAC_CONFIG_1__hstrctlen 29
#define O_XGMAC_CONFIG_1__hstrfen 28
#define O_XGMAC_CONFIG_1__tfen 26
#define O_XGMAC_CONFIG_1__rfen 24
#define O_XGMAC_CONFIG_1__hstrctlshrtp 12
#define O_XGMAC_CONFIG_1__hstdlyfcstx 10
#define W_XGMAC_CONFIG_1__hstdlyfcstx 2
#define O_XGMAC_CONFIG_1__hstdlyfcsrx 8
#define W_XGMAC_CONFIG_1__hstdlyfcsrx 2
#define O_XGMAC_CONFIG_1__hstppen 7
#define O_XGMAC_CONFIG_1__hstbytswp 6
#define O_XGMAC_CONFIG_1__hstdrplt64 5
#define O_XGMAC_CONFIG_1__hstprmscrx 4
#define O_XGMAC_CONFIG_1__hstlenchk 3
#define O_XGMAC_CONFIG_1__hstgenfcs 2
#define O_XGMAC_CONFIG_1__hstpadmode 0
#define W_XGMAC_CONFIG_1__hstpadmode 2
#define R_XGMAC_CONFIG_2 0x02
#define O_XGMAC_CONFIG_2__hsttctlfrcp 31
#define O_XGMAC_CONFIG_2__hstmlnkflth 27
#define O_XGMAC_CONFIG_2__hstalnkflth 26
#define O_XGMAC_CONFIG_2__rflnkflt 24
#define W_XGMAC_CONFIG_2__rflnkflt 2
#define O_XGMAC_CONFIG_2__hstipgextmod 16
#define W_XGMAC_CONFIG_2__hstipgextmod 5
#define O_XGMAC_CONFIG_2__hstrctlfrcp 15
#define O_XGMAC_CONFIG_2__hstipgexten 5
#define O_XGMAC_CONFIG_2__hstmipgext 0
#define W_XGMAC_CONFIG_2__hstmipgext 5
#define R_XGMAC_CONFIG_3 0x03
#define O_XGMAC_CONFIG_3__hstfltrfrm 31
#define W_XGMAC_CONFIG_3__hstfltrfrm 16
#define O_XGMAC_CONFIG_3__hstfltrfrmdc 15
#define W_XGMAC_CONFIG_3__hstfltrfrmdc 16
#define R_XGMAC_STATION_ADDRESS_LS 0x04
#define O_XGMAC_STATION_ADDRESS_LS__hstmacadr0 0
#define W_XGMAC_STATION_ADDRESS_LS__hstmacadr0 32
#define R_XGMAC_STATION_ADDRESS_MS 0x05
#define R_XGMAC_MAX_FRAME_LEN 0x08
#define O_XGMAC_MAX_FRAME_LEN__hstmxfrmwctx 16
#define W_XGMAC_MAX_FRAME_LEN__hstmxfrmwctx 14
#define O_XGMAC_MAX_FRAME_LEN__hstmxfrmbcrx 0
#define W_XGMAC_MAX_FRAME_LEN__hstmxfrmbcrx 16
#define R_XGMAC_REV_LEVEL 0x0B
#define O_XGMAC_REV_LEVEL__revlvl 0
#define W_XGMAC_REV_LEVEL__revlvl 15
#define R_XGMAC_MIIM_COMMAND 0x10
#define O_XGMAC_MIIM_COMMAND__hstldcmd 3
#define O_XGMAC_MIIM_COMMAND__hstmiimcmd 0
#define W_XGMAC_MIIM_COMMAND__hstmiimcmd 3
#define R_XGMAC_MIIM_FILED 0x11
#define O_XGMAC_MIIM_FILED__hststfield 30
#define W_XGMAC_MIIM_FILED__hststfield 2
#define O_XGMAC_MIIM_FILED__hstopfield 28
#define W_XGMAC_MIIM_FILED__hstopfield 2
#define O_XGMAC_MIIM_FILED__hstphyadx 23
#define W_XGMAC_MIIM_FILED__hstphyadx 5
#define O_XGMAC_MIIM_FILED__hstregadx 18
#define W_XGMAC_MIIM_FILED__hstregadx 5
#define O_XGMAC_MIIM_FILED__hsttafield 16
#define W_XGMAC_MIIM_FILED__hsttafield 2
#define O_XGMAC_MIIM_FILED__miimrddat 0
#define W_XGMAC_MIIM_FILED__miimrddat 16
#define R_XGMAC_MIIM_CONFIG 0x12
#define O_XGMAC_MIIM_CONFIG__hstnopram 7
#define O_XGMAC_MIIM_CONFIG__hstclkdiv 0
#define W_XGMAC_MIIM_CONFIG__hstclkdiv 7
#define R_XGMAC_MIIM_LINK_FAIL_VECTOR 0x13
#define O_XGMAC_MIIM_LINK_FAIL_VECTOR__miimlfvec 0
#define W_XGMAC_MIIM_LINK_FAIL_VECTOR__miimlfvec 32
#define R_XGMAC_MIIM_INDICATOR 0x14
#define O_XGMAC_MIIM_INDICATOR__miimphylf 4
#define O_XGMAC_MIIM_INDICATOR__miimmoncplt 3
#define O_XGMAC_MIIM_INDICATOR__miimmonvld 2
#define O_XGMAC_MIIM_INDICATOR__miimmon 1
#define O_XGMAC_MIIM_INDICATOR__miimbusy 0
/* GMAC stats registers */
#define R_RBYT 0x27
#define R_RPKT 0x28
#define R_RFCS 0x29
#define R_RMCA 0x2A
#define R_RBCA 0x2B
#define R_RXCF 0x2C
#define R_RXPF 0x2D
#define R_RXUO 0x2E
#define R_RALN 0x2F
#define R_RFLR 0x30
#define R_RCDE 0x31
#define R_RCSE 0x32
#define R_RUND 0x33
#define R_ROVR 0x34
#define R_TBYT 0x38
#define R_TPKT 0x39
#define R_TMCA 0x3A
#define R_TBCA 0x3B
#define R_TXPF 0x3C
#define R_TDFR 0x3D
#define R_TEDF 0x3E
#define R_TSCL 0x3F
#define R_TMCL 0x40
#define R_TLCL 0x41
#define R_TXCL 0x42
#define R_TNCL 0x43
#define R_TJBR 0x46
#define R_TFCS 0x47
#define R_TXCF 0x48
#define R_TOVR 0x49
#define R_TUND 0x4A
#define R_TFRG 0x4B
/* Glue logic register and bit field definitions */
#define R_MAC_ADDR0 0x50
#define R_MAC_ADDR1 0x52
#define R_MAC_ADDR2 0x54
#define R_MAC_ADDR3 0x56
#define R_MAC_ADDR_MASK2 0x58
#define R_MAC_ADDR_MASK3 0x5A
#define R_MAC_FILTER_CONFIG 0x5C
#define O_MAC_FILTER_CONFIG__BROADCAST_EN 10
#define O_MAC_FILTER_CONFIG__PAUSE_FRAME_EN 9
#define O_MAC_FILTER_CONFIG__ALL_MCAST_EN 8
#define O_MAC_FILTER_CONFIG__ALL_UCAST_EN 7
#define O_MAC_FILTER_CONFIG__HASH_MCAST_EN 6
#define O_MAC_FILTER_CONFIG__HASH_UCAST_EN 5
#define O_MAC_FILTER_CONFIG__ADDR_MATCH_DISC 4
#define O_MAC_FILTER_CONFIG__MAC_ADDR3_VALID 3
#define O_MAC_FILTER_CONFIG__MAC_ADDR2_VALID 2
#define O_MAC_FILTER_CONFIG__MAC_ADDR1_VALID 1
#define O_MAC_FILTER_CONFIG__MAC_ADDR0_VALID 0
#define R_HASH_TABLE_VECTOR 0x30
#define R_TX_CONTROL 0x0A0
#define O_TX_CONTROL__TX15HALT 31
#define O_TX_CONTROL__TX14HALT 30
#define O_TX_CONTROL__TX13HALT 29
#define O_TX_CONTROL__TX12HALT 28
#define O_TX_CONTROL__TX11HALT 27
#define O_TX_CONTROL__TX10HALT 26
#define O_TX_CONTROL__TX9HALT 25
#define O_TX_CONTROL__TX8HALT 24
#define O_TX_CONTROL__TX7HALT 23
#define O_TX_CONTROL__TX6HALT 22
#define O_TX_CONTROL__TX5HALT 21
#define O_TX_CONTROL__TX4HALT 20
#define O_TX_CONTROL__TX3HALT 19
#define O_TX_CONTROL__TX2HALT 18
#define O_TX_CONTROL__TX1HALT 17
#define O_TX_CONTROL__TX0HALT 16
#define O_TX_CONTROL__TXIDLE 15
#define O_TX_CONTROL__TXENABLE 14
#define O_TX_CONTROL__TXTHRESHOLD 0
#define W_TX_CONTROL__TXTHRESHOLD 14
#define R_RX_CONTROL 0x0A1
#define O_RX_CONTROL__RGMII 10
#define O_RX_CONTROL__SOFTRESET 2
#define O_RX_CONTROL__RXHALT 1
#define O_RX_CONTROL__RXENABLE 0
#define R_DESC_PACK_CTRL 0x0A2
#define O_DESC_PACK_CTRL__BYTEOFFSET 17
#define W_DESC_PACK_CTRL__BYTEOFFSET 3
#define O_DESC_PACK_CTRL__PREPADENABLE 16
#define O_DESC_PACK_CTRL__MAXENTRY 14
#define W_DESC_PACK_CTRL__MAXENTRY 2
#define O_DESC_PACK_CTRL__REGULARSIZE 0
#define W_DESC_PACK_CTRL__REGULARSIZE 14
#define R_STATCTRL 0x0A3
#define O_STATCTRL__OVERFLOWEN 4
#define O_STATCTRL__GIG 3
#define O_STATCTRL__STEN 2
#define O_STATCTRL__CLRCNT 1
#define O_STATCTRL__AUTOZ 0
#define R_L2ALLOCCTRL 0x0A4
#define O_L2ALLOCCTRL__TXL2ALLOCATE 9
#define W_L2ALLOCCTRL__TXL2ALLOCATE 9
#define O_L2ALLOCCTRL__RXL2ALLOCATE 0
#define W_L2ALLOCCTRL__RXL2ALLOCATE 9
#define R_INTMASK 0x0A5
#define O_INTMASK__SPI4TXERROR 28
#define O_INTMASK__SPI4RXERROR 27
#define O_INTMASK__RGMIIHALFDUPCOLLISION 27
#define O_INTMASK__ABORT 26
#define O_INTMASK__UNDERRUN 25
#define O_INTMASK__DISCARDPACKET 24
#define O_INTMASK__ASYNCFIFOFULL 23
#define O_INTMASK__TAGFULL 22
#define O_INTMASK__CLASS3FULL 21
#define O_INTMASK__C3EARLYFULL 20
#define O_INTMASK__CLASS2FULL 19
#define O_INTMASK__C2EARLYFULL 18
#define O_INTMASK__CLASS1FULL 17
#define O_INTMASK__C1EARLYFULL 16
#define O_INTMASK__CLASS0FULL 15
#define O_INTMASK__C0EARLYFULL 14
#define O_INTMASK__RXDATAFULL 13
#define O_INTMASK__RXEARLYFULL 12
#define O_INTMASK__RFREEEMPTY 9
#define O_INTMASK__RFEARLYEMPTY 8
#define O_INTMASK__P2PSPILLECC 7
#define O_INTMASK__FREEDESCFULL 5
#define O_INTMASK__FREEEARLYFULL 4
#define O_INTMASK__TXFETCHERROR 3
#define O_INTMASK__STATCARRY 2
#define O_INTMASK__MDINT 1
#define O_INTMASK__TXILLEGAL 0
#define R_INTREG 0x0A6
#define O_INTREG__SPI4TXERROR 28
#define O_INTREG__SPI4RXERROR 27
#define O_INTREG__RGMIIHALFDUPCOLLISION 27
#define O_INTREG__ABORT 26
#define O_INTREG__UNDERRUN 25
#define O_INTREG__DISCARDPACKET 24
#define O_INTREG__ASYNCFIFOFULL 23
#define O_INTREG__TAGFULL 22
#define O_INTREG__CLASS3FULL 21
#define O_INTREG__C3EARLYFULL 20
#define O_INTREG__CLASS2FULL 19
#define O_INTREG__C2EARLYFULL 18
#define O_INTREG__CLASS1FULL 17
#define O_INTREG__C1EARLYFULL 16
#define O_INTREG__CLASS0FULL 15
#define O_INTREG__C0EARLYFULL 14
#define O_INTREG__RXDATAFULL 13
#define O_INTREG__RXEARLYFULL 12
#define O_INTREG__RFREEEMPTY 9
#define O_INTREG__RFEARLYEMPTY 8
#define O_INTREG__P2PSPILLECC 7
#define O_INTREG__FREEDESCFULL 5
#define O_INTREG__FREEEARLYFULL 4
#define O_INTREG__TXFETCHERROR 3
#define O_INTREG__STATCARRY 2
#define O_INTREG__MDINT 1
#define O_INTREG__TXILLEGAL 0
#define R_TXRETRY 0x0A7
#define O_TXRETRY__COLLISIONRETRY 6
#define O_TXRETRY__BUSERRORRETRY 5
#define O_TXRETRY__UNDERRUNRETRY 4
#define O_TXRETRY__RETRIES 0
#define W_TXRETRY__RETRIES 4
#define R_CORECONTROL 0x0A8
#define O_CORECONTROL__ERRORTHREAD 4
#define W_CORECONTROL__ERRORTHREAD 7
#define O_CORECONTROL__SHUTDOWN 2
#define O_CORECONTROL__SPEED 0
#define W_CORECONTROL__SPEED 2
#define R_BYTEOFFSET0 0x0A9
#define R_BYTEOFFSET1 0x0AA
#define R_L2TYPE_0 0x0F0
#define O_L2TYPE__EXTRAHDRPROTOSIZE 26
#define W_L2TYPE__EXTRAHDRPROTOSIZE 5
#define O_L2TYPE__EXTRAHDRPROTOOFFSET 20
#define W_L2TYPE__EXTRAHDRPROTOOFFSET 6
#define O_L2TYPE__EXTRAHEADERSIZE 14
#define W_L2TYPE__EXTRAHEADERSIZE 6
#define O_L2TYPE__PROTOOFFSET 8
#define W_L2TYPE__PROTOOFFSET 6
#define O_L2TYPE__L2HDROFFSET 2
#define W_L2TYPE__L2HDROFFSET 6
#define O_L2TYPE__L2PROTO 0
#define W_L2TYPE__L2PROTO 2
#define R_L2TYPE_1 0xF0
#define R_L2TYPE_2 0xF0
#define R_L2TYPE_3 0xF0
#define R_PARSERCONFIGREG 0x100
#define O_PARSERCONFIGREG__CRCHASHPOLY 8
#define W_PARSERCONFIGREG__CRCHASHPOLY 7
#define O_PARSERCONFIGREG__PREPADOFFSET 4
#define W_PARSERCONFIGREG__PREPADOFFSET 4
#define O_PARSERCONFIGREG__USECAM 2
#define O_PARSERCONFIGREG__USEHASH 1
#define O_PARSERCONFIGREG__USEPROTO 0
#define R_L3CTABLE 0x140
#define O_L3CTABLE__OFFSET0 25
#define W_L3CTABLE__OFFSET0 7
#define O_L3CTABLE__LEN0 21
#define W_L3CTABLE__LEN0 4
#define O_L3CTABLE__OFFSET1 14
#define W_L3CTABLE__OFFSET1 7
#define O_L3CTABLE__LEN1 10
#define W_L3CTABLE__LEN1 4
#define O_L3CTABLE__OFFSET2 4
#define W_L3CTABLE__OFFSET2 6
#define O_L3CTABLE__LEN2 0
#define W_L3CTABLE__LEN2 4
#define O_L3CTABLE__L3HDROFFSET 26
#define W_L3CTABLE__L3HDROFFSET 6
#define O_L3CTABLE__L4PROTOOFFSET 20
#define W_L3CTABLE__L4PROTOOFFSET 6
#define O_L3CTABLE__IPCHKSUMCOMPUTE 19
#define O_L3CTABLE__L4CLASSIFY 18
#define O_L3CTABLE__L2PROTO 16
#define W_L3CTABLE__L2PROTO 2
#define O_L3CTABLE__L3PROTOKEY 0
#define W_L3CTABLE__L3PROTOKEY 16
#define R_L4CTABLE 0x160
#define O_L4CTABLE__OFFSET0 21
#define W_L4CTABLE__OFFSET0 6
#define O_L4CTABLE__LEN0 17
#define W_L4CTABLE__LEN0 4
#define O_L4CTABLE__OFFSET1 11
#define W_L4CTABLE__OFFSET1 6
#define O_L4CTABLE__LEN1 7
#define W_L4CTABLE__LEN1 4
#define O_L4CTABLE__TCPCHKSUMENABLE 0
#define R_CAM4X128TABLE 0x172
#define O_CAM4X128TABLE__CLASSID 7
#define W_CAM4X128TABLE__CLASSID 2
#define O_CAM4X128TABLE__BUCKETID 1
#define W_CAM4X128TABLE__BUCKETID 6
#define O_CAM4X128TABLE__USEBUCKET 0
#define R_CAM4X128KEY 0x180
#define R_TRANSLATETABLE 0x1A0
#define R_DMACR0 0x200
#define O_DMACR0__DATA0WRMAXCR 27
#define W_DMACR0__DATA0WRMAXCR 3
#define O_DMACR0__DATA0RDMAXCR 24
#define W_DMACR0__DATA0RDMAXCR 3
#define O_DMACR0__DATA1WRMAXCR 21
#define W_DMACR0__DATA1WRMAXCR 3
#define O_DMACR0__DATA1RDMAXCR 18
#define W_DMACR0__DATA1RDMAXCR 3
#define O_DMACR0__DATA2WRMAXCR 15
#define W_DMACR0__DATA2WRMAXCR 3
#define O_DMACR0__DATA2RDMAXCR 12
#define W_DMACR0__DATA2RDMAXCR 3
#define O_DMACR0__DATA3WRMAXCR 9
#define W_DMACR0__DATA3WRMAXCR 3
#define O_DMACR0__DATA3RDMAXCR 6
#define W_DMACR0__DATA3RDMAXCR 3
#define O_DMACR0__DATA4WRMAXCR 3
#define W_DMACR0__DATA4WRMAXCR 3
#define O_DMACR0__DATA4RDMAXCR 0
#define W_DMACR0__DATA4RDMAXCR 3
#define R_DMACR1 0x201
#define O_DMACR1__DATA5WRMAXCR 27
#define W_DMACR1__DATA5WRMAXCR 3
#define O_DMACR1__DATA5RDMAXCR 24
#define W_DMACR1__DATA5RDMAXCR 3
#define O_DMACR1__DATA6WRMAXCR 21
#define W_DMACR1__DATA6WRMAXCR 3
#define O_DMACR1__DATA6RDMAXCR 18
#define W_DMACR1__DATA6RDMAXCR 3
#define O_DMACR1__DATA7WRMAXCR 15
#define W_DMACR1__DATA7WRMAXCR 3
#define O_DMACR1__DATA7RDMAXCR 12
#define W_DMACR1__DATA7RDMAXCR 3
#define O_DMACR1__DATA8WRMAXCR 9
#define W_DMACR1__DATA8WRMAXCR 3
#define O_DMACR1__DATA8RDMAXCR 6
#define W_DMACR1__DATA8RDMAXCR 3
#define O_DMACR1__DATA9WRMAXCR 3
#define W_DMACR1__DATA9WRMAXCR 3
#define O_DMACR1__DATA9RDMAXCR 0
#define W_DMACR1__DATA9RDMAXCR 3
#define R_DMACR2 0x202
#define O_DMACR2__DATA10WRMAXCR 27
#define W_DMACR2__DATA10WRMAXCR 3
#define O_DMACR2__DATA10RDMAXCR 24
#define W_DMACR2__DATA10RDMAXCR 3
#define O_DMACR2__DATA11WRMAXCR 21
#define W_DMACR2__DATA11WRMAXCR 3
#define O_DMACR2__DATA11RDMAXCR 18
#define W_DMACR2__DATA11RDMAXCR 3
#define O_DMACR2__DATA12WRMAXCR 15
#define W_DMACR2__DATA12WRMAXCR 3
#define O_DMACR2__DATA12RDMAXCR 12
#define W_DMACR2__DATA12RDMAXCR 3
#define O_DMACR2__DATA13WRMAXCR 9
#define W_DMACR2__DATA13WRMAXCR 3
#define O_DMACR2__DATA13RDMAXCR 6
#define W_DMACR2__DATA13RDMAXCR 3
#define O_DMACR2__DATA14WRMAXCR 3
#define W_DMACR2__DATA14WRMAXCR 3
#define O_DMACR2__DATA14RDMAXCR 0
#define W_DMACR2__DATA14RDMAXCR 3
#define R_DMACR3 0x203
#define O_DMACR3__DATA15WRMAXCR 27
#define W_DMACR3__DATA15WRMAXCR 3
#define O_DMACR3__DATA15RDMAXCR 24
#define W_DMACR3__DATA15RDMAXCR 3
#define O_DMACR3__SPCLASSWRMAXCR 21
#define W_DMACR3__SPCLASSWRMAXCR 3
#define O_DMACR3__SPCLASSRDMAXCR 18
#define W_DMACR3__SPCLASSRDMAXCR 3
#define O_DMACR3__JUMFRINWRMAXCR 15
#define W_DMACR3__JUMFRINWRMAXCR 3
#define O_DMACR3__JUMFRINRDMAXCR 12
#define W_DMACR3__JUMFRINRDMAXCR 3
#define O_DMACR3__REGFRINWRMAXCR 9
#define W_DMACR3__REGFRINWRMAXCR 3
#define O_DMACR3__REGFRINRDMAXCR 6
#define W_DMACR3__REGFRINRDMAXCR 3
#define O_DMACR3__FROUTWRMAXCR 3
#define W_DMACR3__FROUTWRMAXCR 3
#define O_DMACR3__FROUTRDMAXCR 0
#define W_DMACR3__FROUTRDMAXCR 3
#define R_REG_FRIN_SPILL_MEM_START_0 0x204
#define O_REG_FRIN_SPILL_MEM_START_0__REGFRINSPILLMEMSTART0 0
#define W_REG_FRIN_SPILL_MEM_START_0__REGFRINSPILLMEMSTART0 32
#define R_REG_FRIN_SPILL_MEM_START_1 0x205
#define O_REG_FRIN_SPILL_MEM_START_1__REGFRINSPILLMEMSTART1 0
#define W_REG_FRIN_SPILL_MEM_START_1__REGFRINSPILLMEMSTART1 3
#define R_REG_FRIN_SPILL_MEM_SIZE 0x206
#define O_REG_FRIN_SPILL_MEM_SIZE__REGFRINSPILLMEMSIZE 0
#define W_REG_FRIN_SPILL_MEM_SIZE__REGFRINSPILLMEMSIZE 32
#define R_FROUT_SPILL_MEM_START_0 0x207
#define O_FROUT_SPILL_MEM_START_0__FROUTSPILLMEMSTART0 0
#define W_FROUT_SPILL_MEM_START_0__FROUTSPILLMEMSTART0 32
#define R_FROUT_SPILL_MEM_START_1 0x208
#define O_FROUT_SPILL_MEM_START_1__FROUTSPILLMEMSTART1 0
#define W_FROUT_SPILL_MEM_START_1__FROUTSPILLMEMSTART1 3
#define R_FROUT_SPILL_MEM_SIZE 0x209
#define O_FROUT_SPILL_MEM_SIZE__FROUTSPILLMEMSIZE 0
#define W_FROUT_SPILL_MEM_SIZE__FROUTSPILLMEMSIZE 32
#define R_CLASS0_SPILL_MEM_START_0 0x20A
#define O_CLASS0_SPILL_MEM_START_0__CLASS0SPILLMEMSTART0 0
#define W_CLASS0_SPILL_MEM_START_0__CLASS0SPILLMEMSTART0 32
#define R_CLASS0_SPILL_MEM_START_1 0x20B
#define O_CLASS0_SPILL_MEM_START_1__CLASS0SPILLMEMSTART1 0
#define W_CLASS0_SPILL_MEM_START_1__CLASS0SPILLMEMSTART1 3
#define R_CLASS0_SPILL_MEM_SIZE 0x20C
#define O_CLASS0_SPILL_MEM_SIZE__CLASS0SPILLMEMSIZE 0
#define W_CLASS0_SPILL_MEM_SIZE__CLASS0SPILLMEMSIZE 32
#define R_JUMFRIN_SPILL_MEM_START_0 0x20D
#define O_JUMFRIN_SPILL_MEM_START_0__JUMFRINSPILLMEMSTART0 0
#define W_JUMFRIN_SPILL_MEM_START_0__JUMFRINSPILLMEMSTART0 32
#define R_JUMFRIN_SPILL_MEM_START_1 0x20E
#define O_JUMFRIN_SPILL_MEM_START_1__JUMFRINSPILLMEMSTART1 0
#define W_JUMFRIN_SPILL_MEM_START_1__JUMFRINSPILLMEMSTART1 3
#define R_JUMFRIN_SPILL_MEM_SIZE 0x20F
#define O_JUMFRIN_SPILL_MEM_SIZE__JUMFRINSPILLMEMSIZE 0
#define W_JUMFRIN_SPILL_MEM_SIZE__JUMFRINSPILLMEMSIZE 32
#define R_CLASS1_SPILL_MEM_START_0 0x210
#define O_CLASS1_SPILL_MEM_START_0__CLASS1SPILLMEMSTART0 0
#define W_CLASS1_SPILL_MEM_START_0__CLASS1SPILLMEMSTART0 32
#define R_CLASS1_SPILL_MEM_START_1 0x211
#define O_CLASS1_SPILL_MEM_START_1__CLASS1SPILLMEMSTART1 0
#define W_CLASS1_SPILL_MEM_START_1__CLASS1SPILLMEMSTART1 3
#define R_CLASS1_SPILL_MEM_SIZE 0x212
#define O_CLASS1_SPILL_MEM_SIZE__CLASS1SPILLMEMSIZE 0
#define W_CLASS1_SPILL_MEM_SIZE__CLASS1SPILLMEMSIZE 32
#define R_CLASS2_SPILL_MEM_START_0 0x213
#define O_CLASS2_SPILL_MEM_START_0__CLASS2SPILLMEMSTART0 0
#define W_CLASS2_SPILL_MEM_START_0__CLASS2SPILLMEMSTART0 32
#define R_CLASS2_SPILL_MEM_START_1 0x214
#define O_CLASS2_SPILL_MEM_START_1__CLASS2SPILLMEMSTART1 0
#define W_CLASS2_SPILL_MEM_START_1__CLASS2SPILLMEMSTART1 3
#define R_CLASS2_SPILL_MEM_SIZE 0x215
#define O_CLASS2_SPILL_MEM_SIZE__CLASS2SPILLMEMSIZE 0
#define W_CLASS2_SPILL_MEM_SIZE__CLASS2SPILLMEMSIZE 32
#define R_CLASS3_SPILL_MEM_START_0 0x216
#define O_CLASS3_SPILL_MEM_START_0__CLASS3SPILLMEMSTART0 0
#define W_CLASS3_SPILL_MEM_START_0__CLASS3SPILLMEMSTART0 32
#define R_CLASS3_SPILL_MEM_START_1 0x217
#define O_CLASS3_SPILL_MEM_START_1__CLASS3SPILLMEMSTART1 0
#define W_CLASS3_SPILL_MEM_START_1__CLASS3SPILLMEMSTART1 3
#define R_CLASS3_SPILL_MEM_SIZE 0x218
#define O_CLASS3_SPILL_MEM_SIZE__CLASS3SPILLMEMSIZE 0
#define W_CLASS3_SPILL_MEM_SIZE__CLASS3SPILLMEMSIZE 32
#define R_REG_FRIN1_SPILL_MEM_START_0 0x219
#define R_REG_FRIN1_SPILL_MEM_START_1 0x21a
#define R_REG_FRIN1_SPILL_MEM_SIZE 0x21b
#define R_SPIHNGY0 0x219
#define O_SPIHNGY0__EG_HNGY_THRESH_0 24
#define W_SPIHNGY0__EG_HNGY_THRESH_0 7
#define O_SPIHNGY0__EG_HNGY_THRESH_1 16
#define W_SPIHNGY0__EG_HNGY_THRESH_1 7
#define O_SPIHNGY0__EG_HNGY_THRESH_2 8
#define W_SPIHNGY0__EG_HNGY_THRESH_2 7
#define O_SPIHNGY0__EG_HNGY_THRESH_3 0
#define W_SPIHNGY0__EG_HNGY_THRESH_3 7
#define R_SPIHNGY1 0x21A
#define O_SPIHNGY1__EG_HNGY_THRESH_4 24
#define W_SPIHNGY1__EG_HNGY_THRESH_4 7
#define O_SPIHNGY1__EG_HNGY_THRESH_5 16
#define W_SPIHNGY1__EG_HNGY_THRESH_5 7
#define O_SPIHNGY1__EG_HNGY_THRESH_6 8
#define W_SPIHNGY1__EG_HNGY_THRESH_6 7
#define O_SPIHNGY1__EG_HNGY_THRESH_7 0
#define W_SPIHNGY1__EG_HNGY_THRESH_7 7
#define R_SPIHNGY2 0x21B
#define O_SPIHNGY2__EG_HNGY_THRESH_8 24
#define W_SPIHNGY2__EG_HNGY_THRESH_8 7
#define O_SPIHNGY2__EG_HNGY_THRESH_9 16
#define W_SPIHNGY2__EG_HNGY_THRESH_9 7
#define O_SPIHNGY2__EG_HNGY_THRESH_10 8
#define W_SPIHNGY2__EG_HNGY_THRESH_10 7
#define O_SPIHNGY2__EG_HNGY_THRESH_11 0
#define W_SPIHNGY2__EG_HNGY_THRESH_11 7
#define R_SPIHNGY3 0x21C
#define O_SPIHNGY3__EG_HNGY_THRESH_12 24
#define W_SPIHNGY3__EG_HNGY_THRESH_12 7
#define O_SPIHNGY3__EG_HNGY_THRESH_13 16
#define W_SPIHNGY3__EG_HNGY_THRESH_13 7
#define O_SPIHNGY3__EG_HNGY_THRESH_14 8
#define W_SPIHNGY3__EG_HNGY_THRESH_14 7
#define O_SPIHNGY3__EG_HNGY_THRESH_15 0
#define W_SPIHNGY3__EG_HNGY_THRESH_15 7
#define R_SPISTRV0 0x21D
#define O_SPISTRV0__EG_STRV_THRESH_0 24
#define W_SPISTRV0__EG_STRV_THRESH_0 7
#define O_SPISTRV0__EG_STRV_THRESH_1 16
#define W_SPISTRV0__EG_STRV_THRESH_1 7
#define O_SPISTRV0__EG_STRV_THRESH_2 8
#define W_SPISTRV0__EG_STRV_THRESH_2 7
#define O_SPISTRV0__EG_STRV_THRESH_3 0
#define W_SPISTRV0__EG_STRV_THRESH_3 7
#define R_SPISTRV1 0x21E
#define O_SPISTRV1__EG_STRV_THRESH_4 24
#define W_SPISTRV1__EG_STRV_THRESH_4 7
#define O_SPISTRV1__EG_STRV_THRESH_5 16
#define W_SPISTRV1__EG_STRV_THRESH_5 7
#define O_SPISTRV1__EG_STRV_THRESH_6 8
#define W_SPISTRV1__EG_STRV_THRESH_6 7
#define O_SPISTRV1__EG_STRV_THRESH_7 0
#define W_SPISTRV1__EG_STRV_THRESH_7 7
#define R_SPISTRV2 0x21F
#define O_SPISTRV2__EG_STRV_THRESH_8 24
#define W_SPISTRV2__EG_STRV_THRESH_8 7
#define O_SPISTRV2__EG_STRV_THRESH_9 16
#define W_SPISTRV2__EG_STRV_THRESH_9 7
#define O_SPISTRV2__EG_STRV_THRESH_10 8
#define W_SPISTRV2__EG_STRV_THRESH_10 7
#define O_SPISTRV2__EG_STRV_THRESH_11 0
#define W_SPISTRV2__EG_STRV_THRESH_11 7
#define R_SPISTRV3 0x220
#define O_SPISTRV3__EG_STRV_THRESH_12 24
#define W_SPISTRV3__EG_STRV_THRESH_12 7
#define O_SPISTRV3__EG_STRV_THRESH_13 16
#define W_SPISTRV3__EG_STRV_THRESH_13 7
#define O_SPISTRV3__EG_STRV_THRESH_14 8
#define W_SPISTRV3__EG_STRV_THRESH_14 7
#define O_SPISTRV3__EG_STRV_THRESH_15 0
#define W_SPISTRV3__EG_STRV_THRESH_15 7
#define R_TXDATAFIFO0 0x221
#define O_TXDATAFIFO0__TX0DATAFIFOSTART 24
#define W_TXDATAFIFO0__TX0DATAFIFOSTART 7
#define O_TXDATAFIFO0__TX0DATAFIFOSIZE 16
#define W_TXDATAFIFO0__TX0DATAFIFOSIZE 7
#define O_TXDATAFIFO0__TX1DATAFIFOSTART 8
#define W_TXDATAFIFO0__TX1DATAFIFOSTART 7
#define O_TXDATAFIFO0__TX1DATAFIFOSIZE 0
#define W_TXDATAFIFO0__TX1DATAFIFOSIZE 7
#define R_TXDATAFIFO1 0x222
#define O_TXDATAFIFO1__TX2DATAFIFOSTART 24
#define W_TXDATAFIFO1__TX2DATAFIFOSTART 7
#define O_TXDATAFIFO1__TX2DATAFIFOSIZE 16
#define W_TXDATAFIFO1__TX2DATAFIFOSIZE 7
#define O_TXDATAFIFO1__TX3DATAFIFOSTART 8
#define W_TXDATAFIFO1__TX3DATAFIFOSTART 7
#define O_TXDATAFIFO1__TX3DATAFIFOSIZE 0
#define W_TXDATAFIFO1__TX3DATAFIFOSIZE 7
#define R_TXDATAFIFO2 0x223
#define O_TXDATAFIFO2__TX4DATAFIFOSTART 24
#define W_TXDATAFIFO2__TX4DATAFIFOSTART 7
#define O_TXDATAFIFO2__TX4DATAFIFOSIZE 16
#define W_TXDATAFIFO2__TX4DATAFIFOSIZE 7
#define O_TXDATAFIFO2__TX5DATAFIFOSTART 8
#define W_TXDATAFIFO2__TX5DATAFIFOSTART 7
#define O_TXDATAFIFO2__TX5DATAFIFOSIZE 0
#define W_TXDATAFIFO2__TX5DATAFIFOSIZE 7
#define R_TXDATAFIFO3 0x224
#define O_TXDATAFIFO3__TX6DATAFIFOSTART 24
#define W_TXDATAFIFO3__TX6DATAFIFOSTART 7
#define O_TXDATAFIFO3__TX6DATAFIFOSIZE 16
#define W_TXDATAFIFO3__TX6DATAFIFOSIZE 7
#define O_TXDATAFIFO3__TX7DATAFIFOSTART 8
#define W_TXDATAFIFO3__TX7DATAFIFOSTART 7
#define O_TXDATAFIFO3__TX7DATAFIFOSIZE 0
#define W_TXDATAFIFO3__TX7DATAFIFOSIZE 7
#define R_TXDATAFIFO4 0x225
#define O_TXDATAFIFO4__TX8DATAFIFOSTART 24
#define W_TXDATAFIFO4__TX8DATAFIFOSTART 7
#define O_TXDATAFIFO4__TX8DATAFIFOSIZE 16
#define W_TXDATAFIFO4__TX8DATAFIFOSIZE 7
#define O_TXDATAFIFO4__TX9DATAFIFOSTART 8
#define W_TXDATAFIFO4__TX9DATAFIFOSTART 7
#define O_TXDATAFIFO4__TX9DATAFIFOSIZE 0
#define W_TXDATAFIFO4__TX9DATAFIFOSIZE 7
#define R_TXDATAFIFO5 0x226
#define O_TXDATAFIFO5__TX10DATAFIFOSTART 24
#define W_TXDATAFIFO5__TX10DATAFIFOSTART 7
#define O_TXDATAFIFO5__TX10DATAFIFOSIZE 16
#define W_TXDATAFIFO5__TX10DATAFIFOSIZE 7
#define O_TXDATAFIFO5__TX11DATAFIFOSTART 8
#define W_TXDATAFIFO5__TX11DATAFIFOSTART 7
#define O_TXDATAFIFO5__TX11DATAFIFOSIZE 0
#define W_TXDATAFIFO5__TX11DATAFIFOSIZE 7
#define R_TXDATAFIFO6 0x227
#define O_TXDATAFIFO6__TX12DATAFIFOSTART 24
#define W_TXDATAFIFO6__TX12DATAFIFOSTART 7
#define O_TXDATAFIFO6__TX12DATAFIFOSIZE 16
#define W_TXDATAFIFO6__TX12DATAFIFOSIZE 7
#define O_TXDATAFIFO6__TX13DATAFIFOSTART 8
#define W_TXDATAFIFO6__TX13DATAFIFOSTART 7
#define O_TXDATAFIFO6__TX13DATAFIFOSIZE 0
#define W_TXDATAFIFO6__TX13DATAFIFOSIZE 7
#define R_TXDATAFIFO7 0x228
#define O_TXDATAFIFO7__TX14DATAFIFOSTART 24
#define W_TXDATAFIFO7__TX14DATAFIFOSTART 7
#define O_TXDATAFIFO7__TX14DATAFIFOSIZE 16
#define W_TXDATAFIFO7__TX14DATAFIFOSIZE 7
#define O_TXDATAFIFO7__TX15DATAFIFOSTART 8
#define W_TXDATAFIFO7__TX15DATAFIFOSTART 7
#define O_TXDATAFIFO7__TX15DATAFIFOSIZE 0
#define W_TXDATAFIFO7__TX15DATAFIFOSIZE 7
#define R_RXDATAFIFO0 0x229
#define O_RXDATAFIFO0__RX0DATAFIFOSTART 24
#define W_RXDATAFIFO0__RX0DATAFIFOSTART 7
#define O_RXDATAFIFO0__RX0DATAFIFOSIZE 16
#define W_RXDATAFIFO0__RX0DATAFIFOSIZE 7
#define O_RXDATAFIFO0__RX1DATAFIFOSTART 8
#define W_RXDATAFIFO0__RX1DATAFIFOSTART 7
#define O_RXDATAFIFO0__RX1DATAFIFOSIZE 0
#define W_RXDATAFIFO0__RX1DATAFIFOSIZE 7
#define R_RXDATAFIFO1 0x22A
#define O_RXDATAFIFO1__RX2DATAFIFOSTART 24
#define W_RXDATAFIFO1__RX2DATAFIFOSTART 7
#define O_RXDATAFIFO1__RX2DATAFIFOSIZE 16
#define W_RXDATAFIFO1__RX2DATAFIFOSIZE 7
#define O_RXDATAFIFO1__RX3DATAFIFOSTART 8
#define W_RXDATAFIFO1__RX3DATAFIFOSTART 7
#define O_RXDATAFIFO1__RX3DATAFIFOSIZE 0
#define W_RXDATAFIFO1__RX3DATAFIFOSIZE 7
#define R_RXDATAFIFO2 0x22B
#define O_RXDATAFIFO2__RX4DATAFIFOSTART 24
#define W_RXDATAFIFO2__RX4DATAFIFOSTART 7
#define O_RXDATAFIFO2__RX4DATAFIFOSIZE 16
#define W_RXDATAFIFO2__RX4DATAFIFOSIZE 7
#define O_RXDATAFIFO2__RX5DATAFIFOSTART 8
#define W_RXDATAFIFO2__RX5DATAFIFOSTART 7
#define O_RXDATAFIFO2__RX5DATAFIFOSIZE 0
#define W_RXDATAFIFO2__RX5DATAFIFOSIZE 7
#define R_RXDATAFIFO3 0x22C
#define O_RXDATAFIFO3__RX6DATAFIFOSTART 24
#define W_RXDATAFIFO3__RX6DATAFIFOSTART 7
#define O_RXDATAFIFO3__RX6DATAFIFOSIZE 16
#define W_RXDATAFIFO3__RX6DATAFIFOSIZE 7
#define O_RXDATAFIFO3__RX7DATAFIFOSTART 8
#define W_RXDATAFIFO3__RX7DATAFIFOSTART 7
#define O_RXDATAFIFO3__RX7DATAFIFOSIZE 0
#define W_RXDATAFIFO3__RX7DATAFIFOSIZE 7
#define R_RXDATAFIFO4 0x22D
#define O_RXDATAFIFO4__RX8DATAFIFOSTART 24
#define W_RXDATAFIFO4__RX8DATAFIFOSTART 7
#define O_RXDATAFIFO4__RX8DATAFIFOSIZE 16
#define W_RXDATAFIFO4__RX8DATAFIFOSIZE 7
#define O_RXDATAFIFO4__RX9DATAFIFOSTART 8
#define W_RXDATAFIFO4__RX9DATAFIFOSTART 7
#define O_RXDATAFIFO4__RX9DATAFIFOSIZE 0
#define W_RXDATAFIFO4__RX9DATAFIFOSIZE 7
#define R_RXDATAFIFO5 0x22E
#define O_RXDATAFIFO5__RX10DATAFIFOSTART 24
#define W_RXDATAFIFO5__RX10DATAFIFOSTART 7
#define O_RXDATAFIFO5__RX10DATAFIFOSIZE 16
#define W_RXDATAFIFO5__RX10DATAFIFOSIZE 7
#define O_RXDATAFIFO5__RX11DATAFIFOSTART 8
#define W_RXDATAFIFO5__RX11DATAFIFOSTART 7
#define O_RXDATAFIFO5__RX11DATAFIFOSIZE 0
#define W_RXDATAFIFO5__RX11DATAFIFOSIZE 7
#define R_RXDATAFIFO6 0x22F
#define O_RXDATAFIFO6__RX12DATAFIFOSTART 24
#define W_RXDATAFIFO6__RX12DATAFIFOSTART 7
#define O_RXDATAFIFO6__RX12DATAFIFOSIZE 16
#define W_RXDATAFIFO6__RX12DATAFIFOSIZE 7
#define O_RXDATAFIFO6__RX13DATAFIFOSTART 8
#define W_RXDATAFIFO6__RX13DATAFIFOSTART 7
#define O_RXDATAFIFO6__RX13DATAFIFOSIZE 0
#define W_RXDATAFIFO6__RX13DATAFIFOSIZE 7
#define R_RXDATAFIFO7 0x230
#define O_RXDATAFIFO7__RX14DATAFIFOSTART 24
#define W_RXDATAFIFO7__RX14DATAFIFOSTART 7
#define O_RXDATAFIFO7__RX14DATAFIFOSIZE 16
#define W_RXDATAFIFO7__RX14DATAFIFOSIZE 7
#define O_RXDATAFIFO7__RX15DATAFIFOSTART 8
#define W_RXDATAFIFO7__RX15DATAFIFOSTART 7
#define O_RXDATAFIFO7__RX15DATAFIFOSIZE 0
#define W_RXDATAFIFO7__RX15DATAFIFOSIZE 7
#define R_XGMACPADCALIBRATION 0x231
#define R_FREEQCARVE 0x233
#define R_SPI4STATICDELAY0 0x240
#define O_SPI4STATICDELAY0__DATALINE7 28
#define W_SPI4STATICDELAY0__DATALINE7 4
#define O_SPI4STATICDELAY0__DATALINE6 24
#define W_SPI4STATICDELAY0__DATALINE6 4
#define O_SPI4STATICDELAY0__DATALINE5 20
#define W_SPI4STATICDELAY0__DATALINE5 4
#define O_SPI4STATICDELAY0__DATALINE4 16
#define W_SPI4STATICDELAY0__DATALINE4 4
#define O_SPI4STATICDELAY0__DATALINE3 12
#define W_SPI4STATICDELAY0__DATALINE3 4
#define O_SPI4STATICDELAY0__DATALINE2 8
#define W_SPI4STATICDELAY0__DATALINE2 4
#define O_SPI4STATICDELAY0__DATALINE1 4
#define W_SPI4STATICDELAY0__DATALINE1 4
#define O_SPI4STATICDELAY0__DATALINE0 0
#define W_SPI4STATICDELAY0__DATALINE0 4
#define R_SPI4STATICDELAY1 0x241
#define O_SPI4STATICDELAY1__DATALINE15 28
#define W_SPI4STATICDELAY1__DATALINE15 4
#define O_SPI4STATICDELAY1__DATALINE14 24
#define W_SPI4STATICDELAY1__DATALINE14 4
#define O_SPI4STATICDELAY1__DATALINE13 20
#define W_SPI4STATICDELAY1__DATALINE13 4
#define O_SPI4STATICDELAY1__DATALINE12 16
#define W_SPI4STATICDELAY1__DATALINE12 4
#define O_SPI4STATICDELAY1__DATALINE11 12
#define W_SPI4STATICDELAY1__DATALINE11 4
#define O_SPI4STATICDELAY1__DATALINE10 8
#define W_SPI4STATICDELAY1__DATALINE10 4
#define O_SPI4STATICDELAY1__DATALINE9 4
#define W_SPI4STATICDELAY1__DATALINE9 4
#define O_SPI4STATICDELAY1__DATALINE8 0
#define W_SPI4STATICDELAY1__DATALINE8 4
#define R_SPI4STATICDELAY2 0x242
#define O_SPI4STATICDELAY0__TXSTAT1 8
#define W_SPI4STATICDELAY0__TXSTAT1 4
#define O_SPI4STATICDELAY0__TXSTAT0 4
#define W_SPI4STATICDELAY0__TXSTAT0 4
#define O_SPI4STATICDELAY0__RXCONTROL 0
#define W_SPI4STATICDELAY0__RXCONTROL 4
#define R_SPI4CONTROL 0x243
#define O_SPI4CONTROL__STATICDELAY 2
#define O_SPI4CONTROL__LVDS_LVTTL 1
#define O_SPI4CONTROL__SPI4ENABLE 0
#define R_CLASSWATERMARKS 0x244
#define O_CLASSWATERMARKS__CLASS0WATERMARK 24
#define W_CLASSWATERMARKS__CLASS0WATERMARK 5
#define O_CLASSWATERMARKS__CLASS1WATERMARK 16
#define W_CLASSWATERMARKS__CLASS1WATERMARK 5
#define O_CLASSWATERMARKS__CLASS3WATERMARK 0
#define W_CLASSWATERMARKS__CLASS3WATERMARK 5
#define R_RXWATERMARKS1 0x245
#define O_RXWATERMARKS__RX0DATAWATERMARK 24
#define W_RXWATERMARKS__RX0DATAWATERMARK 7
#define O_RXWATERMARKS__RX1DATAWATERMARK 16
#define W_RXWATERMARKS__RX1DATAWATERMARK 7
#define O_RXWATERMARKS__RX3DATAWATERMARK 0
#define W_RXWATERMARKS__RX3DATAWATERMARK 7
#define R_RXWATERMARKS2 0x246
#define O_RXWATERMARKS__RX4DATAWATERMARK 24
#define W_RXWATERMARKS__RX4DATAWATERMARK 7
#define O_RXWATERMARKS__RX5DATAWATERMARK 16
#define W_RXWATERMARKS__RX5DATAWATERMARK 7
#define O_RXWATERMARKS__RX6DATAWATERMARK 8
#define W_RXWATERMARKS__RX6DATAWATERMARK 7
#define O_RXWATERMARKS__RX7DATAWATERMARK 0
#define W_RXWATERMARKS__RX7DATAWATERMARK 7
#define R_RXWATERMARKS3 0x247
#define O_RXWATERMARKS__RX8DATAWATERMARK 24
#define W_RXWATERMARKS__RX8DATAWATERMARK 7
#define O_RXWATERMARKS__RX9DATAWATERMARK 16
#define W_RXWATERMARKS__RX9DATAWATERMARK 7
#define O_RXWATERMARKS__RX10DATAWATERMARK 8
#define W_RXWATERMARKS__RX10DATAWATERMARK 7
#define O_RXWATERMARKS__RX11DATAWATERMARK 0
#define W_RXWATERMARKS__RX11DATAWATERMARK 7
#define R_RXWATERMARKS4 0x248
#define O_RXWATERMARKS__RX12DATAWATERMARK 24
#define W_RXWATERMARKS__RX12DATAWATERMARK 7
#define O_RXWATERMARKS__RX13DATAWATERMARK 16
#define W_RXWATERMARKS__RX13DATAWATERMARK 7
#define O_RXWATERMARKS__RX14DATAWATERMARK 8
#define W_RXWATERMARKS__RX14DATAWATERMARK 7
#define O_RXWATERMARKS__RX15DATAWATERMARK 0
#define W_RXWATERMARKS__RX15DATAWATERMARK 7
#define R_FREEWATERMARKS 0x249
#define O_FREEWATERMARKS__FREEOUTWATERMARK 16
#define W_FREEWATERMARKS__FREEOUTWATERMARK 16
#define O_FREEWATERMARKS__JUMFRWATERMARK 8
#define W_FREEWATERMARKS__JUMFRWATERMARK 7
#define O_FREEWATERMARKS__REGFRWATERMARK 0
#define W_FREEWATERMARKS__REGFRWATERMARK 7
#define R_EGRESSFIFOCARVINGSLOTS 0x24a
#define CTRL_RES0 0
#define CTRL_RES1 1
#define CTRL_REG_FREE 2
#define CTRL_JUMBO_FREE 3
#define CTRL_CONT 4
#define CTRL_EOP 5
#define CTRL_START 6
#define CTRL_SNGL 7
#define CTRL_B0_NOT_EOP 0
#define CTRL_B0_EOP 1
#define R_ROUND_ROBIN_TABLE 0
#define R_PDE_CLASS_0 0x300
#define R_PDE_CLASS_1 0x302
#define R_PDE_CLASS_2 0x304
#define R_PDE_CLASS_3 0x306
#define R_MSG_TX_THRESHOLD 0x308
#define R_GMAC_JFR0_BUCKET_SIZE 0x320
#define R_GMAC_RFR0_BUCKET_SIZE 0x321
#define R_GMAC_TX0_BUCKET_SIZE 0x322
#define R_GMAC_TX1_BUCKET_SIZE 0x323
#define R_GMAC_TX2_BUCKET_SIZE 0x324
#define R_GMAC_TX3_BUCKET_SIZE 0x325
#define R_GMAC_JFR1_BUCKET_SIZE 0x326
#define R_GMAC_RFR1_BUCKET_SIZE 0x327
#define R_XGS_TX0_BUCKET_SIZE 0x320
#define R_XGS_TX1_BUCKET_SIZE 0x321
#define R_XGS_TX2_BUCKET_SIZE 0x322
#define R_XGS_TX3_BUCKET_SIZE 0x323
#define R_XGS_TX4_BUCKET_SIZE 0x324
#define R_XGS_TX5_BUCKET_SIZE 0x325
#define R_XGS_TX6_BUCKET_SIZE 0x326
#define R_XGS_TX7_BUCKET_SIZE 0x327
#define R_XGS_TX8_BUCKET_SIZE 0x328
#define R_XGS_TX9_BUCKET_SIZE 0x329
#define R_XGS_TX10_BUCKET_SIZE 0x32A
#define R_XGS_TX11_BUCKET_SIZE 0x32B
#define R_XGS_TX12_BUCKET_SIZE 0x32C
#define R_XGS_TX13_BUCKET_SIZE 0x32D
#define R_XGS_TX14_BUCKET_SIZE 0x32E
#define R_XGS_TX15_BUCKET_SIZE 0x32F
#define R_XGS_JFR_BUCKET_SIZE 0x330
#define R_XGS_RFR_BUCKET_SIZE 0x331
#define R_CC_CPU0_0 0x380
#define R_CC_CPU1_0 0x388
#define R_CC_CPU2_0 0x390
#define R_CC_CPU3_0 0x398
#define R_CC_CPU4_0 0x3a0
#define R_CC_CPU5_0 0x3a8
#define R_CC_CPU6_0 0x3b0
#define R_CC_CPU7_0 0x3b8
#define XLR_GMAC_BLK_SZ (XLR_IO_GMAC_1_OFFSET - \
XLR_IO_GMAC_0_OFFSET)
/* Constants used for configuring the devices */
#define XLR_FB_STN 6 /* Bucket used for Tx freeback */
#define MAC_B2B_IPG 88
#define XLR_NET_PREPAD_LEN 32
/* frame sizes need to be cacheline aligned */
#define MAX_FRAME_SIZE (1536 + XLR_NET_PREPAD_LEN)
#define MAX_FRAME_SIZE_JUMBO 9216
#define MAC_SKB_BACK_PTR_SIZE SMP_CACHE_BYTES
#define MAC_PREPAD 0
#define BYTE_OFFSET 2
#define XLR_RX_BUF_SIZE (MAX_FRAME_SIZE + BYTE_OFFSET + \
MAC_PREPAD + MAC_SKB_BACK_PTR_SIZE + SMP_CACHE_BYTES)
#define MAC_CRC_LEN 4
#define MAX_NUM_MSGRNG_STN_CC 128
#define MAX_MSG_SND_ATTEMPTS 100 /* 13 stns x 4 entry msg/stn +
* headroom
*/
#define MAC_FRIN_TO_BE_SENT_THRESHOLD 16
#define MAX_NUM_DESC_SPILL 1024
#define MAX_FRIN_SPILL (MAX_NUM_DESC_SPILL << 2)
#define MAX_FROUT_SPILL (MAX_NUM_DESC_SPILL << 2)
#define MAX_CLASS_0_SPILL (MAX_NUM_DESC_SPILL << 2)
#define MAX_CLASS_1_SPILL (MAX_NUM_DESC_SPILL << 2)
#define MAX_CLASS_2_SPILL (MAX_NUM_DESC_SPILL << 2)
#define MAX_CLASS_3_SPILL (MAX_NUM_DESC_SPILL << 2)
enum {
SGMII_SPEED_10 = 0x00000000,
SGMII_SPEED_100 = 0x02000000,
SGMII_SPEED_1000 = 0x04000000,
};
enum tsv_rsv_reg {
TX_RX_64_BYTE_FRAME = 0x20,
TX_RX_64_127_BYTE_FRAME,
TX_RX_128_255_BYTE_FRAME,
TX_RX_256_511_BYTE_FRAME,
TX_RX_512_1023_BYTE_FRAME,
TX_RX_1024_1518_BYTE_FRAME,
TX_RX_1519_1522_VLAN_BYTE_FRAME,
RX_BYTE_COUNTER = 0x27,
RX_PACKET_COUNTER,
RX_FCS_ERROR_COUNTER,
RX_MULTICAST_PACKET_COUNTER,
RX_BROADCAST_PACKET_COUNTER,
RX_CONTROL_FRAME_PACKET_COUNTER,
RX_PAUSE_FRAME_PACKET_COUNTER,
RX_UNKNOWN_OP_CODE_COUNTER,
RX_ALIGNMENT_ERROR_COUNTER,
RX_FRAME_LENGTH_ERROR_COUNTER,
RX_CODE_ERROR_COUNTER,
RX_CARRIER_SENSE_ERROR_COUNTER,
RX_UNDERSIZE_PACKET_COUNTER,
RX_OVERSIZE_PACKET_COUNTER,
RX_FRAGMENTS_COUNTER,
RX_JABBER_COUNTER,
RX_DROP_PACKET_COUNTER,
TX_BYTE_COUNTER = 0x38,
TX_PACKET_COUNTER,
TX_MULTICAST_PACKET_COUNTER,
TX_BROADCAST_PACKET_COUNTER,
TX_PAUSE_CONTROL_FRAME_COUNTER,
TX_DEFERRAL_PACKET_COUNTER,
TX_EXCESSIVE_DEFERRAL_PACKET_COUNTER,
TX_SINGLE_COLLISION_PACKET_COUNTER,
TX_MULTI_COLLISION_PACKET_COUNTER,
TX_LATE_COLLISION_PACKET_COUNTER,
TX_EXCESSIVE_COLLISION_PACKET_COUNTER,
TX_TOTAL_COLLISION_COUNTER,
TX_PAUSE_FRAME_HONERED_COUNTER,
TX_DROP_FRAME_COUNTER,
TX_JABBER_FRAME_COUNTER,
TX_FCS_ERROR_COUNTER,
TX_CONTROL_FRAME_COUNTER,
TX_OVERSIZE_FRAME_COUNTER,
TX_UNDERSIZE_FRAME_COUNTER,
TX_FRAGMENT_FRAME_COUNTER,
CARRY_REG_1 = 0x4c,
CARRY_REG_2 = 0x4d,
};
struct xlr_adapter {
struct net_device *netdev[4];
};
struct xlr_net_priv {
u32 __iomem *base_addr;
struct net_device *ndev;
struct xlr_adapter *adapter;
struct mii_bus *mii_bus;
int num_rx_desc;
int phy_addr; /* PHY addr on MDIO bus */
int pcs_id; /* PCS id on MDIO bus */
int port_id; /* Port(gmac/xgmac) number, i.e 0-7 */
int tx_stnid;
u32 __iomem *mii_addr;
u32 __iomem *serdes_addr;
u32 __iomem *pcs_addr;
u32 __iomem *gpio_addr;
int phy_speed;
int port_type;
struct timer_list queue_timer;
int wakeup_q;
struct platform_device *pdev;
struct xlr_net_data *nd;
u64 *frin_spill;
u64 *frout_spill;
u64 *class_0_spill;
u64 *class_1_spill;
u64 *class_2_spill;
u64 *class_3_spill;
};
void xlr_set_gmac_speed(struct xlr_net_priv *priv);
|