1. 14 10月, 2010 4 次提交
  2. 13 10月, 2010 36 次提交
    • B
      usb: musb: only write CLRDATATOG when appropriate · 4ee691f6
      Bryan Wu 提交于
      This is a change similar to what is already in the Linux driver.  We
      should only program the CLRDATATOG bit when the current mode indicates
      that it is needed.
      Signed-off-by: NBryan Wu <bryan.wu@analog.com>
      Signed-off-by: NCliff Cai <cliff.cai@analog.com>
      Signed-off-by: NMike Frysinger <vapier@gentoo.org>
      4ee691f6
    • L
      usb: Add support for multiple-LUN mass storage devices · 99e9ed1f
      Ludovic Courtès 提交于
      This patch changes `usb_stor_scan' to scan all the LUNs of each mass
      storage device.  It also fixes the various commands to correctly set
      the LUN field.
      
      Notably, it allows each LUN of GuruPlug's microSD card reader to be
      accessed.
      Signed-off-by: NLudovic Courtès <ludo@gnu.org>
      Acked-by: NPrafulla Wadaskar <prafulla@marvell.com>
      99e9ed1f
    • V
      USB-CDC: Prevent rx_req being enqueued twice · 98fae970
      Vitaly Kuzmichev 提交于
      After gadget reinitializaton (after tftp has been done once)
      packet_received may become equal to 1 due to nuking OUT_EP
      while disabling it in eth_reset_config.
      
      rx_submit called from usb_eth_init queues rx_req first time.
      But the first call of usb_eth_recv from NetLoop queues rx_req
      again due to packet_received = 1.
      
      The following flow shows the path of functions calls when
      this happens:
      
       net/net.c:NetLoop
       |
       +-net/eth.c:eth_init
       |   ether.c:usb_eth_init
       |   |
       |   +-udc_driver:usb_gadget_handle_interrupts
       |   |   udc_driver:...
       |   |     ether.c:eth_setup
       |   |       ether.c:eth_set_config
       |   |         ether.c:eth_reset_config
       |   |           udc_driver:usb_ep_disable
       |   |             udc_driver:nuke
       |   |               ether.c:rx_complete
       |   |                 ether.c: packet_received = 1;
       |   |
       |   +-ether.c:rx_submit
       |       udc_driver:usb_ep_queue --- The first time when rx_req is queued
       |
       +-net/eth.c:eth_rx
           ether.c:usb_eth_recv
           |
           +-udc_driver:usb_gadget_handle_interrupts
           |   udc_driver:... --- no interrupts, returning
           +-ether.c: if (packet_received) { ...
               ether.c:rx_submit
                 udc_driver:usb_ep_queue --- The second time!
      Signed-off-by: NVitaly Kuzmichev <vkuzmichev@mvista.com>
      98fae970
    • V
      USB-CDC: Fix tx/rx_req memory leaks · ac5d32d1
      Vitaly Kuzmichev 提交于
      Remove and fix needless and destructive operations with tx/rx_req.
      
      1) 'req' in rx_complete is always not NULL and always equals to rx_req
      2) Free allocated tx_req if rx_req allocation has failed
      3) Do not zero out tx/rx_req in usb_eth_init, leave this for
      eth_reset_config which will be called at the next use of usb0
      4) Additional check in usb_eth_recv is not required
      Signed-off-by: NVitaly Kuzmichev <vkuzmichev@mvista.com>
      ac5d32d1
    • M
      USB: Make non-bulk delay longer in OHCI · f2443d10
      Marek Vasut 提交于
      This fixes TIMEOUT with my Kingston 32GB USB3.0 flashdrive, which I experienced
      on my PXA270 (USB 1.1) Vpac270 board.
      Signed-off-by: NMarek Vasut <marek.vasut@gmail.com>
      f2443d10
    • A
      board/armltd/integrator/split_by_variant.sh: fix 'echo -n' · 89bca0ab
      Andreas Bießmann 提交于
      This patch fixes an error when running MAKEALL for ARM9.
      
      On OS X /bin/sh uses builtin echo which does not utilise '-n' switch.
      GNU manual for builtins recomend to use here-document style to solve
      this portability issue.
      
      This patch removes the usage of 'echo -n' and replace by here-document
      style or a oneline echo command.
      Signed-off-by: NAndreas Bießmann <andreas.devel@googlemail.com>
      CC: Peter Pearse <peter.pearse@arm.com>
      89bca0ab
    • M
      ARMV7: Fixed baudrate setting in pl01x driver · 249d5219
      Matt Waddel 提交于
      The pl01x serial driver was lacking the code to switch baudrates from the
      command line.  Fixed by simply saving the new baudrate and calling
      serial_init() again.  Also fixed CamelCase variables, I/O accessors and
      comment style.
      Signed-off-by: NMatt Waddel <matt.waddel@linaro.org>
      249d5219
    • M
      ARMV7: Versatile Express Coretile CortexA9x4 support · b80e41ac
      Matt Waddel 提交于
      Adds support for the ARM quad-core Cortex-A9 processor
      
      This system includes a motherboard(Versatile Express), daughterboard
      (Coretile), and SOC(Cortex-A9 quad core).  The serial port, ethernet,
      and flash systems work with these additions.  The naming convention
      is:
         SOC -> CortexA9 quad core = ca9x4
         daughterboard -> Coretile = ct
         motherboard -> Versatile Express = vxp
      This gives ca9x4_ct_vxp.c as the board support file.
      Signed-off-by: NMatt Waddel <matt.waddel@linaro.org>
      b80e41ac
    • A
      arch/arm/include/asm/sizes.h: cleanups · a4a87d8a
      Andreas Bießmann 提交于
      Merge several sizes.h in asm/arch subdirectories into a single
      asm/sizes.h file.
      
      Fixup usage of asm/arch/sizes.h in some files to use the merged file.
      Signed-off-by: NAndreas Bießmann <andreas.devel@googlemail.com>
      a4a87d8a
    • W
      bfe8fe87
    • B
      ARM: relocation: don't undef CONFIG_SYS_ARM_WITHOUT_RELOC · 11080ab6
      Ben Gardiner 提交于
      There were some #undef's of CONFIG_SYS_ARM_WITHOUT_RELOC added to a few board
      configs as part of the arm relocation series; but these are not needed now as we
      do not #undef what is not #defined in the first place.
      Signed-off-by: NBen Gardiner <bengardiner@nanometrics.ca>
      CC: Heiko Schocher <hs@denx.de>
      11080ab6
    • H
      ARM: relocation: fix typo in comment · a784c01a
      Heiko Schocher 提交于
      Signed-off-by: NHeiko Schocher <hs@denx.de>
      a784c01a
    • P
      Kirkwood: Changes specific to ARM relocation support · 0b20ed76
      Prafulla Wadaskar 提交于
      All Kirkwood based boards are supported for this new implementation
      ref: docs/README.arm-relocation
      Signed-off-by: NPrafulla Wadaskar <prafulla@marvell.com>
      0b20ed76
    • P
      kirkwood: added common config file mv-common.h · 54e999a3
      Prafulla Wadaskar 提交于
      It is observed that, in most of the board configs the code is being
      duplicated, also for any common change all board files needs update
      This issue was under discussion from long on mailing list and we
      converge on introducing common config file.
      
      With this patch-
      1. Total Kirkwood specific configuration code is reduced by 210 lines
      2. All common configuration can be shared by multiple boards
      3. Easy to manage common updates like ARM relocation changes
      
      mv-common.h file is added to include/configs/
      It contains all common configuration supported for all Kirkwood boards
      The respective board configs are updated for its usage
      
      Build tested for guruplug, mv88f6281gtw_ge, openrd_base,
      rd6281a and sheevaplug
      Binary execution tested for sheevaplug
      
      Todo:
      1. Other custom Kirkwood boards to be synced
      2. The support to be extended for Orion5X based boards
      Signed-off-by: NPrafulla Wadaskar <prafulla@marvell.com>
      54e999a3
    • P
      Kirkwood: dram_init is moved to dram.c · beeb2589
      Prafulla Wadaskar 提交于
      For all Kirkwood boards so far dram_init function is duplicated
      dram_init function is moved to dram.c and relevant code from all
      board specific files removed
      
      If any board needs specific dram init handling than standard one,
      then, a macro CONFIG_SYS_BOARD_DRAM_INIT should be defined in
      board config header file and the dram_init function can be put
      in board specific source file
      For ex. keymile boards
      Signed-off-by: NPrafulla Wadaskar <prafulla@marvell.com>
      beeb2589
    • A
      orion5x: optimize window size computation · 500f2ff5
      Albert Aribaud 提交于
      Signed-off-by: NChris Moore <moore@free.fr>
      Signed-off-by: NAlbert Aribaud <albert.aribaud@free.fr>
      500f2ff5
    • P
      Kirkwood: print_cpuinfo fixed for valid devid revid · c0cd0207
      Prafulla Wadaskar 提交于
      Earlier Device Identification register was used to detect
      the type for SoC, considering 88F6282 support to be added,
      It is not possible to detect the same using current
      algorithm.
      
      With this patch, device ID is being read using PCIE devid
      register, also valid chip revision ID will also be read and
      displayed
      Signed-off-by: NPrafulla Wadaskar <prafulla@marvell.com>
      c0cd0207
    • A
      mvsata_ide: adjust port init sequence · d3497138
      Albert Aribaud 提交于
      mvsata_ide_initialize_port(): adjust init sequence (SStatus
      should be checked only after all writes to SControl) and
      return success/failure to ide_preinit().
      
      Also, as some tests showed init durations in the hundreds
      of us, raise the time-out to 01 ms to be on the safe side.
      Signed-off-by: NAlbert Aribaud <albert.aribaud@free.fr>
      d3497138
    • R
      sf: turn probe switch into a lookup table · 0d3fe2b1
      Reinhard Meyer 提交于
      This allows for arbitrarily long manufacturer ids following the JEDEC
      standard of 0x7f continuation bytes.  It also makes adding new entries
      easier as it's just one element in an array.  The downside is that it
      increases code size a bit, but we're talking ~50 bytes.
      Signed-off-by: NReinhard Meyer <u-boot@emk-elektronik.de>
      Signed-off-by: NMike Frysinger <vapier@gentoo.org>
      0d3fe2b1
    • B
      TSI148: Fix argument parsing · 076f1be8
      Brent Darley 提交于
      This patch does 2 things:
       - Fix the argument number assigned to the vdw (VME data width) value.
         Previously, a nonexistent 7th arument was read as the vdw variable.
      
       - Reduce the size of the argument array for the tsi148 command from
         8 to 7.  The tsi148 command itself is argument index 0, and the
         maximum number arguments passed to the command is 6, making a total
         of 7 for the array.
      Signed-off-by: NBrent Darley <bdarley@xes-inc.com>
      Signed-off-by: NPeter Tyser <ptyser@xes-inc.com>
      076f1be8
    • P
      powerpc: Remove warm reset entry point · 52ebd9c1
      Peter Tyser 提交于
      No boards utilize the warm reset entry point, so remove it.
      Signed-off-by: NPeter Tyser <ptyser@xes-inc.com>
      52ebd9c1
    • P
      ppmc7xx: Use _start as reset entry point · 3792d743
      Peter Tyser 提交于
      Previously the _warm_start label was used as an entry point.  These 2
      entry points should be functionally identical after the removal of the
      BOOTFLAG_WARM define.
      Signed-off-by: NPeter Tyser <ptyser@xes-inc.com>
      3792d743
    • P
      powerpc: Zero out board info struct on bootup · a1c4864a
      Peter Tyser 提交于
      This puts the board info struct in a known state and allows the removal
      of other code which initialized board info fields to 0.
      Signed-off-by: NPeter Tyser <ptyser@xes-inc.com>
      a1c4864a
    • S
      cp/cmp: Add WATCHDOG_RESET in copy and compare loop · eaadb44e
      Stefan Roese 提交于
      On some boards with a very short watchdog timeout, the "cp" and
      "cmp" commands may reset the board. This patch adds some
      watchdog resets inside the loops. Otherwise for example the lwmon5
      board will reset while doing something like this:
      
      => cp.b fc000000 1000000 100000
      Signed-off-by: NStefan Roese <sr@denx.de>
      eaadb44e
    • P
      examples/standalone: Use gcc's -fno-toplevel-reorder · c91d456c
      Peter Tyser 提交于
      Using -fno-toplevel-reorder causes gcc to not reorder functions.  This
      ensures that an application's entry point will be the first function in
      the application's source file.
      
      This change, along with commit 620bbba5
      should cause a standalone application's entry point to be at the base of
      the compiled binary.  Previously, the entry point could change depending
      on gcc version and flags.
      
      Note -fno-toplevel-reorder is only available in gcc version 4.2 or
      greater.
      Signed-off-by: NPeter Tyser <ptyser@xes-inc.com>
      c91d456c
    • I
      a4m072: support for SHOW_BOOT_PROGRESS feature using LED display · 92d1a400
      Ilya Yanok 提交于
      This patch adds support for displaying boot progress codes on a4m072 board
      using LED display. As we can display only one symbol at any time on the hardware
      (two symbols with blinking) we can't display progress codes directly and have
      to map them to 2-symbol codes.
      We use the following mapping on the a4m972 board:
       [1, 8] U [100, 108]					-> 5
       [-9, -1] U [-101, -100] U [-113, -103]			-> -5
       [9, 14] U [120, 123] U [125, 129]			-> 8
       [-13, -10] U [-122, -120] U [-127, -124] U {-129}	-> -8
       {15}							-> 9
       [-32, -30]						-> -A
       [-40, -35] U [-51, -42] U [-58, -53] U
      		[-83, -80] U {-64, -130, -140, -150}	-> -B
      
      Other progress code are ignored. One symbol codes are displayed steady while
      two-symbol codes are displayed using blinking. Boot progress codes are
      displayed with decimal got unset (as opposed to 'display' command output).
      Signed-off-by: NIlya Yanok <yanok@emcraft.com>
      92d1a400
    • I
      a4m072: led display support · cb5639cb
      Ilya Yanok 提交于
      This patch adds support for LED display on a4m072 board. Hardware is
      capable of displaying only one symbol at any time. We support displaying
      two symbols in software (via blinking).
      Signed-off-by: NIlya Yanok <yanok@emcraft.com>
      cb5639cb
    • I
      led_display: split led display support into generic and hw-dependent parts · 7f0d241d
      Ilya Yanok 提交于
      Split the display command into generic interface and hardware-specific
      realization for PDSP188x LED display found on hmi1001 and manroland
      boards. Simple interface for LED displays is defined in
      include/led-display.h and described in doc/README.LED_display.
      Driver-specific implementation was moved into drivers/misc/pdsp188x.c
      file (enabled with CONFIG_PDSP188x set).
      Signed-off-by: NIlya Yanok <yanok@emcraft.com>
      7f0d241d
    • S
      A4M072: Added support for the board. · 9531a238
      Sergei Poselenov 提交于
      This patch provides support for the A4M072 board with the following features:
       UART
       NOR flash
       FEC Ethernet
       External SRAM
       I2C EEPROM
       CompactFlash cards on IDE/ATA port
       USB Host
       PCI initialization
      
      The 7-segment LED indicator is not yet supported.
      Signed-off-by: NSergei Poselenov <sposelenov@emcraft.com>
      9531a238
    • M
      VFAT: fix processing of scattered long file name entries · 3831530d
      Mikhail Zolotaryov 提交于
      The U-Boot code has the following bugs related to the processing of Long File
      Name (LFN) entries scattered across several clusters/sectors :
      
      1) get_vfatname() function is designed to gather scattered LFN entries by
      cluster chain processing - that doesn't work for FAT12/16 root directory.
      In other words, the function expects the following input data:
       1.1) FAT32 directory (which is cluster chain based);
              OR
       1.2) FAT12/16 non-root directory (which is also cluster chain based);
              OR
       1.3) FAT12/16 root directory (allocated as contiguous sectors area), but
       all necessary information MUST be within the input buffer of filesystem cluster
       size (thus cluster-chain jump is never initiated).
      
      In order to accomplish the last condition, root directory parsing code in
      do_fat_read() uses the following trick: read-out cluster-size block, process
      only first sector (512 bytes), then shift 512 forward, read-out cluster-size
      block and so on. This works great unless cluster size is equal to 512 bytes
      (in a case you have a small partition), or long file name entries are scattered
      across three sectors, see 4) for details.
      
      2) Despite of the fact that get_vfatname() supports FAT32 root directory
      browsing, do_fat_read() function doesn't send current cluster number correctly,
      so root directory look-up doesn't work correctly.
      
      3) get_vfatname() doesn't gather scattered entries correctly also is the case
      when all LFN entries are located at the end of the source cluster, but real
      directory entry (which must be returned) is at the only beginning of the
      next one. No error detected, the resulting directory entry returned contains
      a semi-random information (wrong size, wrong start cluster number and so on)
      i.e. the entry is not accessible.
      
      4) LFN (VFAT) allows up to 20 entries (slots) each containing 26 bytes (13
      UTF-16 code units) to represent a single long file name i.e. up to 520 bytes.
      U-Boot allocates 256 bytes buffer instead, i.e. 10 or more LFN slots record
      may cause buffer overflow / memory corruption.
      Also, it's worth to mention that 20+1 slots occupy 672 bytes space which may
      take more than one cluster of 512 bytes (medium-size FAT32 or small FAT16
      partition) - get_vfatname() function doesn't support such case as well.
      
      The patch attached fixes these problems in the following way:
      - keep using 256 bytes buffer for a long file name, but safely prevent a
      possible buffer overflow (skip LFN processing, if it contains 10 or more
      slots).
      
      - explicitly specify FAT12/16 root directory parsing buffer size, instead
      of relying on cluster size. The value used is a double sector size (to store
      current sector and the next one). This fixes the first problem and increases
      performance on big FAT12/16 partitions;
      
      - send current cluster number (FAT32) to get_vfatname() during root
      directory processing;
      
      - use LFN counter to seek the real directory entry in get_vfatname() - fixes the
      third problem;
      
      - skip deleted entries in the root directory (to prevent bogus buffer
      overflow detection and LFN counter steps).
      
      Note: it's not advised to split up the patch, because a separate part may
      operate incorrectly.
      Signed-off-by: NMikhail Zolotaryov <lebon@lebon.org.ua>
      3831530d
    • D
      tools/imls: fix comment in Makefile · b75a2dde
      Daniel Hobi 提交于
      Commit d984fed0 (makefiles: fixes for building build tools)
      changed the variable name FIT_CFLAGS to HOSTCFLAGS_NOPED
      but forgot to update to corresponding comment.
      Signed-off-by: NDaniel Hobi <daniel.hobi@schmid-telecom.ch>
      Cc: Scott Wood <scottwood@freescale.com>
      Cc: Wolfgang Denk <wd@denx.de>
      b75a2dde
    • L
      env: don't set to default env twice when use CONFIG_ENV_IS_NOWHERE · d259079d
      Lei Wen 提交于
      When use the CONFIG_ENV_IS_NOWHERE, I met such issue:
      
      	DRAM:  256 MiB
      	Using default environment
      
      	*** Warning - bad CRC, using default environment
      Signed-off-by: NLei Wen <leiwen@marvell.com>
      d259079d
    • S
      zlib: Add further watchdog reset calls · be4424c7
      Stefan Roese 提交于
      Patch 253cb831 [zlib: add watchdog reset call] added already a few
      watchdog reset calls to the new zlib U-Boot port. But on some boards
      this is not enough. Additional calls are needed on boards with
      short watchdog timeouts.
      
      This was detected and tested on the lwmon5 board with a very short
      watchdog timeout. Without this patch, the board resets during Linux
      kernel decompression. With it, the decompression succeeds.
      Signed-off-by: NStefan Roese <sr@denx.de>
      Cc: Detlev Zundel <dzu@denx.de>
      Acked-by: NDetlev Zundel <dzu@denx.de>
      be4424c7
    • S
      zlib/gunzip: Use WATCHDOG_RESET macro · f8526286
      Stefan Roese 提交于
      As usually done in U-Boot, the watchdog_reset code is called via a
      macro (WATCHDOG_RESET). In zlib.c this was done differently, by using
      a function pointer which is initialized with WATCHDOG_RESET upon watchdog
      usage or with NULL otherwise. This patch now uses the plain
      WATCHDOG_RESET macros to call the function resulting in slightly smaller
      U-Boot images and simpler code.
      
      U-Boot code size reduction:
      
      PowerPC board with watchdog support (lwmon5):
      -> 80 bytes smaller image size
      
      PowerPC board without watchdog support (sequoia):
      -> 112 bytes smaller image size
      Signed-off-by: NStefan Roese <sr@denx.de>
      Cc: Detlev Zundel <dzu@denx.de>
      Cc: Wolfgang Denk <wd@denx.de>
      Acked-by: NDetlev Zundel <dzu@denx.de>
      f8526286
    • A
      pdm360ng: add EDID property to FDT display node · 6213b8ff
      Anatolij Gustschin 提交于
      PDM360NG board uses this functionality to pass display
      timing info to the Linux Framebuffer driver.
      Signed-off-by: NAnatolij Gustschin <agust@denx.de>
      Acked-by: NDetlev Zundel <dzu@denx.de>
      6213b8ff
    • A
      fdt_support: support adding EDID property to FDT display nodes · beca5a5f
      Anatolij Gustschin 提交于
      Boards can pass display timing info for drivers using EDID
      block. Provide common function to add board specific EDID
      data to the device tree. Subsequent patch makes use of this
      functionality.
      
      Detailed timing descriptor data from EDID is used for
      programming the display controller. This is currently
      implemented on the Linux side by the fsl-diu-fb frame
      buffer driver and it is documented there in
      Documentation/powerpc/dts-bindings/fsl/diu.txt.
      Signed-off-by: NAnatolij Gustschin <agust@denx.de>
      Acked-by: NDetlev Zundel <dzu@denx.de>
      Cc: Gerald Van Baren <vanbaren@cideas.com>
      beca5a5f