1. 14 6月, 2013 5 次提交
    • A
      fsl_esdhc: Do not clear interrupt status bits until data processed · 01b77353
      Andrew Gabbasov 提交于
      After waiting for the command completion event, the interrupt status
      bits, that occured to be set by that time, are cleared by writing them
      back. It is supposed, that it should be command related bits (command
      complete and may be command errors).
      
      However, in some cases the DMA already completes by that time before
      the full transaction completes. The corresponding DINT bit gets set
      and then cleared before even entering the loop, waiting for data part
      completion. That waiting loop never gets this bit set, causing the
      operation to hang. This is reported to happen, for example, for write
      operation of 1 sector to upper area (block #7400000) of SanDisk Ultra II
      8GB card.
      
      The solution could be to explicitly clear only command related interrupt
      status bits. However, since subsequent processing does not rely on
      any command bits state, it could be easier just to remove clearing
      of any bits at that point, leaving them all until all data processing
      completes. After that the whole register will be cleared at once.
      
      Also, on occasion, interrupts masking moved to before writing the command,
      just for the case there should be no chance of interrupt between the first
      command and interrupts masking.
      Reported-by: NDirk Behme <dirk.behme@de.bosch.com>
      Signed-off-by: NAndrew Gabbasov <andrew_gabbasov@mentor.com>
      Acked-by: NDirk Behme <dirk.behme@de.bosch.com>
      Signed-off-by: NAndy Fleming <afleming@freescale.com>
      01b77353
    • F
      mmc: fsl_esdhc: Fix hang after 'save' command · c2137b10
      Fabio Estevam 提交于
      Since commit 48e0b2bd (powerpc/esdhc: Correct judgement for DATA PIO mode)
      we see mx6 systems to hang after doing a 'save' command.
      
      Revert this commit since the original 'ifdef' logic from 7b43db92
      (drivers/mmc/fsl_esdhc.c: fix compiler warnings) was the correct one.
      Reported-by: NTapani Utriainen <tapani@technexion.com>
      Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: NAndy Fleming <afleming@freescale.com>
      c2137b10
    • R
      mmc write bug fix · a586c0aa
      Ruud Commandeur 提交于
      This patch fixes a bug related to mmc writes.
      
      When doing fatwrites on an SD-Card, MMC bus problems can occur. Depending
      on the size of the file, "MMC0: Bus busy timeout!" is reported, resulting
      in an SD-Card that is no longer responding.
      It appears to be, that set_cluster can be called with a size being zero.
      That can be with a file that has a size being an exact multiple
      (including 0) of the clustersize, but also for files that are smaller than
      the size of one cluster.
      The same problem occurs if the "mmc write" command is given with a block
      count being 0.
      
      By adding a check for the block count being zero in mmc_write_blocks
      (drivers/mmc.c), this problem is solved.
      Signed-off-by: NRuud Commandeur <rcommandeur@clb.nl>
      Cc: Tom Rini <trini@ti.com>
      Cc: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
      Cc: Mats Karrman <Mats.Karrman@tritech.se>
      Cc: Andy Fleming <afleming@gmail.com>
      Signed-off-by: NAndy Fleming <afleming@freescale.com>
      a586c0aa
    • J
      mmc: sdhci: Enable 8-bit bus width only for 3.0 spec onwards · 1695b29a
      Jagannadha Sutradharudu Teki 提交于
      CAP register don't have any information for 8-bit buswidth support
      on 2.0 sdhci spec, only from 3.0 onwards bit[18] got this information.
      
      Due to this misassignment in sdhci, mmc is setting 8-bit buswidth using
      mmc_set_bus_width even if controller doesn't support.
      Below change has code information.
      "mmc: Properly determine maximum supported bus width"
      (sha1: 7798f6db)
      
      Bug log: <mmc plus and emmc cards)
      -------
      zynq-uboot> mmcinfo
      Error detected in status(0x208100)!
      Device: zynq_sdhci
      Manufacturer ID: fe
      .....
      
      So enable 8-bit support only for 3.0 spec using CAP and for below 3.0
      assign mmc->host_caps = MMC_MODE_8BIT on respective platform driver
      if host have a support.
      Signed-off-by: NJagannadha Sutradharudu Teki <jaganna@xilinx.com>
      Signed-off-by: NAndy Fleming <afleming@freescale.com>
      1695b29a
    • B
      mmc: fix env in mmc with redundant compile error · 5707df77
      Bo Shen 提交于
      The commit d196bd88 (env_mmc: add support for redundant environment)
      introduce the following compile error when enable redundant
      environment support with MMC
      ---8<---
      env_mmc.c:149: error: 'env_t' has no member named 'flags'
      env_mmc.c:248: error: 'env_t' has no member named 'flags'
      env_mmc.c:248: error: 'env_t' has no member named 'flags'
      env_mmc.c:250: error: 'env_t' has no member named 'flags'
      env_mmc.c:250: error: 'env_t' has no member named 'flags'
      env_mmc.c:252: error: 'env_t' has no member named 'flags'
      env_mmc.c:252: error: 'env_t' has no member named 'flags'
      env_mmc.c:254: error: 'env_t' has no member named 'flags'
      env_mmc.c:254: error: 'env_t' has no member named 'flags'
      env_mmc.c:267: error: 'env_t' has no member named 'flags'
      make[1]: *** [env_mmc.o] Error 1
      --->8---
      
      Add this patch to fix it
      Signed-off-by: NBo Shen <voice.shen@atmel.com>
      Reviewed-by: NMichael Heimpold <mhei@heimpold.de>
      Signed-off-by: NAndy Fleming <afleming@freescale.com>
      5707df77
  2. 12 6月, 2013 3 次提交
    • T
      077becc3
    • M
      ppc: ppmc7xx: Fix possible out-of-bound access · 8cf69553
      Marek Vasut 提交于
      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: NMarek Vasut <marex@denx.de>
      Cc: Wolfgang Denk <wd@denx.de>
      Cc: Tom Rini <trini@ti.com>
      Cc: Richard Danter <richard.danter@windriver.com>
      8cf69553
    • S
      powerpc: fix 8xx and 82xx type-punning warnings with GCC 4.7 · a166fbca
      Scott Wood 提交于
      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: NScott Wood <scottwood@freescale.com>
      Acked-by: NWolfgang Denk <wd@denx.de>
      a166fbca
  3. 09 6月, 2013 2 次提交
    • D
      MIPS: asm/errno.h: switch to asm-generic/errno.h · e1208c2f
      Daniel Schwierzeck 提交于
      This fixes several warnings like
      
      In file included from ./u-boot/include/linux/mtd/mtd.h:13:0,
                       from env_onenand.c:37:
      ./u-boot/build/vct_platinumavc_onenand_small/include2/asm/errno.h:52:0: warning: "ENOMSG" redefined [enabled by default]
      Signed-off-by: NDaniel Schwierzeck <daniel.schwierzeck@gmail.com>
      e1208c2f
    • G
      MIPS: fix __raw_* IO accessors · f0550f87
      Gabor Juhos 提交于
      The purpose of the __raw* IO accessors is to provide
      IO access in native-endian order. However in the current
      MIPS implementation, the 16 and 32 bit variants of the
      __raw accessors are swapping the values on big-endian
      systems if the CONFIG_SWAP_IO_SPACE option is enabled.
      
      The patch changes the IO accessor macros to fix this
      broken behaviour.
      Signed-off-by: NGabor Juhos <juhosg@openwrt.org>
      Cc: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>
      f0550f87
  4. 08 6月, 2013 8 次提交
    • G
      pci: introduce CONFIG_PCI_INDIRECT_BRIDGE option · 842033e6
      Gabor Juhos 提交于
      The pci_indirect.c file is always compiled when
      CONFIG_PCI is defined although the indirect PCI
      bridge support is not needed by every board.
      
      Introduce a new CONFIG_PCI_INDIRECT_BRIDGE
      config option and only compile indirect PCI
      bridge support if this options is enabled.
      
      Also add the new option into the configuration
      files of the boards which needs that.
      
      Compile tested for powerpc, x86, arm and nds32.
      MAKEALL results:
      
      powerpc:
        --------------------- SUMMARY ----------------------------
        Boards compiled: 641
        Boards with warnings but no errors: 2 ( ELPPC MPC8323ERDB )
        ----------------------------------------------------------
        Note: the warnings for ELPPC and MPC8323ERDB are present even
        without the actual patch.
      
      x86:
        --------------------- SUMMARY ----------------------------
        Boards compiled: 1
        ----------------------------------------------------------
      
      arm:
        --------------------- SUMMARY ----------------------------
        Boards compiled: 311
        ----------------------------------------------------------
      
      nds32:
        --------------------- SUMMARY ----------------------------
        Boards compiled: 3
        ----------------------------------------------------------
      
      Cc: Tom Rini <trini@ti.com>
      Cc: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>
      Signed-off-by: NGabor Juhos <juhosg@openwrt.org>
      842033e6
    • S
      fdt: remove unaligned access in fdt_fixup_ethernet() · 064d55f8
      Stephen Warren 提交于
      Some ARM compilers may emit code that makes unaligned accesses when
      faced with constructs such as:
      
      char mac[16] = "ethaddr";
      
      Replace this with a strcpy() call instead to avoid this. strcpy() is
      used here, rather than replacing all usage of the mac variable with the
      string itself, since the loop itself sprintf()s to the variable each
      iteration, so strcpy() is doing basically the same thing.
      
      Reported-by: Florian Meier
      Signed-off-by: NStephen Warren <swarren@wwwdotorg.org>
      064d55f8
    • M
      generic_board: reduce the redundancy of gd_t struct members · a0ba279a
      Masahiro Yamada 提交于
      This commit refactors common/board_f.c and common/board_r.c
      in order to delete the dest_addr and dest_addr_sp from
      gd_t struct.
      
      As mentioned as follows in include/asm-generic/global_data.h,
      
        /* TODO: is this the same as relocaddr, or something else? */
        unsigned long dest_addr;        /* Post-relocation address of U-Boot */
      
      dest_addr is the same as relocaddr.
      Likewise, dest_addr_sp is the same as start_addr_sp.
      
      It seemed dest_addr/dest_addr_sp was used only as a scratch variable
      to calculate relocaddr/start_addr_sp, respectively.
      
      With a little refactoring, we can delete dest_addr and dest_addr_sp.
      Signed-off-by: NMasahiro Yamada <yamada.m@jp.panasonic.com>
      Cc: Simon Glass <sjg@chromium.org>
      a0ba279a
    • P
      am335x: enable falcon boot mode for mmc (raw and fat) and nand · 12d7a474
      Peter Korsgaard 提交于
      Jump into full u-boot mode if a 'c' character is received on the uart.
      
      We need to adjust the spl bss/malloc area to not overlap with the
      loadaddr of the kernel (sdram + 32k), so move it past u-boot instead.
      
      For raw mmc, we store the kernel parameter area in the free space after
      the MBR (if used). For nand, we use the last sector of the partition
      reserved for u-boot.
      
      This also enables the spl command in the full u-boot so the kernel
      parameter area snapshot can be created.
      Signed-off-by: NPeter Korsgaard <peter.korsgaard@barco.com>
      12d7a474
    • P
      spl_mmc: add Falcon mode support for raw variant · 2b75b0ad
      Peter Korsgaard 提交于
      If Falcon mode support is enabled (and the system isn't directed into
      booting u-boot), it will instead try to load kernel from sector
      CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR and
      CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS of kernel argument parameters
      starting from sector CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR.
      Signed-off-by: NPeter Korsgaard <peter.korsgaard@barco.com>
      2b75b0ad
    • P
      spl_mmc: mmc_load_image_raw(): Add sector argument · 721931f8
      Peter Korsgaard 提交于
      So we can use it for falcon mode as well.
      Signed-off-by: NPeter Korsgaard <peter.korsgaard@barco.com>
      721931f8
    • P
      spl_mmc: add Falcon mode support for FAT variant · 7ad2cc79
      Peter Korsgaard 提交于
      If Falcon mode support is enabled (and the system isn't directed into
      booting u-boot), it will instead try to load kernel from
      CONFIG_SPL_FAT_LOAD_KERNEL_NAME file and kernel argument parameters from
      CONFIG_SPL_FAT_LOAD_ARGS_NAME, both from the same partition as u-boot.
      Signed-off-by: NPeter Korsgaard <peter.korsgaard@barco.com>
      7ad2cc79
    • T
      devkit8000: Add SPL_OS for MMC support · b6144dfc
      Tom Rini 提交于
      Signed-off-by: NTom Rini <trini@ti.com>
      b6144dfc
  5. 07 6月, 2013 4 次提交
  6. 06 6月, 2013 6 次提交
  7. 05 6月, 2013 12 次提交