From: Gerd Hoffmann Date: Thu, 14 Jul 2011 14:23:59 +0000 (+0200) Subject: ahci/sata: Fix FIS setup. X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=seabios.git;a=commitdiff_plain;h=a8c6a4e820d214e03ab591b11f0fdf5803718378 ahci/sata: Fix FIS setup. FIS setup does't follow the SATA specs, fix it. Credits go to Jonathan Kollasch and Scott Duplichan for finding those. Signed-off-by: Gerd Hoffmann --- diff --git a/src/ahci.c b/src/ahci.c index fb4b70c..058416c 100644 --- a/src/ahci.c +++ b/src/ahci.c @@ -125,12 +125,11 @@ static int ahci_command(struct ahci_port_s *port, int iswrite, int isatapi, return -1; flags = ((1 << 16) | /* one prd entry */ - (1 << 10) | /* clear busy on ok */ (iswrite ? (1 << 6) : 0) | (isatapi ? (1 << 5) : 0) | - (4 << 0)); /* fis length (dwords) */ - SET_FLATPTR(list[0].flags, flags); - SET_FLATPTR(list[0].bytes, bsize); + (5 << 0)); /* fis length (dwords) */ + SET_FLATPTR(list[0].flags, flags); + SET_FLATPTR(list[0].bytes, 0); SET_FLATPTR(list[0].base, ((u32)(cmd))); SET_FLATPTR(list[0].baseu, 0);