1. 15 Jul, 2015 1 commit
  2. 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
  3. 09 Jul, 2015 1 commit
  4. 12 Jun, 2015 2 commits
  5. 28 May, 2015 1 commit
  6. 18 Apr, 2015 1 commit
  7. 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
  8. 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
  9. 05 Jan, 2015 2 commits
  10. 08 Dec, 2014 1 commit
  11. 01 Dec, 2014 1 commit
  12. 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
  13. 23 Nov, 2014 2 commits
  14. 28 Oct, 2014 1 commit
  15. 23 Oct, 2014 1 commit
  16. 10 Oct, 2014 1 commit
    • Roger Quadros's avatar
      ahci: Don't start command DMA engine before buffers are set · 02590aa3
      Roger Quadros authored
      The DMA/FIS buffers are set in ahci_port_start() which is called
      after ahci_host_init(). So don't start the DMA engine here
      (i.e. don't set FIS_RX)
      
      This fixes the following error at kernel boot on OMAP platforms (e.g. DRA7x)
      WARNING: CPU: 0 PID: 0 at drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x260/0x358()
      44000000.ocp:L3 Custom Error: MASTER SATA TARGET GPMC (Idle): Data Access in User mode during Functional access
      Signed-off-by: default avatarRoger Quadros <rogerq@ti.com>
      02590aa3
  17. 24 Sep, 2014 1 commit
  18. 09 Sep, 2014 1 commit
  19. 31 Jul, 2014 1 commit
    • Ian Campbell's avatar
      ahci: provide sunxi SATA driver using AHCI platform framework · a6e50a88
      Ian Campbell authored
      This enables the necessary clocks, in AHB0 and in PLL6_CFG. This is done
      for sun7i only since I don't have access to any other sunxi platforms
      with sata included.
      
      The PHY setup is derived from the Alwinner releases and Linux, but is mostly
      undocumented.
      
      The Allwinner AHCI controller also requires some magic (and, again,
      undocumented) DMA initialisation when starting a port.  This is added under a
      suitable ifdef.
      
      This option is enabled for Cubieboard, Cubieboard2 and Cubietruck based on
      contents of Linux DTS files, including SATA power pin config taken from the
      DTS. All build tested, but runtime tested on Cubieboard2 and Cubietruck only.
      Signed-off-by: default avatarIan Campbell <ijc@hellion.org.uk>
      Acked-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      a6e50a88
  20. 22 Jul, 2014 1 commit
  21. 06 Jun, 2014 1 commit
  22. 02 Apr, 2014 1 commit
    • Roger Quadros's avatar
      ahci: Fix data abort on multiple scsi resets. · 3f629711
      Roger Quadros authored
      Commit 2faf5fb8 introduced a regression that causes a data
      abort when running scsi init followed by scsi reset.
      
      There are 2 problems with the original commit
      1) ALLOC_CACHE_ALIGN_BUFFER() allocates memory on the stack but is
      assigned to ataid[port] and used by other functions.
      2) The function ata_scsiop_inquiry() tries to free memory which was
      never allocated on the heap.
      
      Fix these problems by using tmpid as a temporary cache aligned buffer.
      Allocate memory separately for ataid[port] and re-use it if required.
      
      Fixes: 2faf5fb8 (ahci: Fix cache align error messages)
      Reported-by: default avatarEli Nidam <elini@marvell.com>
      Signed-off-by: default avatarRoger Quadros <rogerq@ti.com>
      3f629711
  23. 10 Mar, 2014 2 commits
  24. 20 Feb, 2014 1 commit
  25. 09 Jan, 2014 1 commit
  26. 04 Dec, 2013 2 commits
  27. 31 Oct, 2013 1 commit
  28. 14 Oct, 2013 1 commit
  29. 20 Sep, 2013 1 commit
  30. 06 Sep, 2013 6 commits