1. 18 Apr, 2016 1 commit
  2. 04 Apr, 2016 1 commit
  3. 01 Apr, 2016 1 commit
    • Eric Nelson's avatar
      drivers: block: add block device cache · e40cf34a
      Eric Nelson authored
      Add a block device cache to speed up repeated reads of block devices by
      various filesystems.
      
      This small amount of cache can dramatically speed up filesystem
      operations by skipping repeated reads of common areas of a block
      device (typically directory structures).
      
      This has shown to have some benefit on FAT filesystem operations of
      loading a kernel and RAM disk, but more dramatic benefits on ext4
      filesystems when the kernel and/or RAM disk are spread across
      multiple extent header structures as described in commit fc0fc50f.
      
      The cache is implemented through a minimal list (block_cache) maintained
      in most-recently-used order and count of the current number of entries
      (cache_count). It uses a maximum block count setting to prevent copies
      of large block reads and an upper bound on the number of cached areas.
      
      The maximum number of entries in the cache defaults to 32 and the maximum
      number of blocks per cache entry has a default of 2, which has shown to
      produce the best results on testing of ext4 and FAT filesystems.
      
      The 'blkcache' command (enabled through CONFIG_CMD_BLOCK_CACHE) allows
      changing these values and can be used to tune for a particular filesystem
      layout.
      Signed-off-by: default avatarEric Nelson <eric@nelint.com>
      e40cf34a
  4. 22 Mar, 2016 1 commit
  5. 18 Mar, 2016 1 commit
  6. 14 Mar, 2016 6 commits
  7. 06 Feb, 2016 1 commit
  8. 24 Jan, 2016 1 commit
  9. 15 Jan, 2016 1 commit
  10. 14 Jan, 2016 3 commits
    • Stefan Roese's avatar
      arm: mvebu: Move SoC selection (A38X vs AXP) into Kconfig · 81e33f4b
      Stefan Roese authored
      Until now, the SoC selection for the ARCH_MVEBU platforms has been done
      in the config header. Using CONFIG_ARMADA_XP in a non-clear way. As
      it needed to get selected for AXP and A38x based boards. This patch
      now changes this to move the SoC selection to Kconfig. And also
      uses CONFIG_ARCH_MVEBU as a common define for both AXP and A38x.
      This makes things a bit clearer - especially for new board additions.
      
      Additionally the defines CONFIG_SYS_MVEBU_DDR_AXP and
      CONFIG_SYS_MVEBU_DDR_A38X are replaced with the already available
      CONFIG_ARMADA_38X and CONFIG_ARMADA_XP.
      
      And CONFIG_DDR3 is removed, as its not referenced anywhere.
      Signed-off-by: default avatarStefan Roese <sr@denx.de>
      Cc: Luka Perkov <luka.perkov@sartura.hr>
      81e33f4b
    • Tor Krill's avatar
      sata: Add SATA driver with DMA support for Marvell Kirkwood and Armada XP · 169789dc
      Tor Krill authored
      This patch adds a new SATA driver for the Marvell Kirkwood and Armada
      370 / XP SoC's.
      
      This driver supports the SATA controller of some Mavell SoC's.
      Here a (most likely incomplete) list of the supported SoC's:
      - Kirkwood
      - Armada 370
      - Armada XP
      
      This driver implementation is an alternative to the already available
      driver via the "ide" commands interface (drivers/block/mvsata_ide.c).
      But this driver only supports PIO mode and as this new driver also
      supports transfer via DMA, its much faster.
      
      Please note, that the newer SoC's (e.g. Armada 38x) are not supported
      by this driver. As they have an AHCI compatible SATA controller
      integrated.
      
      The original version of this driver was sent by Tor Krill to the U-Boot
      list a few years ago. Here the link:
      
      http://lists.denx.de/pipermail/u-boot/2010-June/073147.html
      
      Changes by Stefan:
      - Coding-style cleanup
      - Support for Armada XP added
      - MBUS window setup added
      - D-cache flush and invalidation added - works with dcache enabled on
        Armada XP
      - Removed mdelay() from ata_wait_register() and add timer based timeout
        detection to speed up the transfer
      Signed-off-by: default avatarTor Krill <tor@excito.com>
      Signed-off-by: default avatarStefan Roese <sr@denx.de>
      Cc: Luka Perkov <luka.perkov@sartura.hr>
      Cc: Tom Rini <trini@konsulko.com>
      169789dc
    • Stephen Warren's avatar
      block: pass block dev not num to read/write/erase() · 7c4213f6
      Stephen Warren authored
      This will allow the implementation to make use of data in the block_dev
      structure beyond the base device number. This will be useful so that eMMC
      block devices can encompass the HW partition ID rather than treating this
      out-of-band. Equally, the existence of the priv field is crying out for
      this patch to exist.
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      Reviewed-by: default avatarTom Rini <trini@konsulko.com>
      7c4213f6
  11. 12 Jan, 2016 1 commit
  12. 05 Dec, 2015 2 commits
  13. 20 Nov, 2015 1 commit
  14. 12 Nov, 2015 1 commit
  15. 11 Sep, 2015 1 commit
  16. 23 Jul, 2015 1 commit
  17. 15 Jul, 2015 1 commit
  18. 10 Jul, 2015 1 commit
    • Stefan Roese's avatar
      block: ahci: Don't enable port interrupts · 2cc1aa2e
      Stefan Roese authored
      This patch changes the initialization of the AHCI controller to not
      enable the default interrupts (DEF_PORT_IRQ). As interrupts are
      not used in U-Boot in general, this should not break the common AHCI
      driver operation.
      
      This change is needed to support the Marvell Armada 38x AHCI
      controller. With interrupts enabled, this results in timeouts in
      ahci_device_data_io(). Not enabling these interrupts fixes this
      problem and the common AHCI driver works fine.
      Signed-off-by: default avatarStefan Roese <sr@denx.de>
      Reviewed-by: default avatarSimon Glass <sjg@chromium.org>
      Cc: Tom Rini <trini@konsulko.com>
      Cc: Hans de Goede <hdegoede@redhat.com>
      Cc: Luka Perkov <luka.perkov@sartura.hr>
      2cc1aa2e
  19. 09 Jul, 2015 1 commit
  20. 12 Jun, 2015 2 commits
  21. 28 May, 2015 1 commit
  22. 18 Apr, 2015 1 commit
  23. 07 Apr, 2015 1 commit
    • Tang Yuantian's avatar
      ahci: Fix a wrong parameter pass · 8f6e1838
      Tang Yuantian authored
      In stead of user_buffer_size, transfer_size should be used to pass to
      ahci_device_data_io(). transfer_size is the length that we want the
      low level function to transfer each time.
      If we use user_buffer_size which is the totally data length as parameter,
      low level function will actually create many SGs to transfer as many data
      as possible each time. That will produce many redundant data transfer.
      Signed-off-by: default avatarTang Yuantian <Yuantian.Tang@freescale.com>
      Reviewed-by: default avatarSimon Glass <sjg@chromium.org>
      8f6e1838
  24. 24 Jan, 2015 1 commit
    • Bin Meng's avatar
      x86: ahci: Make sure interface is not busy after enabling the port · 4df2b48f
      Bin Meng authored
      Each time U-Boot boots on Intel Crown Bay board, the displayed hard
      drive information is wrong. It could be either wrong capacity or just
      a 'Capacity: not available' message. After enabling the debug switch,
      we can see the scsi inquiry command did not execute successfully.
      However, doing a 'scsi scan' in the U-Boot shell does not expose
      this issue.
      
      SCSI:  Target spinup took 0 ms.
      SATA link 1 timeout.
      AHCI 0001.0100 32 slots 2 ports 3 Gbps 0x3 impl SATA mode
      flags: ncq stag pm led clo only pmp pio slum part ccc apst
      scanning bus for devices...
      ahci_device_data_io: 0 byte transferred.   <--- scsi inquiry fails
      ahci_device_data_io: 512 byte transferred.
      ahci_device_data_io: 512 byte transferred.
      ahci_device_data_io: 512 byte transferred.
        Device 0: (0:0) Vendor: ATA Prod.:  Rev: ?8
                    Type: Hard Disk
      	                  Capacity: 912968.3 MB = 891.5 GB (1869759264 x 512)
      			  Found 1 device(s).
      
      So uninitialized contents on the stack were passed to dev_print() to
      display those wrong information.
      
      The symptom were observed on two hard drives (one is Seagate, the
      other one is Western Digital). The fix is to make sure the AHCI
      interface is not busy by checking the error and status information
      from task file register after enabling the port in ahci_port_start()
      before proceeding other operations like scsi_scan().
      Signed-off-by: default avatarBin Meng <bmeng.cn@gmail.com>
      Reviewed-by: default avatarSimon Glass <sjg@chromium.org>
      4df2b48f
  25. 05 Jan, 2015 2 commits
  26. 08 Dec, 2014 1 commit
  27. 01 Dec, 2014 1 commit
  28. 24 Nov, 2014 1 commit
    • Nikita Kiryanov's avatar
      sata: implement reset_sata for dwc_ahsata · 10ee8eca
      Nikita Kiryanov authored
      Add reset_sata() to the sata driver interface and implement it
      for dwc_ahsata. This function cleans up after sata_init(), and
      therefore accepts a device number like sata_init() does.
      A dummy implementation is provided for the rest of the drivers.
      Signed-off-by: default avatarNikita Kiryanov <nikita@compulab.co.il>
      Cc: Simon Glass <sjg@chromium.org>
      Cc: Stefano Babic <sbabic@denx.de>
      10ee8eca
  29. 23 Nov, 2014 2 commits