diff options
author | Stephen Hemminger <shemminger@linux-foundation.org> | 2007-06-04 20:23:26 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-07-08 22:16:42 -0400 |
commit | 69161611025b261cb64be70723c0dffe26aeb3ab (patch) | |
tree | 3d9e55150365b252b9bf6859d188e0cd66db5bbe /drivers/net/sky2.h | |
parent | 8f70920f2f2a699b4ad35e625071cd92f4ba6ca3 (diff) |
sky2: Yukon Extreme (88e8071) support.
Enable support for Yukon EX chipset (88e8071).
Most of changes are related to new commands to chip for transmit,
and change in status and checksumming.
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/sky2.h')
-rw-r--r-- | drivers/net/sky2.h | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/drivers/net/sky2.h b/drivers/net/sky2.h index c6c0baffc082..8df4643493d1 100644 --- a/drivers/net/sky2.h +++ b/drivers/net/sky2.h | |||
@@ -483,6 +483,11 @@ enum { | |||
483 | CHIP_REV_YU_FE_A2 = 2, | 483 | CHIP_REV_YU_FE_A2 = 2, |
484 | 484 | ||
485 | }; | 485 | }; |
486 | enum yukon_ex_rev { | ||
487 | CHIP_REV_YU_EX_A0 = 1, | ||
488 | CHIP_REV_YU_EX_B0 = 2, | ||
489 | }; | ||
490 | |||
486 | 491 | ||
487 | /* B2_Y2_CLK_GATE 8 bit Clock Gating (Yukon-2 only) */ | 492 | /* B2_Y2_CLK_GATE 8 bit Clock Gating (Yukon-2 only) */ |
488 | enum { | 493 | enum { |
@@ -1692,6 +1697,16 @@ enum { | |||
1692 | RX_VLAN_STRIP_ON = 1<<25, /* enable VLAN stripping */ | 1697 | RX_VLAN_STRIP_ON = 1<<25, /* enable VLAN stripping */ |
1693 | RX_VLAN_STRIP_OFF = 1<<24, /* disable VLAN stripping */ | 1698 | RX_VLAN_STRIP_OFF = 1<<24, /* disable VLAN stripping */ |
1694 | 1699 | ||
1700 | RX_MACSEC_FLUSH_ON = 1<<23, | ||
1701 | RX_MACSEC_FLUSH_OFF = 1<<22, | ||
1702 | RX_MACSEC_ASF_FLUSH_ON = 1<<21, | ||
1703 | RX_MACSEC_ASF_FLUSH_OFF = 1<<20, | ||
1704 | |||
1705 | GMF_RX_OVER_ON = 1<<19, /* enable flushing on receive overrun */ | ||
1706 | GMF_RX_OVER_OFF = 1<<18, /* disable flushing on receive overrun */ | ||
1707 | GMF_ASF_RX_OVER_ON = 1<<17, /* enable flushing of ASF when overrun */ | ||
1708 | GMF_ASF_RX_OVER_OFF = 1<<16, /* disable flushing of ASF when overrun */ | ||
1709 | |||
1695 | GMF_WP_TST_ON = 1<<14, /* Write Pointer Test On */ | 1710 | GMF_WP_TST_ON = 1<<14, /* Write Pointer Test On */ |
1696 | GMF_WP_TST_OFF = 1<<13, /* Write Pointer Test Off */ | 1711 | GMF_WP_TST_OFF = 1<<13, /* Write Pointer Test Off */ |
1697 | GMF_WP_STEP = 1<<12, /* Write Pointer Step/Increment */ | 1712 | GMF_WP_STEP = 1<<12, /* Write Pointer Step/Increment */ |
@@ -1804,6 +1819,15 @@ enum { | |||
1804 | 1819 | ||
1805 | /* GMAC_CTRL 32 bit GMAC Control Reg (YUKON only) */ | 1820 | /* GMAC_CTRL 32 bit GMAC Control Reg (YUKON only) */ |
1806 | enum { | 1821 | enum { |
1822 | GMC_SET_RST = 1<<15,/* MAC SEC RST */ | ||
1823 | GMC_SEC_RST_OFF = 1<<14,/* MAC SEC RSt OFF */ | ||
1824 | GMC_BYP_MACSECRX_ON = 1<<13,/* Bypass macsec RX */ | ||
1825 | GMC_BYP_MACSECRX_OFF= 1<<12,/* Bypass macsec RX off */ | ||
1826 | GMC_BYP_MACSECTX_ON = 1<<11,/* Bypass macsec TX */ | ||
1827 | GMC_BYP_MACSECTX_OFF= 1<<10,/* Bypass macsec TX off*/ | ||
1828 | GMC_BYP_RETR_ON = 1<<9, /* Bypass retransmit FIFO On */ | ||
1829 | GMC_BYP_RETR_OFF= 1<<8, /* Bypass retransmit FIFO Off */ | ||
1830 | |||
1807 | GMC_H_BURST_ON = 1<<7, /* Half Duplex Burst Mode On */ | 1831 | GMC_H_BURST_ON = 1<<7, /* Half Duplex Burst Mode On */ |
1808 | GMC_H_BURST_OFF = 1<<6, /* Half Duplex Burst Mode Off */ | 1832 | GMC_H_BURST_OFF = 1<<6, /* Half Duplex Burst Mode Off */ |
1809 | GMC_F_LOOPB_ON = 1<<5, /* FIFO Loopback On */ | 1833 | GMC_F_LOOPB_ON = 1<<5, /* FIFO Loopback On */ |
@@ -1889,9 +1913,13 @@ enum { | |||
1889 | OP_ADDR64VLAN = OP_ADDR64 | OP_VLAN, | 1913 | OP_ADDR64VLAN = OP_ADDR64 | OP_VLAN, |
1890 | OP_LRGLEN = 0x24, | 1914 | OP_LRGLEN = 0x24, |
1891 | OP_LRGLENVLAN = OP_LRGLEN | OP_VLAN, | 1915 | OP_LRGLENVLAN = OP_LRGLEN | OP_VLAN, |
1916 | OP_MSS = 0x28, | ||
1917 | OP_MSSVLAN = OP_MSS | OP_VLAN, | ||
1918 | |||
1892 | OP_BUFFER = 0x40, | 1919 | OP_BUFFER = 0x40, |
1893 | OP_PACKET = 0x41, | 1920 | OP_PACKET = 0x41, |
1894 | OP_LARGESEND = 0x43, | 1921 | OP_LARGESEND = 0x43, |
1922 | OP_LSOV2 = 0x45, | ||
1895 | 1923 | ||
1896 | /* YUKON-2 STATUS opcodes defines */ | 1924 | /* YUKON-2 STATUS opcodes defines */ |
1897 | OP_RXSTAT = 0x60, | 1925 | OP_RXSTAT = 0x60, |
@@ -1902,6 +1930,19 @@ enum { | |||
1902 | OP_RXTIMEVLAN = OP_RXTIMESTAMP | OP_RXVLAN, | 1930 | OP_RXTIMEVLAN = OP_RXTIMESTAMP | OP_RXVLAN, |
1903 | OP_RSS_HASH = 0x65, | 1931 | OP_RSS_HASH = 0x65, |
1904 | OP_TXINDEXLE = 0x68, | 1932 | OP_TXINDEXLE = 0x68, |
1933 | OP_MACSEC = 0x6c, | ||
1934 | OP_PUTIDX = 0x70, | ||
1935 | }; | ||
1936 | |||
1937 | enum status_css { | ||
1938 | CSS_TCPUDPCSOK = 1<<7, /* TCP / UDP checksum is ok */ | ||
1939 | CSS_ISUDP = 1<<6, /* packet is a UDP packet */ | ||
1940 | CSS_ISTCP = 1<<5, /* packet is a TCP packet */ | ||
1941 | CSS_ISIPFRAG = 1<<4, /* packet is a TCP/UDP frag, CS calc not done */ | ||
1942 | CSS_ISIPV6 = 1<<3, /* packet is a IPv6 packet */ | ||
1943 | CSS_IPV4CSUMOK = 1<<2, /* IP v4: TCP header checksum is ok */ | ||
1944 | CSS_ISIPV4 = 1<<1, /* packet is a IPv4 packet */ | ||
1945 | CSS_LINK_BIT = 1<<0, /* port number (legacy) */ | ||
1905 | }; | 1946 | }; |
1906 | 1947 | ||
1907 | /* Yukon 2 hardware interface */ | 1948 | /* Yukon 2 hardware interface */ |
@@ -1922,7 +1963,7 @@ struct sky2_rx_le { | |||
1922 | struct sky2_status_le { | 1963 | struct sky2_status_le { |
1923 | __le32 status; /* also checksum */ | 1964 | __le32 status; /* also checksum */ |
1924 | __le16 length; /* also vlan tag */ | 1965 | __le16 length; /* also vlan tag */ |
1925 | u8 link; | 1966 | u8 css; |
1926 | u8 opcode; | 1967 | u8 opcode; |
1927 | } __attribute((packed)); | 1968 | } __attribute((packed)); |
1928 | 1969 | ||