[U-Boot] [PATCH 1/4] ahci: Don't start command DMA engine before buffers are set

Ian Campbell ijc at hellion.org.uk
Sun Oct 5 10:37:29 CEST 2014


On Tue, 2014-09-23 at 18:07 +0300, Roger Quadros wrote:
> 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: Roger Quadros <rogerq at ti.com>

FWIW this also appears to have solved an issue I've been having getting
sata working from u-boot on arndale (porting some patches from chromeos
tree). Not sure if that quite qualifies as an Ack or Tested - by...

> ---
>  drivers/block/ahci.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/drivers/block/ahci.c b/drivers/block/ahci.c
> index dce99ad..a93a8e1 100644
> --- a/drivers/block/ahci.c
> +++ b/drivers/block/ahci.c
> @@ -229,7 +229,6 @@ static int ahci_host_init(struct ahci_probe_ent *probe_ent)
>  		 * already be on in the command register.
>  		 */
>  		cmd = readl(port_mmio + PORT_CMD);
> -		cmd |= PORT_CMD_FIS_RX;
>  		cmd |= PORT_CMD_SPIN_UP;
>  		writel_with_flush(cmd, port_mmio + PORT_CMD);
>  




More information about the U-Boot mailing list