Skip to content
Snippets Groups Projects
Forked from Reform / reform-boundary-uboot
Source project has a limited visibility.
  • Łukasz Majewski's avatar
    e0059eae
    usb:udc:samsung: Zero copy approach for data passed to Samsung's UDC driver · e0059eae
    Łukasz Majewski authored
    
    The Samsung's UDC driver is not anymore copying data from USB requests to
    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 must take care to allocate
    buffers aligned to cache line (CONFIG_SYS_CACHELINE_SIZE).
    
    This can be achieved by using DEFINE_CACHE_ALIGN_BUFFER() or
    ALLOC_CACHE_ALIGN_BUFFER() macros. Those take care to allocate buffer
    aligned to cache line in both starting address and its size.
    Sometimes it is enough to just use memalign() with size being a
    multiplication of cache line size.
    
    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
    
    Signed-off-by: default avatarLukasz Majewski <l.majewski@samsung.com>
    Cc: Marek Vasut <marex@denx.de>
    e0059eae
    History
    usb:udc:samsung: Zero copy approach for data passed to Samsung's UDC driver
    Łukasz Majewski authored
    
    The Samsung's UDC driver is not anymore copying data from USB requests to
    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 must take care to allocate
    buffers aligned to cache line (CONFIG_SYS_CACHELINE_SIZE).
    
    This can be achieved by using DEFINE_CACHE_ALIGN_BUFFER() or
    ALLOC_CACHE_ALIGN_BUFFER() macros. Those take care to allocate buffer
    aligned to cache line in both starting address and its size.
    Sometimes it is enough to just use memalign() with size being a
    multiplication of cache line size.
    
    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
    
    Signed-off-by: default avatarLukasz Majewski <l.majewski@samsung.com>
    Cc: Marek Vasut <marex@denx.de>