From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 2/2] net: fec_mxc: Do not error out when FEC_TBD_READY
Date: Thu, 21 Aug 2014 05:47:18 +0200 [thread overview]
Message-ID: <201408210547.18210.marex@denx.de> (raw)
In-Reply-To: <CAP9ODKoqK6uyBW6J7+-ZABE+3nWTbWtH-YhUjoUZ0DKhTu9gOw@mail.gmail.com>
On Wednesday, August 20, 2014 at 11:34:30 PM, Otavio Salvador wrote:
> On Wed, Aug 20, 2014 at 6:24 PM, Fabio Estevam <festevam@gmail.com> wrote:
> > 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>
>
> As you explicitly tested it in several SoC types it seems right
> however Marek has explicitly add this code in:
>
> FEC: Rework the TX wait mechanism
>
> The mechanism waiting for transmission to finish in fec_send() now
> relies on the E-bit being cleared in the TX buffer descriptor. In
> case of data cache being on, this means invalidation of data cache
> above this TX buffer descriptor on each test for the E-bit being
> cleared.
>
> Apparently, there is another way to check if the transmission did
> complete. This is by checking the TDAR bit in the X_DES_ACTIVE
> register. Reading a register does not need any data cache invalidation,
> which is beneficial.
>
> Rework the sequence that wait for completion of the transmission so
> that the TDAR bit is tested first and afterwards check the E-bit being
> clear. This cuts down the number of cache invalidation calls to one.
It would come very helpful if you also provided the commit hash, so people can
observe what was the contents of the patch. So let me fill it in:
Commit: 67449098a86be18cbdb27345bebe8da57e5d8899
> May Marek recall why this was need?
It's explained in the commit message above, quote:
'In case of data cache being on, this means invalidation of data cache above
this TX buffer descriptor on each test for the E-bit being cleared.'
This means that it avoids the constant ping-pong between cache and DRAM. That is
a loop consisting of:
- invalidating D-cache
- doing memory access to re-load the DMA descriptor from DRAM
- checking the E-bit in the DMA descriptor.
Instead, it reads the status from uncached register space of the FEC.
Best regards,
Marek Vasut
next prev parent reply other threads:[~2014-08-21 3:47 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-20 21:24 [U-Boot] [PATCH v2 1/2] net: fec_mxc: Adjust RX DMA alignment for mx6solox Fabio Estevam
2014-08-20 21:24 ` [U-Boot] [PATCH v2 2/2] net: fec_mxc: Do not error out when FEC_TBD_READY Fabio Estevam
2014-08-20 21:34 ` Otavio Salvador
2014-08-21 3:47 ` Marek Vasut [this message]
2014-08-21 3:53 ` Marek Vasut
2014-08-21 4:11 ` Ye Li
2014-08-21 5:02 ` Marek Vasut
2014-08-21 7:57 ` Stefano Babic
2014-08-21 8:35 ` Li Ye-B37916
2014-08-21 11:39 ` Marek Vasut
2014-08-21 3:44 ` [U-Boot] [PATCH v2 1/2] net: fec_mxc: Adjust RX DMA alignment for mx6solox Li Ye-B37916
2014-08-21 3:51 ` Marek Vasut
2014-08-21 6:03 ` Stefan Roese
2014-08-21 12:08 ` Fabio Estevam
2014-08-21 8:01 ` Stefano Babic
2014-08-21 11:55 ` Fabio Estevam
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=201408210547.18210.marex@denx.de \
--to=marex@denx.de \
--cc=u-boot@lists.denx.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox