14 Jun, 2013

9 commits


13 Jun, 2013

16 commits

  • Tom Rini
     
  • PXA270 CPU has turbo mode. The mode is 2.5 times faster than the
    default run mode. Activating the mode early significantly speeds
    up boot process.

    Signed-off-by: Sergey Yanovich

    Sergey Yanovich
     
  • LP-8x4x is a programmable automation controller by ICP DAS. It is
    shipped with outdated U-Boot v1.3.0

    This patch adds enough supports to boot the board:
    - 128M of 128M SDRAM
    - 32M of 48M NOR Flash memory
    - 1 of 4 Serial consoles (PXA FFUART)
    - 2 of 2 Ethernet controllers (DM9000)

    Signed-off-by: Sergey Yanovich
    Series-to: u-boot
    Series-cc: marex

    Sergey Yanovich
     
  • Without this, second usb_composite_register() call fails always
    with -EINVAL.

    Signed-off-by: Heiko Schocher
    Cc: Lukasz Majewski
    Cc: Kyungmin Park
    Cc: Marek Vasut

    Heiko Schocher
     
  • Commit 8f62ca6 "usb: ehci: Support interrupt transfers via periodic list"
    didn't include any cache management in the new interrupt transfer path.
    It also added an extra write to or_asynclistaddr in usb_lowlevel_init(),
    without having flushed out the data there.

    Add the missing cache management calls, so that the code works again.

    This allows the USB keyboard on Tegra's Seaboard/Springbank boards to
    work.

    Cc: Patrick Georgi
    Cc: Vincent Palatin
    Cc: Julius Werner
    Cc: Simon Glass
    Cc: Marek Vasut
    Signed-off-by: Stephen Warren

    Stephen Warren
     
  • The Faraday FOTG210 is an OTG chip which could operate
    as either an EHCI Host or a USB Device at a time.

    Signed-off-by: Kuo-Jung Su
    CC: Marek Vasut

    Kuo-Jung Su
     
  • This patch adds support to both Faraday FUSBH200 and FOTG210,
    the differences between Faraday EHCI and standard EHCI are
    listed bellow:

    1. The PORTSC starts at 0x30 instead of 0x44.
    2. The CONFIGFLAG(0x40) is not only un-implemented, and
    also has its address space removed.
    3. Faraday EHCI is a TDI design, but it doesn't
    compatible with the general TDI implementation
    found at both U-Boot and Linux.
    4. The ISOC descriptors differ from standard EHCI in
    several ways. But since U-boot doesn't support ISOC,
    we don't have to worry about that.

    Signed-off-by: Kuo-Jung Su
    CC: Marek Vasut

    Kuo-Jung Su
     
  • This patch makes the minimum power-on delay for USB HUB
    become configurable. The original design waits at least
    100 msec here, but some EHCI controlers(e.g. Faraday EHCI)
    are known to require much longer delay interval.

    Signed-off-by: Kuo-Jung Su
    CC: Marek Vasut

    Kuo-Jung Su
     
  • There is at least one non-EHCI compliant controller (i.e. Faraday EHCI)
    not only leave RESERVED and CONFIGFLAG registers un-implemented
    but also has their address spaces removed.

    As an result, the PORTSC register of Faraday EHCI always
    starts from 0x30 instead of 0x44 in standard EHCI.

    So that we'll need a weak-aliased function for abstraction.

    Signed-off-by: Kuo-Jung Su
    CC: Marek Vasut

    Kuo-Jung Su
     
  • 1. The 'index' of ehci_submit_root() is not always > 0.

    e.g.
    While it gets invoked from usb_get_descriptor(),
    the 'index' is always a '0'. (See ch.9 of USB2.0)

    2. The PORTSC register is not always required, and thus it
    should only report a port error when necessary.
    It would cause a port scan failure if the ehci_submit_root()
    always gets terminated by a port error.

    Signed-off-by: Kuo-Jung Su
    CC: Marek Vasut

    Kuo-Jung Su
     
  • Use get_unaligned() while fetching wMaxPacketSize to avoid
    voilating any alignment rules.

    Signed-off-by: Vivek Gautam
    Cc: Lukasz Majewski
    Cc: Piotr Wilczek
    Cc: Kyungmin Park
    Cc: Lukasz Dalek
    Cc: Marek Vasut

    Vivek Gautam
     
  • Use unaligned access to fetch wMaxPacketSize in usb_endpoint_maxp()
    api.
    In its absence we see following data abort message:
    ==============================================================
    data abort

    MAYBE you should read doc/README.arm-unaligned-accesses

    pc : [] lr : []
    sp : bf37c7b0 ip : 0000002f fp : 00000000
    r10: 00000000 r9 : 00000002 r8 : bf37fecc
    r7 : 00000001 r6 : bf7d8931 r5 : bf7d891c r4 : bf7d8800
    r3 : bf7d65b0 r2 : 00000002 r1 : bf7d65b4 r0 : 00000027
    Flags: nZCv IRQs off FIQs off Mode SVC_32
    Resetting CPU ...

    resetting ...
    ==============================================================

    Signed-off-by: Vivek Gautam
    Cc: Ilya Yanok
    Cc: Marek Vasut

    Vivek Gautam
     
  • The ASIX driver calls a basic_init() function during get_info(), so that
    not all initialization tasks need to be redone on every init().
    Unfortunately, the most important one is still triggered too often: the
    driver does a full port and MII reset on every asix_init(), requiring up
    to several seconds to reestablish the link.

    This patch confines that software reset into the asix_basic_init()
    function so that it will only be executed once. This saves about a
    second of boot time on systems using BOOTP.

    Note: this patch was previously submitted many moons ago as:

    usb: usbeth: asix: Do a fast init if link already established

    That patch seens to have been lost or forgotten, so this is a rebased
    version. It is tested on snow with a Asix USB dongle (Cisco).

    Signed-off-by: Julius Werner
    Signed-off-by: Simon Glass
    Reviewed-by: Simon Glass
    Reviewed-by: Vadim Bendebury

    Julius Werner
     
  • This commit broke USB2 on link (Chromebook Pixel):

    020bbcb usb: hub: Power-cycle on root-hub ports

    However the root cause seems to be a missing mask and missing 'break'
    in ehci-hcd.c. This patch fixes both.

    On link, 'usb start' with a USB keyboard and memory stick inserted now
    finds both. The keyboard works as expected. Also ext2ls shows a directory
    listing from the memory stick.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • If the USB keyboard is not answering properly the first request on its
    interrupt endpoint, just skip it and try the next one.

    This workarounds an issue with a wireless mouse dongle which presents
    itself both as a keyboard and a mouse but has a non-functional keyboard
    interface.

    Signed-off-by: Vincent Palatin
    (cherry picked from commit 012bbf0ce0301be2482857e3f03b481dd15c2340)
    Rebased to upstream/master:
    Signed-off-by: Simon Glass
    Reviewed-by: Stefan Reinauer
    Tested-by: Vincent Palatin

    Vincent Palatin
     
  • Allow to reconfigure properly the USB keyboard driver when we enumerate
    several times the USB devices and its position in the device tree has
    changes.

    Signed-off-by: Vincent Palatin
    Signed-off-by: Simon Glass
    Reviewed-by: Stefan Reinauer
    Tested-by: Vincent Palatin

    Vincent Palatin
     

12 Jun, 2013

3 commits

  • Tom Rini
     
  • The flash_info_t->start[] field is limited in size by CONFIG_SYS_MAX_FLASH_SECT
    macro, which is set to 19 for this board in the board config file. If we inspect
    the board/ppmc7xx/flash.c closely, especially the flash_get_size() function, we
    can notice the "switch ((long)flashtest)" at around line 80 having a few results
    which will set flash_info_t->sector_count to value higher than 19, for example
    "case AMD_ID_LV640U" will set it to 128. Notice that right underneath, iteration
    over flash_info_t->start[] happens and the upper bound for the interation is
    flash_info_t->sector_count. Now if the sector_count is 128 as it is for the
    AMD_ID_LV640U case, but the CONFIG_SYS_MAX_FLASH_SECT limiting the start[] is
    only 19, an access past the start[] array much happen. Moreover, during this
    iteration, the field is written to, so memory corruption is inevitable.

    Signed-off-by: Marek Vasut
    Cc: Wolfgang Denk
    Cc: Tom Rini
    Cc: Richard Danter

    Marek Vasut
     
  • C99's strict aliasing rules are insane to use in low-level code such as a
    bootloader, but as Wolfgang has rejected -fno-strict-aliasing in the
    past, add a union so that 16-bit accesses can be performed.

    Compile-tested only.

    Signed-off-by: Scott Wood
    Acked-by: Wolfgang Denk

    Scott Wood
     

11 Jun, 2013

2 commits


10 Jun, 2013

10 commits