public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: puneets <puneets@nvidia.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v8] usb: align buffers at cacheline
Date: Wed, 7 Mar 2012 14:50:55 +0530	[thread overview]
Message-ID: <4F572877.6020306@nvidia.com> (raw)
In-Reply-To: <4F570A56.8080600@nvidia.com>

Hi Mike,
Forgot to write the link in below mail.
Here is the link: 
http://lists.denx.de/pipermail/u-boot/2011-December/112138.html
Do you want me to show a warning where I am making size as cacheline size?

Thanx & Regards,,
Puneet
On Wednesday 07 March 2012 12:42 PM, puneets wrote:
> Hi Mike,
> On Tuesday 06 March 2012 08:37 AM, Mike Frysinger wrote:
>> * PGP Signed by an unknown key
>>
>> On Monday 05 March 2012 09:46:21 Puneet Saxena wrote:
>>> As DMA expects the buffers to be equal and larger then
>>> cache lines, This aligns buffers at cacheline.
>> i don't think this statement is true.  DMA doesn't care about alignment (well,
>> some do, but it's not related to cache lines but rather some other restriction
>> in the peripheral DMA itself).  what does matter is that cache operations
>> operate on cache lines and not individual bytes.  hence the core arm code was
>> updated to warn when someone told it to invalidate X bytes but the hardware
>> literally could not, so it had to invalidate X + Y bytes.
>>
> Agreed, Will update the commit message in next patchset.
>>> --- a/drivers/usb/host/ehci-hcd.c
>>> +++ b/drivers/usb/host/ehci-hcd.c
>>>
>>>    static void flush_invalidate(u32 addr, int size, int flush)
>>>    {
>>> +	/*
>>> +	 * Size is the bytes actually moved during transaction,
>>> +	 * which may not equal to the cache line. This results
>>> +	 * stop address passed for invalidating cache may not be aligned.
>>> +	 * Therfore making size as multiple of cache line size.
>>> +	 */
>>> +	size = ALIGN(size, ARCH_DMA_MINALIGN);
>>> +
>>>    	if (flush)
>>>    		flush_dcache_range(addr, addr + size);
>>>    	else
>> i think this is wrong and merely hides the errors from higher up instead of
>> fixing them.  the point of the warning was to tell you that the code was
>> invalidating *too many* bytes.  this code still invalidates too many bytes
>> without any justification as for why it's OK to do here.  further, this code
>> path only matters to the invalidation logic, not the flush logic.
>> -mike
>>
> The sole purpose of this patch to remove the warnings as start/stop
> address sent for invalidating
> is unaligned. Without this patch code works fine but with lots of
> spew...Which we don't want and discussed
> in earlier thread which Simon posted. Please have a look on following link.
>
> As I understood, you agree that we need to align start/stop buffer
> address and also agree that
> to align stop address we need to align size as start address is already
> aligned.
> Now, "why its OK to do here"?
> We could have aligned the size in two places, cache_qtd() and cache_qh()
> but then we need to place alignment check
> at all the places where size is passed. So I thought better Aligning at
> flush_invalidate() and "ALIGN" macro does not
> increase the size if size is already aligned.
>
>
>> * Unknown Key
>> * 0xE837F581
> Thanx&  Regards,
> Puneet


-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------

  reply	other threads:[~2012-03-07  9:20 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-17 10:50 [U-Boot] [PATCH] usb: align buffers at cache boundary Puneet Saxena
2012-02-17 17:23 ` Mike Frysinger
2012-02-23 14:25   ` [U-Boot] [PATCH 1/2] usb: align buffers at cacheline Puneet Saxena
2012-02-23 18:15     ` Mike Frysinger
2012-02-24 11:27       ` puneets
2012-02-24 12:42     ` Simon Glass
2012-02-27 15:36       ` [U-Boot] [PATCH v2 " Puneet Saxena
2012-02-27 16:49         ` Marek Vasut
2012-02-27 17:03           ` Simon Glass
2012-02-27 17:11             ` Marek Vasut
2012-02-27 17:27               ` Simon Glass
2012-02-29 14:21               ` [U-Boot] [PATCH v3 " Puneet Saxena
2012-02-29 21:35                 ` Marek Vasut
2012-03-01 13:51                   ` puneets
2012-03-01 18:38                     ` Marek Vasut
2012-03-02  6:56                       ` puneets
2012-03-02 10:43                         ` Marek Vasut
2012-03-02 12:50                           ` puneets
2012-03-02 12:58                             ` Marek Vasut
2012-03-02 13:35                               ` [U-Boot] [PATCH v4] " Puneet Saxena
2012-03-02 13:46                                 ` Marek Vasut
2012-03-02 14:00                                   ` puneets
2012-03-02 14:41                                     ` Marek Vasut
2012-03-02 15:21                                       ` puneets
2012-03-02 15:59                                         ` Marek Vasut
2012-03-02 16:45                                           ` Wolfgang Denk
2012-03-05  7:16                                             ` [U-Boot] [PATCH v5] " Puneet Saxena
2012-03-05 13:24                                               ` Eric Nelson
2012-03-05 13:35                                                 ` Marek Vasut
2012-03-05 14:46                                                 ` [U-Boot] [PATCH v8] " Puneet Saxena
2012-03-05 15:35                                                   ` Marek Vasut
2012-03-05 18:18                                                   ` Simon Glass
2012-03-06  0:36                                                     ` Marek Vasut
2012-03-06  0:39                                                       ` Marek Vasut
2012-03-06  7:00                                                     ` puneets
2012-03-06  8:22                                                       ` Marek Vasut
2012-03-06  3:07                                                   ` Mike Frysinger
2012-03-07  7:12                                                     ` puneets
2012-03-07  9:20                                                       ` puneets [this message]
2012-03-07 22:06                                                       ` Marek Vasut
2012-03-08 11:21                                                         ` puneets
2012-03-08 14:12                                                           ` Marek Vasut
2012-03-09  6:15                                                             ` puneets
2012-03-09 12:03                                                               ` Marek Vasut
2012-03-11  2:35                                                       ` Mike Frysinger
2012-03-14  2:05                                                         ` Marek Vasut
2012-03-16  4:39                                                       ` Marek Vasut
2012-03-16  7:42                                                         ` puneets
2012-03-16  8:52                                                           ` Marek Vasut
2012-03-19 14:29                                                             ` puneets
2012-03-19 14:43                                                               ` Marek Vasut
2012-03-19 15:19                                                                 ` Tom Warren
2012-03-19 15:46                                                                   ` Marek Vasut
2012-04-02 15:59                                                                     ` Tom Warren
2012-04-02 16:11                                                                       ` Marek Vasut
2012-04-02 16:16                                                                         ` Tom Warren
2012-04-02 16:32                                                                           ` Marek Vasut
2012-04-03  6:05                                                                             ` puneets
2012-03-05  7:27                                             ` [U-Boot] [PATCH v6] " Puneet Saxena
2012-03-05 12:03                                               ` Marek Vasut
2012-03-05 12:21                                                 ` [U-Boot] [PATCH v7] " Puneet Saxena
2012-03-05 12:41                                                   ` Marek Vasut
2012-03-06  3:28                                             ` [U-Boot] [PATCH v4] " Mike Frysinger
2012-03-06  8:24                                               ` Marek Vasut
2012-03-06 16:42                                                 ` Mike Frysinger
2012-02-29 14:21               ` [U-Boot] [PATCH v3 2/2] usb: Add CONFIG to fetch string descriptor Puneet Saxena
2012-02-29 21:29                 ` Marek Vasut
2012-03-01 11:07                   ` puneets
2012-03-01 11:45                     ` Marek Vasut
2012-03-01 12:59                       ` puneets
2012-03-01 13:13                         ` Marek Vasut
2012-03-05 12:48                           ` Marek Vasut
2012-03-05 13:14                             ` puneets
2012-03-05 21:15                               ` Marek Vasut
2012-02-28  9:34           ` [U-Boot] [PATCH v2 1/2] usb: align buffers at cacheline puneets
2012-02-29 21:38             ` Marek Vasut
2012-02-27 15:36       ` [U-Boot] [PATCH v2 2/2] usb: Add CONFIG to fetch string descriptor Puneet Saxena
2012-02-27 18:28         ` Mike Frysinger
2012-02-27 15:37       ` [U-Boot] [PATCH 1/2] usb: align buffers at cacheline puneets
2012-02-23 14:25   ` [U-Boot] [PATCH 2/2] usb: Add quirk "USB_QUIRK_STRING_FETCH_255" Puneet Saxena
2012-02-23 15:20     ` Tom Rini
2012-02-23 16:04     ` Tom Warren
2012-02-24  7:52       ` puneets

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=4F572877.6020306@nvidia.com \
    --to=puneets@nvidia.com \
    --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