summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC
diff options
context:
space:
mode:
authorMandy Lavi <mandy.lavi@freescale.com>2013-11-27 11:07:31 (GMT)
committerJose Rivera <German.Rivera@freescale.com>2014-03-05 13:51:48 (GMT)
commit4376b89e78db40c173640cc05b9046707d9ddb58 (patch)
tree66319c387dc9aac3fcccee51e05a4f3e24d79a22 /drivers/net/ethernet/freescale/fman/Peripherals/FM/MAC
parentc25d6601c62a0099a6be8bcaa6f59dc6f9f9ab40 (diff)
downloadlinux-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.c11
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, &regs->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(&regs->tx_fifo_sections);
+ tmp &= 0xffff0000;
+ tmp |= 0x00000019;
+ iowrite32be(tmp, &regs->tx_fifo_sections);
+ }
+
/* clear all pending events and set-up interrupts */
fman_memac_ack_event(regs, 0xffffffff);
fman_memac_set_exception(regs, exceptions, TRUE);