59 lines
1.3 KiB
Python
59 lines
1.3 KiB
Python
fis_types = {
|
|
"REG_H2D": 0x27,
|
|
"REG_D2H": 0x34,
|
|
"DMA_ACTIVATE_D2H": 0x39,
|
|
"DATA": 0x46
|
|
}
|
|
|
|
class FISField():
|
|
def __init__(self, dword, offset, width):
|
|
self.dword = dword
|
|
self.offset = offset
|
|
self.width = width
|
|
|
|
fis_reg_h2d_cmd_len = 5
|
|
fis_reg_h2d_layout = {
|
|
"type": FISField(0, 0, 8),
|
|
"pm_port": FISField(0, 8, 4),
|
|
"c": FISField(0, 15, 1),
|
|
"command": FISField(0, 16, 8),
|
|
"features_lsb": FISField(0, 24, 8),
|
|
|
|
"lba_lsb": FISField(1, 0, 24),
|
|
"device": FISField(1, 24, 8),
|
|
|
|
"lba_msb": FISField(2, 0, 24),
|
|
"features_msb": FISField(2, 24, 8),
|
|
|
|
"count": FISField(3, 0, 16),
|
|
"icc": FISField(3, 16, 8),
|
|
"control": FISField(3, 24, 8)
|
|
}
|
|
|
|
fis_reg_d2h_cmd_len = 5
|
|
fis_reg_d2h_layout = {
|
|
"type": FISField(0, 0, 8),
|
|
"pm_port": FISField(0, 8, 4),
|
|
"i": FISField(0, 14, 1),
|
|
"status": FISField(0, 16, 8),
|
|
"error": FISField(0, 24, 8),
|
|
|
|
"lba_lsb": FISField(1, 0, 24),
|
|
"device": FISField(1, 24, 8),
|
|
|
|
"lba_msb": FISField(2, 0, 24),
|
|
|
|
"count": FISField(3, 0, 16)
|
|
}
|
|
|
|
fis_dma_activate_d2h_cmd_len = 1
|
|
fis_dma_activate_d2h_layout = {
|
|
"type": FISField(0, 0, 8),
|
|
"pm_port": FISField(0, 8, 4)
|
|
}
|
|
|
|
fis_data_cmd_len = 1
|
|
fis_data_layout = {
|
|
"type": FISField(0, 0, 8)
|
|
}
|