From: Lukasz Majewski <l.majewski@majess.pl>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 4/6] usb:udc:samsung: Zero copy approach for data passed to Samsung's UDC driver
Date: Sat, 1 Feb 2014 12:05:29 +0100 [thread overview]
Message-ID: <20140201120529.5a494cf0@jawa> (raw)
In-Reply-To: <201402010355.20302.marex@denx.de>
On Sat, 1 Feb 2014 03:55:20 +0100
Marek Vasut <marex@denx.de> wrote:
> On Friday, January 31, 2014 at 01:16:27 PM, Lukasz Majewski wrote:
> > The Samsung's UDC driver is not anymore copying data from USB
> > requests to data aligned internal buffers. Now it works directly in
> > data allocated in the upper layers like UMS, DFU, THOR.
> >
> > This change is possible since those gadgets now take care to
> > allocate buffers aligned to cache line (CONFIG_SYS_CACHELINE_SIZE ).
> >
> > Previously the UDC needed to copy this data to internal aligned
> > buffer to prevent from unaligned access exceptions.
> >
> > Test condition
> > - test HW + measurement: Trats - Exynos4210 rev.1
> > - test HW Trats2 - Exynos4412 rev.1
> > 400 MiB compressed rootfs image download with `thor 0 mmc 0`
> >
> > Measurement:
> > Transmission speed: 27.04 MiB/s
> >
> > Change-Id: I1df1fbafc72ec703f0367ddee3fedf3a3f5523ed
> > Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
> > Cc: Marek Vasut <marex@denx.de>
>
> You should use ROUND_UP(), not ROUND() throughout the patch.
> Otherwise you might fail to flush/invalidate the last little bit of
> data in some cacheline.
I might overlooked something, so please correct me if needed.
I allocate buffers in gadgets which are aligned to cache line with
starting address and its size is a multiplication of cache line size
(so I will not trash data allocated next to it when I invalidate cache).
In the code I'm using ROUND to invalidate/flush more data than needed
(ROUND(176, 32) = 192). I'm prepared for this since buffer in gadget is
properly allocated (with DEFINE_CACHE_ALIGN_BUFFER() which uses
roundup() internally).
Best regards,
Lukasz Majewski
>
> Best regards,
> Marek Vasut
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140201/b6505cbd/attachment.pgp>
next prev parent reply other threads:[~2014-02-01 11:05 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-31 12:16 [U-Boot] [PATCH 0/6] usb:samsung: Exynos4 SoC USB code improvements Lukasz Majewski
2014-01-31 12:16 ` [U-Boot] [PATCH 1/6] usb:gadget:ums: Replace malloc calls with memalign to fix cache buffer alignment Lukasz Majewski
2014-02-01 2:48 ` Marek Vasut
2014-02-01 9:10 ` Lukasz Majewski
2014-01-31 12:16 ` [U-Boot] [PATCH 2/6] usb:udc:samsung: Remove redundant cache operation from Samsung UDC driver Lukasz Majewski
2014-02-01 2:50 ` Marek Vasut
2014-02-01 9:56 ` Lukasz Majewski
2014-02-01 22:49 ` Marek Vasut
2014-02-03 8:05 ` Lukasz Majewski
2014-02-03 18:06 ` Marek Vasut
2014-02-04 6:23 ` Lukasz Majewski
2014-01-31 12:16 ` [U-Boot] [PATCH 3/6] usb:udc:samsung: Allow burst transfers for non EP0 endpints Lukasz Majewski
2014-01-31 12:16 ` [U-Boot] [PATCH 4/6] usb:udc:samsung: Zero copy approach for data passed to Samsung's UDC driver Lukasz Majewski
2014-02-01 2:55 ` Marek Vasut
2014-02-01 11:05 ` Lukasz Majewski [this message]
2014-02-01 22:55 ` Marek Vasut
2014-02-03 11:06 ` Lukasz Majewski
2014-02-03 18:11 ` Marek Vasut
2014-02-04 7:29 ` Lukasz Majewski
2014-02-04 20:21 ` Marek Vasut
2014-02-04 21:49 ` Lukasz Majewski
2014-02-05 2:35 ` Marek Vasut
2014-01-31 12:16 ` [U-Boot] [PATCH 5/6] usb:gadget:f_thor: Allocate request up to THOR_PACKET_SIZE not ep->maxpacket Lukasz Majewski
2014-01-31 12:16 ` [U-Boot] [PATCH 6/6] usb:gadget:f_thor: cosmetic: Remove debug memset Lukasz Majewski
2014-02-05 9:10 ` [U-Boot] [PATCH v2 0/6] usb:samsung: Exynos4 SoC USB code improvements Lukasz Majewski
2014-02-05 9:10 ` [U-Boot] [PATCH v2 1/6] usb:gadget:ums: Replace malloc calls with memalign to fix cache buffer alignment Lukasz Majewski
2014-02-06 1:20 ` Marek Vasut
2014-02-06 6:33 ` Lukasz Majewski
2014-02-06 6:41 ` Marek Vasut
2014-02-06 8:16 ` Lukasz Majewski
2014-02-05 9:10 ` [U-Boot] [PATCH v2 2/6] usb:udc:samsung: Remove redundant cache operation from Samsung UDC driver Lukasz Majewski
2014-02-05 9:10 ` [U-Boot] [PATCH v2 3/6] usb:udc:samsung: Allow burst transfers for non EP0 endpints Lukasz Majewski
2014-02-05 9:10 ` [U-Boot] [PATCH v2 4/6] usb:udc:samsung: Zero copy approach for data passed to Samsung's UDC driver Lukasz Majewski
2014-02-05 9:10 ` [U-Boot] [PATCH v2 5/6] usb:gadget:f_thor: Allocate request up to THOR_PACKET_SIZE not ep->maxpacket Lukasz Majewski
2014-02-05 9:10 ` [U-Boot] [PATCH v2 6/6] usb:gadget:f_thor: cosmetic: Remove debug memset Lukasz Majewski
2014-02-06 1:24 ` [U-Boot] [PATCH v2 0/6] usb:samsung: Exynos4 SoC USB code improvements Marek Vasut
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=20140201120529.5a494cf0@jawa \
--to=l.majewski@majess.pl \
--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