mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-17 21:26:13 -07:00
imx_fec: Add support for multiple Tx DMA rings
More recent version of the IP block support more than one Tx DMA ring, so add the code implementing that feature. Cc: Peter Maydell <peter.maydell@linaro.org> Cc: Jason Wang <jasowang@redhat.com> Cc: Philippe Mathieu-Daudé <f4bug@amsat.org> Cc: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Cc: yurovsky@gmail.com Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
ebdd8cddb9
commit
f93f961c40
2 changed files with 130 additions and 21 deletions
|
|
@ -52,6 +52,8 @@
|
|||
#define ENET_TFWR 81
|
||||
#define ENET_FRBR 83
|
||||
#define ENET_FRSR 84
|
||||
#define ENET_TDSR1 89
|
||||
#define ENET_TDSR2 92
|
||||
#define ENET_RDSR 96
|
||||
#define ENET_TDSR 97
|
||||
#define ENET_MRBR 98
|
||||
|
|
@ -66,6 +68,8 @@
|
|||
#define ENET_FTRL 108
|
||||
#define ENET_TACC 112
|
||||
#define ENET_RACC 113
|
||||
#define ENET_TDAR1 121
|
||||
#define ENET_TDAR2 123
|
||||
#define ENET_MIIGSK_CFGR 192
|
||||
#define ENET_MIIGSK_ENR 194
|
||||
#define ENET_ATCR 256
|
||||
|
|
@ -105,13 +109,18 @@
|
|||
#define ENET_INT_WAKEUP (1 << 17)
|
||||
#define ENET_INT_TS_AVAIL (1 << 16)
|
||||
#define ENET_INT_TS_TIMER (1 << 15)
|
||||
#define ENET_INT_TXF2 (1 << 7)
|
||||
#define ENET_INT_TXB2 (1 << 6)
|
||||
#define ENET_INT_TXF1 (1 << 3)
|
||||
#define ENET_INT_TXB1 (1 << 2)
|
||||
|
||||
#define ENET_INT_MAC (ENET_INT_HB | ENET_INT_BABR | ENET_INT_BABT | \
|
||||
ENET_INT_GRA | ENET_INT_TXF | ENET_INT_TXB | \
|
||||
ENET_INT_RXF | ENET_INT_RXB | ENET_INT_MII | \
|
||||
ENET_INT_EBERR | ENET_INT_LC | ENET_INT_RL | \
|
||||
ENET_INT_UN | ENET_INT_PLR | ENET_INT_WAKEUP | \
|
||||
ENET_INT_TS_AVAIL)
|
||||
ENET_INT_TS_AVAIL | ENET_INT_TXF1 | \
|
||||
ENET_INT_TXB1 | ENET_INT_TXF2 | ENET_INT_TXB2)
|
||||
|
||||
/* RDAR */
|
||||
#define ENET_RDAR_RDAR (1 << 24)
|
||||
|
|
@ -234,6 +243,9 @@ typedef struct {
|
|||
|
||||
#define ENET_BD_BDU (1 << 31)
|
||||
|
||||
#define ENET_TX_RING_NUM 3
|
||||
|
||||
|
||||
typedef struct IMXFECState {
|
||||
/*< private >*/
|
||||
SysBusDevice parent_obj;
|
||||
|
|
@ -246,7 +258,9 @@ typedef struct IMXFECState {
|
|||
|
||||
uint32_t regs[ENET_MAX];
|
||||
uint32_t rx_descriptor;
|
||||
uint32_t tx_descriptor;
|
||||
|
||||
uint32_t tx_descriptor[ENET_TX_RING_NUM];
|
||||
uint32_t tx_ring_num;
|
||||
|
||||
uint32_t phy_status;
|
||||
uint32_t phy_control;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue