123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- /*
- * Copyright (C) 2018 - 2019 Xilinx, Inc.
- * All rights reserved.
- *
- * 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.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 THE AUTHOR 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.
- *
- * This file is part of the lwIP TCP/IP stack.
- *
- */
- #ifndef __XEMAC_IEEE_REGS_H_
- #define __XEMAC_IEEE_REGS_H_
- /* Advertisement control register. */
- #define ADVERTISE_10HALF 0x0020 /* Try for 10mbps half-duplex */
- #define ADVERTISE_1000XFULL 0x0020 /* Try for 1000BASE-X full-duplex */
- #define ADVERTISE_10FULL 0x0040 /* Try for 10mbps full-duplex */
- #define ADVERTISE_1000XHALF 0x0040 /* Try for 1000BASE-X half-duplex */
- #define ADVERTISE_100HALF 0x0080 /* Try for 100mbps half-duplex */
- #define ADVERTISE_1000XPAUSE 0x0080 /* Try for 1000BASE-X pause */
- #define ADVERTISE_100FULL 0x0100 /* Try for 100mbps full-duplex */
- #define ADVERTISE_1000XPSE_ASYM 0x0100 /* Try for 1000BASE-X asym pause */
- #define ADVERTISE_100BASE4 0x0200 /* Try for 100mbps 4k packets */
- #define ADVERTISE_100_AND_10 (ADVERTISE_10FULL | ADVERTISE_100FULL | \
- ADVERTISE_10HALF | ADVERTISE_100HALF)
- #define ADVERTISE_100 (ADVERTISE_100FULL | ADVERTISE_100HALF)
- #define ADVERTISE_10 (ADVERTISE_10FULL | ADVERTISE_10HALF)
- #define ADVERTISE_1000 0x0300
- #define IEEE_CONTROL_REG_OFFSET 0
- #define IEEE_STATUS_REG_OFFSET 1
- #define IEEE_AUTONEGO_ADVERTISE_REG 4
- #define IEEE_PARTNER_ABILITIES_1_REG_OFFSET 5
- #define IEEE_PARTNER_ABILITIES_2_REG_OFFSET 8
- #define IEEE_PARTNER_ABILITIES_3_REG_OFFSET 10
- #define IEEE_1000_ADVERTISE_REG_OFFSET 9
- #define IEEE_MMD_ACCESS_CONTROL_REG 13
- #define IEEE_MMD_ACCESS_ADDRESS_DATA_REG 14
- #define IEEE_COPPER_SPECIFIC_CONTROL_REG 16
- #define IEEE_SPECIFIC_STATUS_REG 17
- #define IEEE_COPPER_SPECIFIC_STATUS_REG_2 19
- #define IEEE_EXT_PHY_SPECIFIC_CONTROL_REG 20
- #define IEEE_CONTROL_REG_MAC 21
- #define IEEE_PAGE_ADDRESS_REGISTER 22
- #define IEEE_CTRL_1GBPS_LINKSPEED_MASK 0x2040
- #define IEEE_CTRL_LINKSPEED_MASK 0x0040
- #define IEEE_CTRL_LINKSPEED_1000M 0x0040
- #define IEEE_CTRL_LINKSPEED_100M 0x2000
- #define IEEE_CTRL_LINKSPEED_10M 0x0000
- #define IEEE_CTRL_FULL_DUPLEX 0x100
- #define IEEE_CTRL_RESET_MASK 0x8000
- #define IEEE_CTRL_AUTONEGOTIATE_ENABLE 0x1000
- #define IEEE_STAT_AUTONEGOTIATE_CAPABLE 0x0008
- #define IEEE_STAT_AUTONEGOTIATE_COMPLETE 0x0020
- #define IEEE_STAT_AUTONEGOTIATE_RESTART 0x0200
- #define IEEE_STAT_LINK_STATUS 0x0004
- #define IEEE_STAT_1GBPS_EXTENSIONS 0x0100
- #define IEEE_AN1_ABILITY_MASK 0x1FE0
- #define IEEE_AN3_ABILITY_MASK_1GBPS 0x0C00
- #define IEEE_AN1_ABILITY_MASK_100MBPS 0x0380
- #define IEEE_AN1_ABILITY_MASK_10MBPS 0x0060
- #define IEEE_RGMII_TXRX_CLOCK_DELAYED_MASK 0x0030
- #define IEEE_SPEED_MASK 0xC000
- #define IEEE_SPEED_1000 0x8000
- #define IEEE_SPEED_100 0x4000
- #define IEEE_ASYMMETRIC_PAUSE_MASK 0x0800
- #define IEEE_PAUSE_MASK 0x0400
- #define IEEE_AUTONEG_ERROR_MASK 0x8000
- #define IEEE_MMD_ACCESS_CTRL_DEVAD_MASK 0x1F
- #define IEEE_MMD_ACCESS_CTRL_PIDEVAD_MASK 0x801F
- #define IEEE_MMD_ACCESS_CTRL_NOPIDEVAD_MASK 0x401F
- #endif /* __XEMAC_IEEE_REGS_H_ */
|