mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-20 14:13:09 +00:00
ahci & exynos5: enable HDDs like Seagate Barracuda
Initialize and limit port speed to 3 Gbps in general because the Seagate Barracuda 1TB throws much errors with 6 Gbps by now. Try all port speeds from the highest to the lowest as long as debouncing fails and try them all again in this order when falling back to slower debouncing. Try to recover from all types of interface error. When a port was recovered from an error during a NCQ command get the last LBA that was accessed successfully and continue command from this point. Use a platform driver through the 'Regulator' service to do CMU and PMU config. Switch off verbosity by default.
This commit is contained in:
parent
686c551b66
commit
ada408d2f7
File diff suppressed because it is too large
Load Diff
@ -23,13 +23,15 @@
|
|||||||
*/
|
*/
|
||||||
class Ahci_driver : public Block::Driver
|
class Ahci_driver : public Block::Driver
|
||||||
{
|
{
|
||||||
|
enum { VERBOSE = 0 };
|
||||||
|
|
||||||
/* import Genode symbols */
|
/* import Genode symbols */
|
||||||
typedef Genode::size_t size_t;
|
typedef Genode::size_t size_t;
|
||||||
|
typedef Genode::uint64_t uint64_t;
|
||||||
typedef Genode::addr_t addr_t;
|
typedef Genode::addr_t addr_t;
|
||||||
typedef Genode::Ram_dataspace_capability Ram_dataspace_capability;
|
typedef Genode::Ram_dataspace_capability Ram_dataspace_capability;
|
||||||
|
|
||||||
int _ncq_command(size_t const block_nr, size_t const block_cnt,
|
int _ncq_command(uint64_t lba, unsigned cnt, addr_t phys, bool w);
|
||||||
addr_t const phys, bool const w);
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user