[SeaBIOS] AHCI: Set transfer mode according to the capabilities of connected drive

Kevin O'Connor kevin at koconnor.net
Sat Feb 20 03:18:55 CET 2016


On Mon, Feb 15, 2016 at 12:00:48PM +0000, Zeh, Werner wrote:
> Hi Kevin.
> 
> We had some issues with some connected AHCI devices in SeaBIOS. We
> have connected some CF-Cards by using a simple SATA<->IDE bridge to
> the mainboard and in some cases, the drive (which is the CF-card)
> was not recognized correctly. After some deeper analysis we found
> that SeaBIOS does not set up the transfer rate which is used to
> communicate to the drive. The supported transfer rate can be found
> in the data structure which is delivered by IDENTIFY_DEVICE command.
> 
> So in our error cases the default transfer rate was too high and
> therefore data error has occurred.  I have attached a patch which
> will deal with this case on AHCI controllers. Maybe you can push
> this patch to mainline or at least have a look at it.
> 
> Up to now I have verified the function of this patch with the latest
> master branch of SeaBIOS and a Broadwell-DE CPU.  I have used PIO4,
> default PIO, Multiword-DMA2 and several Ultra-DMA CF-cards to ensure
> that all three paths work properly.
> 
> BTW: I am not that familiar with code style in SeaBIOS. If I made
> some formal mistakes, feel free to correct them.

Thanks.  I'm not that familiar with the AHCI internals.  Gerd, would
you be able to review?

-Kevin



More information about the SeaBIOS mailing list