NOVA User-Level Environment
Version testbox/changed-memory-timing-317-g320d8b5
|
A single AHCI port with its command list and receive FIS buffer. More...
Public Member Functions | |
unsigned | init (unsigned short *buffer) |
Initialize the port. | |
void | debug () |
void | irq () |
bool | receive (MessageDisk &msg) |
HostAhciPort (HostAhciPortRegister *regs, DBus< MessageHostOp > &bus_hostop, DBus< MessageDiskCommit > &bus_commit, Clock *clock, unsigned disknr, unsigned max_slots, bool dmar) | |
Public Member Functions inherited from StaticReceiver< HostAhciPort > | |
StaticReceiver () | |
Public Member Functions inherited from Device | |
void | debug_dump () |
Device (const char *debug_name) |
Private Member Functions | |
unsigned | wait_timeout (volatile unsigned *reg, unsigned mask, unsigned value) |
void | addr2phys (void *ptr, volatile unsigned *dst) |
Translate a virtual to a physical address. | |
void | set_command (unsigned char command, unsigned long long sector, bool read, unsigned count=0, bool atapi=false, unsigned pmp=0, unsigned features=0) |
bool | add_dma (char *ptr, unsigned count) |
bool | add_prd (void *buffer, unsigned count) |
unsigned | start_command (unsigned long usertag) |
unsigned | identify_drive (unsigned short *buffer) |
unsigned | set_features (unsigned features, unsigned count=0) |
Private Attributes | |
HostAhciPortRegister volatile * | _regs |
DBus< MessageHostOp > & | _bus_hostop |
DBus< MessageDiskCommit > & | _bus_commit |
Clock * | _clock |
unsigned | _disknr |
unsigned | _max_slots |
bool | _dmar |
unsigned * | _cl |
unsigned * | _ct |
unsigned * | _fis |
unsigned | _tag |
HostGenericAta | _params |
unsigned long | _usertags [32] |
unsigned | _inprogress |
Static Private Attributes | |
static const unsigned | CL_DWORDS = 8 |
static const unsigned | MAX_PRD_COUNT = 64 |
static unsigned const | FREQ = 1000 |
static unsigned const | TIMEOUT = 200 |
Additional Inherited Members | |
Static Public Member Functions inherited from StaticReceiver< HostAhciPort > | |
static bool | receive_static (Device *o, M &msg) |
A single AHCI port with its command list and receive FIS buffer.
State: testing Supports: read-sectors, write-sectors, identify-drive Missing: ATAPI detection
|
inline |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
Translate a virtual to a physical address.
|
inline |
|
inlineprivate |
|
inline |
Initialize the port.
|
inline |
|
inline |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |