diff options
author | Mandy Lavi <mandy.lavi@freescale.com> | 2013-11-27 11:07:31 (GMT) |
---|---|---|
committer | Jose Rivera <German.Rivera@freescale.com> | 2014-03-05 13:51:48 (GMT) |
commit | 4376b89e78db40c173640cc05b9046707d9ddb58 (patch) | |
tree | 66319c387dc9aac3fcccee51e05a4f3e24d79a22 /drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC | |
parent | c25d6601c62a0099a6be8bcaa6f59dc6f9f9ab40 (diff) | |
download | linux-fsl-qoriq-4376b89e78db40c173640cc05b9046707d9ddb58.tar.xz |
fmd: memac: add tx_fifo_sections register initialization
B4/T4 rev2 introduced two new registers in memac block
named: RX_FIFO_SECTIONS and TX_FIFO_SECTIONS
TX_FIFO_SECTIONS[TX_AVAIL] field requires a specific (non default)
init value when working with 10g interface (0x19)
Change-Id: Ic577e24d10031b2f2f1697006a6d5be52db19f4e
Signed-off-by: Mandy Lavi <mandy.lavi@freescale.com>
Reviewed-on: http://git.am.freescale.net:8181/6882
Reviewed-by: Haiying Wang <Haiying.Wang@freescale.com>
Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com>
Reviewed-by: Thomas Trefny <Tom.Trefny@freescale.com>
(cherry picked from commit 2818e16b8a8c4f49ef8c7438505f0dc952b3d46f)
Change-Id: Ic577e24d10031b2f2f1697006a6d5be52db19f4e
Reviewed-on: http://git.am.freescale.net:8181/7386
Reviewed-by: Jose Rivera <German.Rivera@freescale.com>
Tested-by: Jose Rivera <German.Rivera@freescale.com>
(cherry picked from commit fc1388287f2ad1566be2b7c8c6897a277e96ca98)
Change-Id: Ic577e24d10031b2f2f1697006a6d5be52db19f4e
Reviewed-on: http://git.am.freescale.net:8181/9382
Reviewed-by: Jose Rivera <German.Rivera@freescale.com>
Tested-by: Jose Rivera <German.Rivera@freescale.com>
Diffstat (limited to 'drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC')
-rw-r--r-- | drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fman_memac.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fman_memac.c b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fman_memac.c index 145fb03..64295c5 100644 --- a/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fman_memac.c +++ b/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC/fman_memac.c @@ -209,7 +209,16 @@ int fman_memac_init(struct memac_regs *regs, tmp |= IF_MODE_RGMII | IF_MODE_RGMII_AUTO; } iowrite32be(tmp, ®s->if_mode); - + + /* from RM: For 10G rate mac tx_fifo_sections[TX_AVAIL] should be 0x19 */ + if (enet_interface == E_ENET_IF_XGMII || + enet_interface == E_ENET_IF_XFI) { + tmp = ioread32be(®s->tx_fifo_sections); + tmp &= 0xffff0000; + tmp |= 0x00000019; + iowrite32be(tmp, ®s->tx_fifo_sections); + } + /* clear all pending events and set-up interrupts */ fman_memac_ack_event(regs, 0xffffffff); fman_memac_set_exception(regs, exceptions, TRUE); |