All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V2][linux-fslc][4.1-1.0.x-imx] net: fec: support RRACC_SHIFT16 to align IP header
@ 2016-09-24 12:18 Eric Nelson
  2016-09-24 14:00 ` [PATCH V3 0/4][linux-fslc][4.1-1.0.x-imx] net: fec: updates " Eric Nelson
  0 siblings, 1 reply; 9+ messages in thread
From: Eric Nelson @ 2016-09-24 12:18 UTC (permalink / raw)
  To: meta-freescale; +Cc: andrew, linux, fugang.duan, otavio

The i.MX6 UL and DQLS variants all support shifting the data payload
of received packets by 16-bits, which aligns the IP header on a longword
boundary, which is, if not required, at least strongly suggested by the
Linux networking layer.

Without this patch, a huge number of alignment faults will be taken
by the IP stack, as seen in /proc/cpu/alignment:

	~/$ cat /proc/cpu/alignment
	User:		0
	System:		72645 (inet_gro_receive+0x104/0x27c)
	Skipped:	0
	Half:		0
	Word:		0
	DWord:		0
	Multi:		72645
	User faults:	3 (fixup+warn)

This patch was suggested by Andrew Lunn in this message to linux-netdev:
	http://marc.info/?l=linux-arm-kernel&m=147465452108384&w=2

and adapted from a patch by Russell King from 2014:
	http://git.arm.linux.org.uk/cgit/linux-arm.git/commit/?h=fec-testing&id=70d8a8a

Signed-off-by: Eric Nelson <eric@nelint.com>
---
V2 removes code in fec_enet_copybreak() that strips the two bytes of padding
and breaks the alignment. The call to skb_pull_inline in the caller instructs
the IP stack to ignore these bytes. With V2, no alignment errors are seen.

I've only tested this patch on i.MX6UL at the moment, and encourage others using
4.1.x to try it out.

I looked at the RM for the i.MX6SX and updates will be needed for that SOC
because the bit is in a different location.

Note that there are lots of other patches in Russell's tree that deserve 
some effort in bringing up-stream and I encourage others to make use of
his work.

 drivers/net/ethernet/freescale/fec.h      |  4 ++++
 drivers/net/ethernet/freescale/fec_main.c | 24 ++++++++++++++++++------
 2 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ethernet/freescale/fec.h b/drivers/net/ethernet/freescale/fec.h
index 65a3cd3..5ed0a5c 100644
--- a/drivers/net/ethernet/freescale/fec.h
+++ b/drivers/net/ethernet/freescale/fec.h
@@ -436,6 +436,7 @@ struct bufdesc_ex {
 #define FEC_QUIRK_SINGLE_MDIO		(1 << 11)
 /* Controller supports RACC register */
 #define FEC_QUIRK_HAS_RACC		(1 << 12)
+
 /*
  * i.MX6Q/DL ENET cannot wake up system in wait mode because ENET tx & rx
  * interrupt signal don't connect to GPC. So use pm qos to avoid cpu enter
@@ -443,6 +444,9 @@ struct bufdesc_ex {
  */
 #define FEC_QUIRK_BUG_WAITMODE         (1 << 13)
 
+/* Controller has ability to offset rx packets */
+#define FEC_QUIRK_RX_SHIFT16            (1 << 14)
+
 struct fec_enet_stop_mode {
 	struct regmap *gpr;
 	u8 req_gpr;
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index 0f9ed22..88a6e5e 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -103,7 +103,8 @@ static struct platform_device_id fec_devtype[] = {
 		.driver_data = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_GBIT |
 				FEC_QUIRK_HAS_BUFDESC_EX | FEC_QUIRK_HAS_CSUM |
 				FEC_QUIRK_HAS_VLAN | FEC_QUIRK_ERR006358 |
-				FEC_QUIRK_HAS_RACC | FEC_QUIRK_BUG_WAITMODE,
+				FEC_QUIRK_HAS_RACC | FEC_QUIRK_BUG_WAITMODE |
+				FEC_QUIRK_RX_SHIFT16,
 	}, {
 		.name = "mvf600-fec",
 		.driver_data = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_RACC,
@@ -118,7 +119,8 @@ static struct platform_device_id fec_devtype[] = {
 		.name = "imx6ul-fec",
 		.driver_data = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_GBIT |
 				FEC_QUIRK_HAS_BUFDESC_EX | FEC_QUIRK_HAS_CSUM |
-				FEC_QUIRK_HAS_VLAN,
+				FEC_QUIRK_HAS_VLAN | FEC_QUIRK_HAS_RACC |
+				FEC_QUIRK_RX_SHIFT16,
 	}, {
 		/* sentinel */
 	}
@@ -180,6 +182,7 @@ MODULE_PARM_DESC(macaddr, "FEC Ethernet MAC address");
 /* FEC receive acceleration */
 #define FEC_RACC_IPDIS		(1 << 1)
 #define FEC_RACC_PRODIS		(1 << 2)
+#define FEC_RACC_SHIFT16	BIT(7)
 #define FEC_RACC_OPTIONS	(FEC_RACC_IPDIS | FEC_RACC_PRODIS)
 
 /*
@@ -985,9 +988,11 @@ fec_restart(struct net_device *ndev)
 
 #if !defined(CONFIG_M5272)
 	if (fep->quirks & FEC_QUIRK_HAS_RACC) {
-		/* set RX checksum */
 		val = readl(fep->hwp + FEC_RACC);
+		if (fep->quirks & FEC_QUIRK_RX_SHIFT16)
+			val |= FEC_RACC_SHIFT16;
 		if (fep->csum_flags & FLAG_RX_CSUM_ENABLED)
+			/* set RX checksum */
 			val |= FEC_RACC_OPTIONS;
 		else
 			val &= ~FEC_RACC_OPTIONS;
@@ -1387,6 +1392,7 @@ static bool fec_enet_copybreak(struct net_device *ndev, struct sk_buff **skb,
 {
 	struct  fec_enet_private *fep = netdev_priv(ndev);
 	struct sk_buff *new_skb;
+	unsigned char *data = (*skb)->data;
 
 	if (length > fep->rx_copybreak)
 		return false;
@@ -1399,9 +1405,9 @@ static bool fec_enet_copybreak(struct net_device *ndev, struct sk_buff **skb,
 				FEC_ENET_RX_FRSIZE - fep->rx_align,
 				DMA_FROM_DEVICE);
 	if (!swap)
-		memcpy(new_skb->data, (*skb)->data, length);
+		memcpy(new_skb->data, data, length);
 	else
-		swap_buffer2(new_skb->data, (*skb)->data, length);
+		swap_buffer2(new_skb->data, data, length);
 	*skb = new_skb;
 
 	return true;
@@ -1420,7 +1426,6 @@ fec_enet_rx_queue(struct net_device *ndev, int budget, u16 queue_id)
 	struct bufdesc *bdp;
 	unsigned short status;
 	struct  sk_buff *skb_new = NULL;
-	struct  sk_buff *skb;
 	ushort	pkt_len;
 	__u8 *data;
 	int	pkt_received = 0;
@@ -1443,6 +1448,7 @@ fec_enet_rx_queue(struct net_device *ndev, int budget, u16 queue_id)
 	bdp = rxq->cur_rx;
 
 	while (!((status = bdp->cbd_sc) & BD_ENET_RX_EMPTY)) {
+		struct  sk_buff *skb;
 
 		if (pkt_received >= budget)
 			break;
@@ -1504,6 +1510,12 @@ fec_enet_rx_queue(struct net_device *ndev, int budget, u16 queue_id)
 		prefetch(skb->data - NET_IP_ALIGN);
 		skb_put(skb, pkt_len - 4);
 		data = skb->data;
+
+#if !defined(CONFIG_M5272)
+		if (fep->quirks & FEC_QUIRK_RX_SHIFT16)
+			data = skb_pull_inline(skb, 2);
+#endif
+
 		if (!is_copybreak && need_swap)
 			swap_buffer(data, pkt_len);
 
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH V3 0/4][linux-fslc][4.1-1.0.x-imx] net: fec: updates to align IP header
  2016-09-24 12:18 [PATCH V2][linux-fslc][4.1-1.0.x-imx] net: fec: support RRACC_SHIFT16 to align IP header Eric Nelson
@ 2016-09-24 14:00 ` Eric Nelson
  2016-09-24 14:00   ` [PATCH V3 1/4][linux-fslc][4.1-1.0.x-imx] net: fec: remove QUIRK_HAS_RACC from i.mx25 Eric Nelson
                     ` (5 more replies)
  0 siblings, 6 replies; 9+ messages in thread
From: Eric Nelson @ 2016-09-24 14:00 UTC (permalink / raw)
  To: meta-freescale; +Cc: andrew, linux, fugang.duan, otavio

This patch series 

The first two patches remove support for the receive accelerator (RACC) from
the i.MX25 and i.MX27 SoCs which don't support the function.

The third patch enables the RACC for i.MX6UL (Ultra Lite), which does support
the feature.

The fourth patch enables hardware alignment of the ethernet packet payload
(and especially the IP header) to prevent alignment faults in the IP stack.

Eric Nelson (4):
  net: fec: remove QUIRK_HAS_RACC from i.mx25
  net: fec: remove QUIRK_HAS_RACC from i.mx27
  net: fec: enable RACC on imx6ul
  net: fec: support RRACC_SHIFT16 to align IP header

 drivers/net/ethernet/freescale/fec_main.c | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

-- 
2.7.4



^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH V3 1/4][linux-fslc][4.1-1.0.x-imx] net: fec: remove QUIRK_HAS_RACC from i.mx25
  2016-09-24 14:00 ` [PATCH V3 0/4][linux-fslc][4.1-1.0.x-imx] net: fec: updates " Eric Nelson
@ 2016-09-24 14:00   ` Eric Nelson
  2016-09-24 14:00   ` [PATCH V3 2/4][linux-fslc][4.1-1.0.x-imx] net: fec: remove QUIRK_HAS_RACC from i.mx27 Eric Nelson
                     ` (4 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Eric Nelson @ 2016-09-24 14:00 UTC (permalink / raw)
  To: meta-freescale; +Cc: andrew, linux, fugang.duan, otavio

According to the i.MX25 reference manual, this SoC does not have support
for the receive accelerator (RACC) register at offset 0x1C4.

http://www.nxp.com/files/dsp/doc/ref_manual/IMX25RM.pdf

Signed-off-by: Eric Nelson <eric@nelint.com>
---
 drivers/net/ethernet/freescale/fec_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index 0f9ed22..9cd56e1 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -90,7 +90,7 @@ static struct platform_device_id fec_devtype[] = {
 		.driver_data = 0,
 	}, {
 		.name = "imx25-fec",
-		.driver_data = FEC_QUIRK_USE_GASKET | FEC_QUIRK_HAS_RACC,
+		.driver_data = FEC_QUIRK_USE_GASKET,
 	}, {
 		.name = "imx27-fec",
 		.driver_data = FEC_QUIRK_HAS_RACC,
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH V3 2/4][linux-fslc][4.1-1.0.x-imx] net: fec: remove QUIRK_HAS_RACC from i.mx27
  2016-09-24 14:00 ` [PATCH V3 0/4][linux-fslc][4.1-1.0.x-imx] net: fec: updates " Eric Nelson
  2016-09-24 14:00   ` [PATCH V3 1/4][linux-fslc][4.1-1.0.x-imx] net: fec: remove QUIRK_HAS_RACC from i.mx25 Eric Nelson
@ 2016-09-24 14:00   ` Eric Nelson
  2016-09-24 14:00   ` [PATCH V3 3/4][linux-fslc][4.1-1.0.x-imx] net: fec: enable RACC on imx6ul Eric Nelson
                     ` (3 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Eric Nelson @ 2016-09-24 14:00 UTC (permalink / raw)
  To: meta-freescale; +Cc: andrew, linux, fugang.duan, otavio

According to the i.MX27 reference manual, this SoC does not have support
for the receive accelerator (RACC) register at offset 0x1C4.

	http://cache.nxp.com/files/32bit/doc/ref_manual/MCIMX27RM.pdf

Signed-off-by: Eric Nelson <eric@nelint.com>
---
 drivers/net/ethernet/freescale/fec_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index 9cd56e1..e7182ef 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -93,7 +93,7 @@ static struct platform_device_id fec_devtype[] = {
 		.driver_data = FEC_QUIRK_USE_GASKET,
 	}, {
 		.name = "imx27-fec",
-		.driver_data = FEC_QUIRK_HAS_RACC,
+		.driver_data = 0,
 	}, {
 		.name = "imx28-fec",
 		.driver_data = FEC_QUIRK_ENET_MAC | FEC_QUIRK_SWAP_FRAME |
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH V3 3/4][linux-fslc][4.1-1.0.x-imx] net: fec: enable RACC on imx6ul
  2016-09-24 14:00 ` [PATCH V3 0/4][linux-fslc][4.1-1.0.x-imx] net: fec: updates " Eric Nelson
  2016-09-24 14:00   ` [PATCH V3 1/4][linux-fslc][4.1-1.0.x-imx] net: fec: remove QUIRK_HAS_RACC from i.mx25 Eric Nelson
  2016-09-24 14:00   ` [PATCH V3 2/4][linux-fslc][4.1-1.0.x-imx] net: fec: remove QUIRK_HAS_RACC from i.mx27 Eric Nelson
@ 2016-09-24 14:00   ` Eric Nelson
  2016-09-24 14:00   ` [PATCH V3 4/4][linux-fslc][4.1-1.0.x-imx] net: fec: align IP Eric Nelson
                     ` (2 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Eric Nelson @ 2016-09-24 14:00 UTC (permalink / raw)
  To: meta-freescale; +Cc: andrew, linux, fugang.duan, otavio

The Fast Ethernet Controller (fec) on the i.MX6UL SoC has support
for the receive accelerator (RACC), so enable the quirk.

Signed-off-by: Eric Nelson <eric@nelint.com>
---
 drivers/net/ethernet/freescale/fec_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index e7182ef..c196275 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -118,7 +118,7 @@ static struct platform_device_id fec_devtype[] = {
 		.name = "imx6ul-fec",
 		.driver_data = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_GBIT |
 				FEC_QUIRK_HAS_BUFDESC_EX | FEC_QUIRK_HAS_CSUM |
-				FEC_QUIRK_HAS_VLAN,
+				FEC_QUIRK_HAS_RACC | FEC_QUIRK_HAS_VLAN,
 	}, {
 		/* sentinel */
 	}
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH V3 4/4][linux-fslc][4.1-1.0.x-imx] net: fec: align IP
  2016-09-24 14:00 ` [PATCH V3 0/4][linux-fslc][4.1-1.0.x-imx] net: fec: updates " Eric Nelson
                     ` (2 preceding siblings ...)
  2016-09-24 14:00   ` [PATCH V3 3/4][linux-fslc][4.1-1.0.x-imx] net: fec: enable RACC on imx6ul Eric Nelson
@ 2016-09-24 14:00   ` Eric Nelson
  2016-09-24 15:10   ` [PATCH V3 0/4][linux-fslc][4.1-1.0.x-imx] net: fec: updates to align IP header Andy Duan
  2016-09-26 11:24   ` Otavio Salvador
  5 siblings, 0 replies; 9+ messages in thread
From: Eric Nelson @ 2016-09-24 14:00 UTC (permalink / raw)
  To: meta-freescale; +Cc: andrew, linux, fugang.duan, otavio

The FEC receive accelerator (RACC) supports shifting the data payload of 
received packets by 16-bits, which aligns the payload (IP header) on a 
4-byte boundary, which is, if not required, at least strongly suggested
by the Linux networking layer.

Without this patch, a huge number of alignment faults will be taken by the
IP stack, as seen in /proc/cpu/alignment:

	~/$ cat /proc/cpu/alignment
	User:		0
	System:		72645 (inet_gro_receive+0x104/0x27c)
	Skipped:	0
	Half:		0
	Word:		0
	DWord:		0
	Multi:		72645
	User faults:	3 (fixup+warn)

This patch was suggested by Andrew Lunn in this message to linux-netdev:
	http://marc.info/?l=linux-arm-kernel&m=147465452108384&w=2

and adapted from a patch by Russell King from 2014:
	http://git.arm.linux.org.uk/cgit/linux-arm.git/commit/?id=70d8a8a

Signed-off-by: Eric Nelson <eric@nelint.com>
---
V3 uses FEC_QUIRK_HAS_RACC to test for support, since all devices with the
receive accelerator support the SHIFT16 bit. It also removes support for 
FEC_QUIRK_HAS_RACC from i.MX25 and i.MX27 which don't appear to support the
feature and separates the addition of the quirk for i.MX6UL into a separate
patch.

Note that I haven't found the reference manual for mvf600, so this should be
tested.

V2 removes code in fec_enet_copybreak() that strips the two bytes of padding
and breaks the alignment. The call to skb_pull_inline in the caller instructs
the IP stack to ignore these bytes. With V2, no alignment errors are seen.

I've only tested this patch on i.MX6UL at the moment, and encourage others using
4.1.x to try it out.

Note that there are lots of other patches in Russell's tree that deserve 
some effort in bringing up-stream and I encourage others to make use of
his work.

 drivers/net/ethernet/freescale/fec_main.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index c196275..659e1c9 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -180,6 +180,7 @@ MODULE_PARM_DESC(macaddr, "FEC Ethernet MAC address");
 /* FEC receive acceleration */
 #define FEC_RACC_IPDIS		(1 << 1)
 #define FEC_RACC_PRODIS		(1 << 2)
+#define FEC_RACC_SHIFT16	BIT(7)
 #define FEC_RACC_OPTIONS	(FEC_RACC_IPDIS | FEC_RACC_PRODIS)
 
 /*
@@ -985,9 +986,11 @@ fec_restart(struct net_device *ndev)
 
 #if !defined(CONFIG_M5272)
 	if (fep->quirks & FEC_QUIRK_HAS_RACC) {
-		/* set RX checksum */
 		val = readl(fep->hwp + FEC_RACC);
+		/* align IP header */
+		val |= FEC_RACC_SHIFT16;
 		if (fep->csum_flags & FLAG_RX_CSUM_ENABLED)
+			/* set RX checksum */
 			val |= FEC_RACC_OPTIONS;
 		else
 			val &= ~FEC_RACC_OPTIONS;
@@ -1443,7 +1446,6 @@ fec_enet_rx_queue(struct net_device *ndev, int budget, u16 queue_id)
 	bdp = rxq->cur_rx;
 
 	while (!((status = bdp->cbd_sc) & BD_ENET_RX_EMPTY)) {
-
 		if (pkt_received >= budget)
 			break;
 		pkt_received++;
@@ -1504,6 +1506,12 @@ fec_enet_rx_queue(struct net_device *ndev, int budget, u16 queue_id)
 		prefetch(skb->data - NET_IP_ALIGN);
 		skb_put(skb, pkt_len - 4);
 		data = skb->data;
+
+#if !defined(CONFIG_M5272)
+		if (fep->quirks & FEC_QUIRK_HAS_RACC)
+			data = skb_pull_inline(skb, 2);
+#endif
+
 		if (!is_copybreak && need_swap)
 			swap_buffer(data, pkt_len);
 
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH V3 0/4][linux-fslc][4.1-1.0.x-imx] net: fec: updates to align IP header
  2016-09-24 14:00 ` [PATCH V3 0/4][linux-fslc][4.1-1.0.x-imx] net: fec: updates " Eric Nelson
                     ` (3 preceding siblings ...)
  2016-09-24 14:00   ` [PATCH V3 4/4][linux-fslc][4.1-1.0.x-imx] net: fec: align IP Eric Nelson
@ 2016-09-24 15:10   ` Andy Duan
  2016-09-24 15:32     ` Eric Nelson
  2016-09-26 11:24   ` Otavio Salvador
  5 siblings, 1 reply; 9+ messages in thread
From: Andy Duan @ 2016-09-24 15:10 UTC (permalink / raw)
  To: Eric Nelson, meta-freescale; +Cc: andrew, linux, otavio

From: Eric Nelson <eric@nelint.com> Sent: Saturday, September 24, 2016 10:01 PM
> To: meta-freescale@yoctoproject.org
> Cc: linux@arm.linux.org.uk; andrew@lunn.ch; Andy Duan
> <fugang.duan@nxp.com>; otavio@ossystems.com.br; Eric Nelson
> <eric@nelint.com>
> Subject: [PATCH V3 0/4][linux-fslc][4.1-1.0.x-imx] net: fec: updates to align IP
> header
> 
> This patch series
> 
> The first two patches remove support for the receive accelerator (RACC)
> from the i.MX25 and i.MX27 SoCs which don't support the function.
> 
> The third patch enables the RACC for i.MX6UL (Ultra Lite), which does
> support the feature.
> 
> The fourth patch enables hardware alignment of the ethernet packet
> payload (and especially the IP header) to prevent alignment faults in the IP
> stack.
> 
> Eric Nelson (4):
>   net: fec: remove QUIRK_HAS_RACC from i.mx25
>   net: fec: remove QUIRK_HAS_RACC from i.mx27
>   net: fec: enable RACC on imx6ul
>   net: fec: support RRACC_SHIFT16 to align IP header
> 
>  drivers/net/ethernet/freescale/fec_main.c | 24 +++++++++++++++++-------
>  1 file changed, 17 insertions(+), 7 deletions(-)
> 
> --
> 2.7.4

Acked-by: Fugang Duan <fugang.duan@nxp.com>


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH V3 0/4][linux-fslc][4.1-1.0.x-imx] net: fec: updates to align IP header
  2016-09-24 15:10   ` [PATCH V3 0/4][linux-fslc][4.1-1.0.x-imx] net: fec: updates to align IP header Andy Duan
@ 2016-09-24 15:32     ` Eric Nelson
  0 siblings, 0 replies; 9+ messages in thread
From: Eric Nelson @ 2016-09-24 15:32 UTC (permalink / raw)
  To: Andy Duan, meta-freescale; +Cc: andrew, linux, otavio

Hi Andy,

On 09/24/2016 08:10 AM, Andy Duan wrote:
> From: Eric Nelson <eric@nelint.com> Sent: Saturday, September 24, 2016 10:01 PM
>> To: meta-freescale@yoctoproject.org
>> Cc: linux@arm.linux.org.uk; andrew@lunn.ch; Andy Duan
>> <fugang.duan@nxp.com>; otavio@ossystems.com.br; Eric Nelson
>> <eric@nelint.com>
>> Subject: [PATCH V3 0/4][linux-fslc][4.1-1.0.x-imx] net: fec: updates to align IP
>> header
>>
>> This patch series

Oops. Looks like I saw a squirrel! (bad literary reference to "Up")

I mean to say:

This patch series is the outcome of investigation into very high
numbers of alignment faults on kernel 4.1.33 from the linux-fslc
tree as discussed in this thread on the linux-netdev mailing list.

http://www.spinics.net/lists/netdev/msg397008.html



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH V3 0/4][linux-fslc][4.1-1.0.x-imx] net: fec: updates to align IP header
  2016-09-24 14:00 ` [PATCH V3 0/4][linux-fslc][4.1-1.0.x-imx] net: fec: updates " Eric Nelson
                     ` (4 preceding siblings ...)
  2016-09-24 15:10   ` [PATCH V3 0/4][linux-fslc][4.1-1.0.x-imx] net: fec: updates to align IP header Andy Duan
@ 2016-09-26 11:24   ` Otavio Salvador
  5 siblings, 0 replies; 9+ messages in thread
From: Otavio Salvador @ 2016-09-26 11:24 UTC (permalink / raw)
  To: Eric Nelson; +Cc: meta-freescale

I applied to linux-fslc :-)

On Sat, Sep 24, 2016 at 11:00 AM, Eric Nelson <eric@nelint.com> wrote:
> This patch series
>
> The first two patches remove support for the receive accelerator (RACC) from
> the i.MX25 and i.MX27 SoCs which don't support the function.
>
> The third patch enables the RACC for i.MX6UL (Ultra Lite), which does support
> the feature.
>
> The fourth patch enables hardware alignment of the ethernet packet payload
> (and especially the IP header) to prevent alignment faults in the IP stack.
>
> Eric Nelson (4):
>   net: fec: remove QUIRK_HAS_RACC from i.mx25
>   net: fec: remove QUIRK_HAS_RACC from i.mx27
>   net: fec: enable RACC on imx6ul
>   net: fec: support RRACC_SHIFT16 to align IP header
>
>  drivers/net/ethernet/freescale/fec_main.c | 24 +++++++++++++++++-------
>  1 file changed, 17 insertions(+), 7 deletions(-)
>
> --
> 2.7.4
>
> --
> _______________________________________________
> meta-freescale mailing list
> meta-freescale@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-freescale



-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-09-26 11:24 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-24 12:18 [PATCH V2][linux-fslc][4.1-1.0.x-imx] net: fec: support RRACC_SHIFT16 to align IP header Eric Nelson
2016-09-24 14:00 ` [PATCH V3 0/4][linux-fslc][4.1-1.0.x-imx] net: fec: updates " Eric Nelson
2016-09-24 14:00   ` [PATCH V3 1/4][linux-fslc][4.1-1.0.x-imx] net: fec: remove QUIRK_HAS_RACC from i.mx25 Eric Nelson
2016-09-24 14:00   ` [PATCH V3 2/4][linux-fslc][4.1-1.0.x-imx] net: fec: remove QUIRK_HAS_RACC from i.mx27 Eric Nelson
2016-09-24 14:00   ` [PATCH V3 3/4][linux-fslc][4.1-1.0.x-imx] net: fec: enable RACC on imx6ul Eric Nelson
2016-09-24 14:00   ` [PATCH V3 4/4][linux-fslc][4.1-1.0.x-imx] net: fec: align IP Eric Nelson
2016-09-24 15:10   ` [PATCH V3 0/4][linux-fslc][4.1-1.0.x-imx] net: fec: updates to align IP header Andy Duan
2016-09-24 15:32     ` Eric Nelson
2016-09-26 11:24   ` Otavio Salvador

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.