* [U-Boot] [PATCH 1/2] net: fec_mxc: Adjust RX DMA alignment for mx6solox
@ 2014-08-20 19:01 Fabio Estevam
2014-08-20 19:01 ` [U-Boot] [PATCH 2/2] net: fec_mxc: Do not error out when FEC_TBD_READY Fabio Estevam
2014-08-20 19:38 ` [U-Boot] [PATCH 1/2] net: fec_mxc: Adjust RX DMA alignment for mx6solox Otavio Salvador
0 siblings, 2 replies; 6+ messages in thread
From: Fabio Estevam @ 2014-08-20 19:01 UTC (permalink / raw)
To: u-boot
From: Fabio Estevam <fabio.estevam@freescale.com>
mx6solox has a requirement for 64 bytes alignment for RX DMA transfer.
Adjust it accordingly.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
drivers/net/fec_mxc.c | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
index 4cefda4..df42b3c 100644
--- a/drivers/net/fec_mxc.c
+++ b/drivers/net/fec_mxc.c
@@ -28,6 +28,8 @@ DECLARE_GLOBAL_DATA_PTR;
*/
#define FEC_XFER_TIMEOUT 5000
+#define ARCH_DMA_MINALIGN_MX6SX 64
+
#ifndef CONFIG_MII
#error "CONFIG_MII has to be defined!"
#endif
@@ -281,12 +283,19 @@ static void fec_rbd_init(struct fec_priv *fec, int count, int dsize)
uint32_t size;
uint8_t *data;
int i;
+ int dma_rx_align;
+
+#ifdef CONFIG_MX6SX
+ dma_rx_align = ARCH_DMA_MINALIGN_MX6SX;
+#else
+ dma_rx_align = ARCH_DMA_MINALIGN;
+#endif
/*
* Reload the RX descriptors with default values and wipe
* the RX buffers.
*/
- size = roundup(dsize, ARCH_DMA_MINALIGN);
+ size = roundup(dsize, dma_rx_align);
for (i = 0; i < count; i++) {
data = (uint8_t *)fec->rbd_base[i].data_pointer;
memset(data, 0, dsize);
@@ -863,6 +872,7 @@ static int fec_alloc_descs(struct fec_priv *fec)
unsigned int size;
int i;
uint8_t *data;
+ int dma_rx_align;
/* Allocate TX descriptors. */
size = roundup(2 * sizeof(struct fec_bd), ARCH_DMA_MINALIGN);
@@ -881,9 +891,14 @@ static int fec_alloc_descs(struct fec_priv *fec)
/* Allocate RX buffers. */
/* Maximum RX buffer size. */
- size = roundup(FEC_MAX_PKT_SIZE, ARCH_DMA_MINALIGN);
+#ifdef CONFIG_MX6SX
+ dma_rx_align = ARCH_DMA_MINALIGN_MX6SX;
+#else
+ dma_rx_align = ARCH_DMA_MINALIGN;
+#endif
+ size = roundup(FEC_MAX_PKT_SIZE, dma_rx_align);
for (i = 0; i < FEC_RBD_NUM; i++) {
- data = memalign(ARCH_DMA_MINALIGN, size);
+ data = memalign(dma_rx_align, size);
if (!data) {
printf("%s: error allocating rxbuf %d\n", __func__, i);
goto err_ring;
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* [U-Boot] [PATCH 2/2] net: fec_mxc: Do not error out when FEC_TBD_READY
2014-08-20 19:01 [U-Boot] [PATCH 1/2] net: fec_mxc: Adjust RX DMA alignment for mx6solox Fabio Estevam
@ 2014-08-20 19:01 ` Fabio Estevam
2014-08-20 19:38 ` [U-Boot] [PATCH 1/2] net: fec_mxc: Adjust RX DMA alignment for mx6solox Otavio Salvador
1 sibling, 0 replies; 6+ messages in thread
From: Fabio Estevam @ 2014-08-20 19:01 UTC (permalink / raw)
To: u-boot
From: Fabio Estevam <fabio.estevam@freescale.com>
Do not indicate an error when the buffer ready flag (FEC_TBD_READY) is set.
Without this change, mx6solox is not capable of doing TFTP transfers.
Succesfully tested on mx25, mx28, mx51, mx53, mx6q, mx6sl and mx6sx.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
drivers/net/fec_mxc.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
index 68134ae..d9031db 100644
--- a/drivers/net/fec_mxc.c
+++ b/drivers/net/fec_mxc.c
@@ -724,8 +724,6 @@ static int fec_send(struct eth_device *dev, void *packet, int length)
ret = -EINVAL;
invalidate_dcache_range(addr, addr + size);
- if (readw(&fec->tbd_base[fec->tbd_index].status) & FEC_TBD_READY)
- ret = -EINVAL;
debug("fec_send: status 0x%x index %d ret %i\n",
readw(&fec->tbd_base[fec->tbd_index].status),
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* [U-Boot] [PATCH 1/2] net: fec_mxc: Adjust RX DMA alignment for mx6solox
2014-08-20 19:01 [U-Boot] [PATCH 1/2] net: fec_mxc: Adjust RX DMA alignment for mx6solox Fabio Estevam
2014-08-20 19:01 ` [U-Boot] [PATCH 2/2] net: fec_mxc: Do not error out when FEC_TBD_READY Fabio Estevam
@ 2014-08-20 19:38 ` Otavio Salvador
2014-08-20 20:48 ` Fabio Estevam
1 sibling, 1 reply; 6+ messages in thread
From: Otavio Salvador @ 2014-08-20 19:38 UTC (permalink / raw)
To: u-boot
On Wed, Aug 20, 2014 at 4:01 PM, Fabio Estevam <festevam@gmail.com> wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
>
> mx6solox has a requirement for 64 bytes alignment for RX DMA transfer.
>
> Adjust it accordingly.
>
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
I'd use a static method to return the value, so you avoid some of #ifdef
--
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] 6+ messages in thread
* [U-Boot] [PATCH 1/2] net: fec_mxc: Adjust RX DMA alignment for mx6solox
2014-08-20 19:38 ` [U-Boot] [PATCH 1/2] net: fec_mxc: Adjust RX DMA alignment for mx6solox Otavio Salvador
@ 2014-08-20 20:48 ` Fabio Estevam
2014-08-20 21:11 ` Otavio Salvador
0 siblings, 1 reply; 6+ messages in thread
From: Fabio Estevam @ 2014-08-20 20:48 UTC (permalink / raw)
To: u-boot
On Wed, Aug 20, 2014 at 4:38 PM, Otavio Salvador
<otavio@ossystems.com.br> wrote:
> On Wed, Aug 20, 2014 at 4:01 PM, Fabio Estevam <festevam@gmail.com> wrote:
>> From: Fabio Estevam <fabio.estevam@freescale.com>
>>
>> mx6solox has a requirement for 64 bytes alignment for RX DMA transfer.
>>
>> Adjust it accordingly.
>>
>> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
>
> I'd use a static method to return the value, so you avoid some of #ifdef
Not sure I understood your suggestion. Care to provide an example?
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH 1/2] net: fec_mxc: Adjust RX DMA alignment for mx6solox
2014-08-20 20:48 ` Fabio Estevam
@ 2014-08-20 21:11 ` Otavio Salvador
2014-08-20 21:21 ` Fabio Estevam
0 siblings, 1 reply; 6+ messages in thread
From: Otavio Salvador @ 2014-08-20 21:11 UTC (permalink / raw)
To: u-boot
On Wed, Aug 20, 2014 at 5:48 PM, Fabio Estevam <festevam@gmail.com> wrote:
> On Wed, Aug 20, 2014 at 4:38 PM, Otavio Salvador
> <otavio@ossystems.com.br> wrote:
>> On Wed, Aug 20, 2014 at 4:01 PM, Fabio Estevam <festevam@gmail.com> wrote:
>>> From: Fabio Estevam <fabio.estevam@freescale.com>
>>>
>>> mx6solox has a requirement for 64 bytes alignment for RX DMA transfer.
>>>
>>> Adjust it accordingly.
>>>
>>> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
>>
>> I'd use a static method to return the value, so you avoid some of #ifdef
>
> Not sure I understood your suggestion. Care to provide an example?
static int _rx_alignment()
{
#ifdef SX
static int v = ??;
#else
static int v = ??;
#endif
return v;
}
?
--
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] 6+ messages in thread* [U-Boot] [PATCH 1/2] net: fec_mxc: Adjust RX DMA alignment for mx6solox
2014-08-20 21:11 ` Otavio Salvador
@ 2014-08-20 21:21 ` Fabio Estevam
0 siblings, 0 replies; 6+ messages in thread
From: Fabio Estevam @ 2014-08-20 21:21 UTC (permalink / raw)
To: u-boot
On Wed, Aug 20, 2014 at 6:11 PM, Otavio Salvador
<otavio@ossystems.com.br> wrote:
>> Not sure I understood your suggestion. Care to provide an example?
>
> static int _rx_alignment()
> {
> #ifdef SX
> static int v = ??;
> #else
> static int v = ??;
> #endif
>
> return v;
Understood it now. Will do like this in v2. Thanks
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-08-20 21:21 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-20 19:01 [U-Boot] [PATCH 1/2] net: fec_mxc: Adjust RX DMA alignment for mx6solox Fabio Estevam
2014-08-20 19:01 ` [U-Boot] [PATCH 2/2] net: fec_mxc: Do not error out when FEC_TBD_READY Fabio Estevam
2014-08-20 19:38 ` [U-Boot] [PATCH 1/2] net: fec_mxc: Adjust RX DMA alignment for mx6solox Otavio Salvador
2014-08-20 20:48 ` Fabio Estevam
2014-08-20 21:11 ` Otavio Salvador
2014-08-20 21:21 ` Fabio Estevam
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox