From: Ian Campbell Date: Sun, 05 Oct 2014 09:37:29 +0100 Subject: [U-Boot] [PATCH 1/4] ahci: Don't start command DMA engine before buffers are set In-Reply-To: <1411484824-27265-2-git-send-email-rogerq@ti.com> References: <1411484824-27265-1-git-send-email-rogerq@ti.com> <1411484824-27265-2-git-send-email-rogerq@ti.com> Message-ID: <1412498249.12707.10.camel@hellion.org.uk> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 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); >