mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 09:13:55 -06:00
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1 iQEcBAABAgAGBQJY/zFbAAoJEO8Ells5jWIR7LgH/A6lWkODVSKihnibRH82J9oe rTsDdLgAGAMAur++tmNorPadZyMe/2+Cu0VsiIv591ldILruN6+jJydBzFtWFYE5 JQKa2VSTDu6bHPhr/UpRnWLhGzaJogklJR6YLkonDJznb1UnnTwEZ8c8+XD4gWLo byo/dYF1yMnpVxSak/FkmCmwxc2K7s7P+r4FWO2CgAgY28F+/qERWJMbl1iUevQP E1PC/XXEvhMdxi+6oYmWACdbW9/KwC5KKVELsQWYU1DcpQ7rWXCtA/mtKxvX+ePw 7CUK9ldeFXHE8uWVDnh3cWUL65Q8OtZarjMbrnN7xzcQDhMysStvVNS4QckN6/I= =PEvc -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/jasowang/tags/net-pull-request' into staging # gpg: Signature made Tue 25 Apr 2017 12:22:03 BST # gpg: using RSA key 0xEF04965B398D6211 # gpg: Good signature from "Jason Wang (Jason Wang on RedHat) <jasowang@redhat.com>" # gpg: WARNING: This key is not certified with sufficiently trusted signatures! # gpg: It is not certain that the signature belongs to the owner. # Primary key fingerprint: 215D 46F4 8246 689E C77F 3562 EF04 965B 398D 6211 * remotes/jasowang/tags/net-pull-request: COLO-compare: Optimize tcp compare trace event COLO-compare: Optimize tcp compare for option field slirp: add a fake NC-SI backend aspeed: add a FTGMAC100 nic net/ftgmac100: add a 'aspeed' property net: add FTGMAC100 support hw/net: add MII definitions colo-compare: Fix old packet check bug. Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
b8c7193fe9
15 changed files with 1770 additions and 37 deletions
|
@ -20,6 +20,7 @@
|
|||
#include "hw/i2c/aspeed_i2c.h"
|
||||
#include "hw/ssi/aspeed_smc.h"
|
||||
#include "hw/watchdog/wdt_aspeed.h"
|
||||
#include "hw/net/ftgmac100.h"
|
||||
|
||||
#define ASPEED_SPIS_NUM 2
|
||||
|
||||
|
@ -39,6 +40,7 @@ typedef struct AspeedSoCState {
|
|||
AspeedSMCState spi[ASPEED_SPIS_NUM];
|
||||
AspeedSDMCState sdmc;
|
||||
AspeedWDTState wdt;
|
||||
FTGMAC100State ftgmac100;
|
||||
} AspeedSoCState;
|
||||
|
||||
#define TYPE_ASPEED_SOC "aspeed-soc"
|
||||
|
|
64
include/hw/net/ftgmac100.h
Normal file
64
include/hw/net/ftgmac100.h
Normal file
|
@ -0,0 +1,64 @@
|
|||
/*
|
||||
* Faraday FTGMAC100 Gigabit Ethernet
|
||||
*
|
||||
* Copyright (C) 2016-2017, IBM Corporation.
|
||||
*
|
||||
* This code is licensed under the GPL version 2 or later. See the
|
||||
* COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef FTGMAC100_H
|
||||
#define FTGMAC100_H
|
||||
|
||||
#define TYPE_FTGMAC100 "ftgmac100"
|
||||
#define FTGMAC100(obj) OBJECT_CHECK(FTGMAC100State, (obj), TYPE_FTGMAC100)
|
||||
|
||||
#include "hw/sysbus.h"
|
||||
#include "net/net.h"
|
||||
|
||||
typedef struct FTGMAC100State {
|
||||
/*< private >*/
|
||||
SysBusDevice parent_obj;
|
||||
|
||||
/*< public >*/
|
||||
NICState *nic;
|
||||
NICConf conf;
|
||||
qemu_irq irq;
|
||||
MemoryRegion iomem;
|
||||
|
||||
uint8_t *frame;
|
||||
|
||||
uint32_t irq_state;
|
||||
uint32_t isr;
|
||||
uint32_t ier;
|
||||
uint32_t rx_enabled;
|
||||
uint32_t rx_ring;
|
||||
uint32_t rx_descriptor;
|
||||
uint32_t tx_ring;
|
||||
uint32_t tx_descriptor;
|
||||
uint32_t math[2];
|
||||
uint32_t rbsr;
|
||||
uint32_t itc;
|
||||
uint32_t aptcr;
|
||||
uint32_t dblac;
|
||||
uint32_t revr;
|
||||
uint32_t fear1;
|
||||
uint32_t tpafcr;
|
||||
uint32_t maccr;
|
||||
uint32_t phycr;
|
||||
uint32_t phydata;
|
||||
uint32_t fcr;
|
||||
|
||||
|
||||
uint32_t phy_status;
|
||||
uint32_t phy_control;
|
||||
uint32_t phy_advertise;
|
||||
uint32_t phy_int;
|
||||
uint32_t phy_int_mask;
|
||||
|
||||
bool aspeed;
|
||||
uint32_t txdes0_edotr;
|
||||
uint32_t rxdes0_edorr;
|
||||
} FTGMAC100State;
|
||||
|
||||
#endif
|
|
@ -22,13 +22,20 @@
|
|||
#define MII_H
|
||||
|
||||
/* PHY registers */
|
||||
#define MII_BMCR 0
|
||||
#define MII_BMSR 1
|
||||
#define MII_PHYID1 2
|
||||
#define MII_PHYID2 3
|
||||
#define MII_ANAR 4
|
||||
#define MII_ANLPAR 5
|
||||
#define MII_ANER 6
|
||||
#define MII_BMCR 0 /* Basic mode control register */
|
||||
#define MII_BMSR 1 /* Basic mode status register */
|
||||
#define MII_PHYID1 2 /* ID register 1 */
|
||||
#define MII_PHYID2 3 /* ID register 2 */
|
||||
#define MII_ANAR 4 /* Autonegotiation advertisement */
|
||||
#define MII_ANLPAR 5 /* Autonegotiation lnk partner abilities */
|
||||
#define MII_ANER 6 /* Autonegotiation expansion */
|
||||
#define MII_ANNP 7 /* Autonegotiation next page */
|
||||
#define MII_ANLPRNP 8 /* Autonegotiation link partner rx next page */
|
||||
#define MII_CTRL1000 9 /* 1000BASE-T control */
|
||||
#define MII_STAT1000 10 /* 1000BASE-T status */
|
||||
#define MII_MDDACR 13 /* MMD access control */
|
||||
#define MII_MDDAADR 14 /* MMD access address data */
|
||||
#define MII_EXTSTAT 15 /* Extended Status */
|
||||
#define MII_NSR 16
|
||||
#define MII_LBREMR 17
|
||||
#define MII_REC 18
|
||||
|
@ -38,19 +45,33 @@
|
|||
/* PHY registers fields */
|
||||
#define MII_BMCR_RESET (1 << 15)
|
||||
#define MII_BMCR_LOOPBACK (1 << 14)
|
||||
#define MII_BMCR_SPEED (1 << 13)
|
||||
#define MII_BMCR_AUTOEN (1 << 12)
|
||||
#define MII_BMCR_FD (1 << 8)
|
||||
#define MII_BMCR_SPEED100 (1 << 13) /* LSB of Speed (100) */
|
||||
#define MII_BMCR_SPEED MII_BMCR_SPEED100
|
||||
#define MII_BMCR_AUTOEN (1 << 12) /* Autonegotiation enable */
|
||||
#define MII_BMCR_PDOWN (1 << 11) /* Enable low power state */
|
||||
#define MII_BMCR_ISOLATE (1 << 10) /* Isolate data paths from MII */
|
||||
#define MII_BMCR_ANRESTART (1 << 9) /* Auto negotiation restart */
|
||||
#define MII_BMCR_FD (1 << 8) /* Set duplex mode */
|
||||
#define MII_BMCR_CTST (1 << 7) /* Collision test */
|
||||
#define MII_BMCR_SPEED1000 (1 << 6) /* MSB of Speed (1000) */
|
||||
|
||||
#define MII_BMSR_100TX_FD (1 << 14)
|
||||
#define MII_BMSR_100TX_HD (1 << 13)
|
||||
#define MII_BMSR_10T_FD (1 << 12)
|
||||
#define MII_BMSR_10T_HD (1 << 11)
|
||||
#define MII_BMSR_MFPS (1 << 6)
|
||||
#define MII_BMSR_AN_COMP (1 << 5)
|
||||
#define MII_BMSR_AUTONEG (1 << 3)
|
||||
#define MII_BMSR_LINK_ST (1 << 2)
|
||||
#define MII_BMSR_100TX_FD (1 << 14) /* Can do 100mbps, full-duplex */
|
||||
#define MII_BMSR_100TX_HD (1 << 13) /* Can do 100mbps, half-duplex */
|
||||
#define MII_BMSR_10T_FD (1 << 12) /* Can do 10mbps, full-duplex */
|
||||
#define MII_BMSR_10T_HD (1 << 11) /* Can do 10mbps, half-duplex */
|
||||
#define MII_BMSR_100T2_FD (1 << 10) /* Can do 100mbps T2, full-duplex */
|
||||
#define MII_BMSR_100T2_HD (1 << 9) /* Can do 100mbps T2, half-duplex */
|
||||
#define MII_BMSR_EXTSTAT (1 << 8) /* Extended status in register 15 */
|
||||
#define MII_BMSR_MFPS (1 << 6) /* MII Frame Preamble Suppression */
|
||||
#define MII_BMSR_AN_COMP (1 << 5) /* Auto-negotiation complete */
|
||||
#define MII_BMSR_RFAULT (1 << 4) /* Remote fault */
|
||||
#define MII_BMSR_AUTONEG (1 << 3) /* Able to do auto-negotiation */
|
||||
#define MII_BMSR_LINK_ST (1 << 2) /* Link status */
|
||||
#define MII_BMSR_JABBER (1 << 1) /* Jabber detected */
|
||||
#define MII_BMSR_EXTCAP (1 << 0) /* Ext-reg capability */
|
||||
|
||||
#define MII_ANAR_PAUSE_ASYM (1 << 11) /* Try for asymetric pause */
|
||||
#define MII_ANAR_PAUSE (1 << 10) /* Try for pause */
|
||||
#define MII_ANAR_TXFD (1 << 8)
|
||||
#define MII_ANAR_TX (1 << 7)
|
||||
#define MII_ANAR_10FD (1 << 6)
|
||||
|
@ -58,17 +79,31 @@
|
|||
#define MII_ANAR_CSMACD (1 << 0)
|
||||
|
||||
#define MII_ANLPAR_ACK (1 << 14)
|
||||
#define MII_ANLPAR_PAUSEASY (1 << 11) /* can pause asymmetrically */
|
||||
#define MII_ANLPAR_PAUSE (1 << 10) /* can pause */
|
||||
#define MII_ANLPAR_TXFD (1 << 8)
|
||||
#define MII_ANLPAR_TX (1 << 7)
|
||||
#define MII_ANLPAR_10FD (1 << 6)
|
||||
#define MII_ANLPAR_10 (1 << 5)
|
||||
#define MII_ANLPAR_CSMACD (1 << 0)
|
||||
|
||||
#define MII_ANER_NWAY (1 << 0) /* Can do N-way auto-nego */
|
||||
|
||||
#define MII_CTRL1000_FULL (1 << 9) /* 1000BASE-T full duplex */
|
||||
#define MII_CTRL1000_HALF (1 << 8) /* 1000BASE-T half duplex */
|
||||
|
||||
#define MII_STAT1000_FULL (1 << 11) /* 1000BASE-T full duplex */
|
||||
#define MII_STAT1000_HALF (1 << 10) /* 1000BASE-T half duplex */
|
||||
|
||||
/* List of vendor identifiers */
|
||||
/* RealTek 8201 */
|
||||
#define RTL8201CP_PHYID1 0x0000
|
||||
#define RTL8201CP_PHYID2 0x8201
|
||||
|
||||
/* RealTek 8211E */
|
||||
#define RTL8211E_PHYID1 0x001c
|
||||
#define RTL8211E_PHYID2 0xc915
|
||||
|
||||
/* National Semiconductor DP83848 */
|
||||
#define DP83848_PHYID1 0x2000
|
||||
#define DP83848_PHYID2 0x5c90
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue