the following patch was just integrated into master: commit 563dc5e980a6e9de9e55619932c96aac16c85632 Author: Nico Huber nico.huber@secunet.com Date: Thu Aug 30 15:36:57 2012 +0200
libpayload: New AHCI, ATA and ATAPI drivers
This adds a new interface for storage devices. A driver for ATA and ATAPI drives on AHCI host controllers comes along.
The interface is very simple and was designed to match FILO's needs. It consists of three functions:
void storage_initialize(void); Initializes controllers. Should be called once at startup.
storage_poll_t storage_probe(size_t dev_num); with typedef enum { POLL_NO_DEVICE = -2, POLL_ERROR = -1, POLL_NO_MEDIUM = 0, POLL_MEDIUM_PRESENT = 1, } storage_poll_t; Looks for a drive with number dev_num (drives are counted from zero) and polls for a medium in the drive if appropriate.
int storage_read_blocks512(size_t dev_num, u64 start, size_t count, unsigned char *buf); Reads count blocks of 512 bytes from block start of drive dev_num into buf.
Change-Id: I1c85796b7f8e379ff3817a61b1837636b57e182b Signed-off-by: Nico Huber nico.huber@secunet.com
Build-Tested: build bot (Jenkins) at Fri Oct 26 15:46:59 2012, giving +1 Reviewed-By: Stefan Reinauer stefan.reinauer@coreboot.org at Fri Oct 26 19:08:37 2012, giving +2 Reviewed-By: Peter Stuge peter@stuge.se at Sat Oct 27 02:52:58 2012, giving +2 See http://review.coreboot.org/1622 for details.
-gerrit