All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrey Smirnov <andrew.smirnov@gmail.com>
To: qemu-arm@nongnu.org
Cc: "Andrey Smirnov" <andrew.smirnov@gmail.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Jason Wang" <jasowang@redhat.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	qemu-devel@nongnu.org, yurovsky@gmail.com
Subject: [Qemu-devel] [PATCH 05/13] imx_fec: Use ENET_FTRL to determine truncation length
Date: Mon, 11 Dec 2017 13:29:59 -0800	[thread overview]
Message-ID: <20171211213007.7353-6-andrew.smirnov@gmail.com> (raw)
In-Reply-To: <20171211213007.7353-1-andrew.smirnov@gmail.com>

Frame truncation length, TRUNC_FL, is determined by the contents of
ENET_FTRL register, so convert the code to use it instead of a
hardcoded constant.

To avoid the case where TRUNC_FL is greater that ENET_MAX_FRAME_SIZE,
increase the value of the latter to its theoretical maximum of 16K.

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
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
---
 hw/net/imx_fec.c         | 4 ++--
 include/hw/net/imx_fec.h | 3 ++-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/hw/net/imx_fec.c b/hw/net/imx_fec.c
index 56cb72273c..50da91bf9e 100644
--- a/hw/net/imx_fec.c
+++ b/hw/net/imx_fec.c
@@ -1052,8 +1052,8 @@ static ssize_t imx_enet_receive(NetClientState *nc, const uint8_t *buf,
     crc_ptr = (uint8_t *) &crc;
 
     /* Huge frames are truncted.  */
-    if (size > ENET_MAX_FRAME_SIZE) {
-        size = ENET_MAX_FRAME_SIZE;
+    if (size > s->regs[ENET_FTRL]) {
+        size = s->regs[ENET_FTRL];
         flags |= ENET_BD_TR | ENET_BD_LG;
     }
 
diff --git a/include/hw/net/imx_fec.h b/include/hw/net/imx_fec.h
index 67993870a2..a390d704a6 100644
--- a/include/hw/net/imx_fec.h
+++ b/include/hw/net/imx_fec.h
@@ -86,7 +86,6 @@
 #define ENET_TCCR3             393
 #define ENET_MAX               400
 
-#define ENET_MAX_FRAME_SIZE    2032
 
 /* EIR and EIMR */
 #define ENET_INT_HB            (1 << 31)
@@ -155,6 +154,8 @@
 #define ENET_RCR_NLC           (1 << 30)
 #define ENET_RCR_GRS           (1 << 31)
 
+#define ENET_MAX_FRAME_SIZE    (1 << ENET_RCR_MAX_FL_LENGTH)
+
 /* TCR */
 #define ENET_TCR_GTS           (1 << 0)
 #define ENET_TCR_FDEN          (1 << 2)
-- 
2.14.3

  parent reply	other threads:[~2017-12-11 21:30 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-11 21:29 [Qemu-devel] [PATCH 00/13] i.MX FEC and SD changes Andrey Smirnov
2017-12-11 21:29 ` [Qemu-devel] [PATCH 01/13] imx_fec: Do not link to netdev Andrey Smirnov
2017-12-11 21:29 ` [Qemu-devel] [PATCH 02/13] imx_fec: Refactor imx_eth_enable_rx() Andrey Smirnov
2017-12-11 21:29 ` [Qemu-devel] [PATCH 03/13] imx_fec: Change queue flushing heuristics Andrey Smirnov
2017-12-11 21:29 ` Andrey Smirnov [this message]
2017-12-11 21:30 ` [Qemu-devel] [PATCH 06/13] imx_fec: Use MIN instead of explicit ternary operator Andrey Smirnov
2017-12-11 21:30 ` [Qemu-devel] [PATCH 07/13] imx_fec: Emulate SHIFT16 in ENETx_RACC Andrey Smirnov
2017-12-11 21:30 ` [Qemu-devel] [PATCH 08/13] imx_fec: Add support for multiple Tx DMA rings Andrey Smirnov
2017-12-11 21:30 ` [Qemu-devel] [PATCH 09/13] imx_fec: Use correct length for packet size Andrey Smirnov
2017-12-11 21:30 ` [Qemu-devel] [PATCH 10/13] imx_fec: Fix a typo in imx_enet_receive() Andrey Smirnov
2017-12-12 17:32   ` Peter Maydell
2017-12-11 21:30 ` [Qemu-devel] [PATCH 11/13] imx_fec: Reserve full FSL_IMX25_FEC_SIZE page for the register file Andrey Smirnov
2017-12-12 17:32   ` Peter Maydell
2017-12-11 21:30 ` [Qemu-devel] [PATCH 12/13] sdhci: Add i.MX specific subtype of SDHCI Andrey Smirnov
2017-12-12 17:52   ` Peter Maydell
2017-12-14 14:03     ` Andrey Smirnov
2017-12-14 15:32       ` Philippe Mathieu-Daudé
2017-12-14 16:05         ` Andrey Smirnov
2017-12-14 16:17           ` Philippe Mathieu-Daudé
2017-12-11 21:30 ` [Qemu-devel] [PATCH 13/13] sdhci: Implement write method of ACMD12ERRSTS register Andrey Smirnov
2017-12-12 17:40 ` [Qemu-devel] [PATCH 00/13] i.MX FEC and SD changes Peter Maydell
2017-12-14  2:09   ` Philippe Mathieu-Daudé
2017-12-14 14:11     ` Andrey Smirnov
2017-12-14 14:09   ` Andrey Smirnov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171211213007.7353-6-andrew.smirnov@gmail.com \
    --to=andrew.smirnov@gmail.com \
    --cc=f4bug@amsat.org \
    --cc=jasowang@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=yurovsky@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.