/barrelfish-2018-10-04/lib/blk/blk_ahci/ |
H A D | sata_fis.c | 14 void sata_h2d_fis_new(struct sata_fis_reg_h2d* fis, uint8_t command, uint64_t lba, uint16_t sectors) argument 16 sata_h2d_fis_init(fis); 17 sata_h2d_set_command(fis, command); 18 sata_h2d_set_lba48(fis, lba); 19 sata_h2d_set_count(fis, sectors); 22 void sata_h2d_fis_init(struct sata_fis_reg_h2d* fis) argument 24 fis->type = SATA_FIS_TYPE_H2D; 39 fis->device |= (1 << 6); 42 void sata_h2d_set_command(struct sata_fis_reg_h2d* fis, uint8_t command) argument 44 fis 52 sata_h2d_set_feature(struct sata_fis_reg_h2d* fis, uint8_t feature) argument 57 sata_h2d_set_lba28(struct sata_fis_reg_h2d* fis, uint32_t lba) argument 65 sata_h2d_set_lba48(struct sata_fis_reg_h2d* fis, uint64_t lba) argument 77 sata_h2d_set_count(struct sata_fis_reg_h2d* fis, uint16_t count) argument [all...] |
H A D | sata_fis.h | 86 void sata_h2d_fis_new(struct sata_fis_reg_h2d* fis, uint8_t command, uint64_t lba, uint16_t sectors); 87 void sata_h2d_fis_init(struct sata_fis_reg_h2d* fis); 88 void sata_h2d_set_command(struct sata_fis_reg_h2d* fis, uint8_t command); 89 void sata_h2d_set_feature(struct sata_fis_reg_h2d* fis, uint8_t feature); 90 void sata_h2d_set_lba28(struct sata_fis_reg_h2d* fis, uint32_t lba); 91 void sata_h2d_set_lba48(struct sata_fis_reg_h2d* fis, uint64_t lba); 92 void sata_h2d_set_count(struct sata_fis_reg_h2d* fis, uint16_t count);
|
H A D | ahci_port.c | 28 static void command_table_set_cfis(struct command_table* ct, struct sata_fis_reg_h2d* fis) argument 30 assert(sizeof(ct->cfis) >= sizeof(*fis)); 32 *fis_ptr = *fis; 145 struct sata_fis_reg_h2d fis; local 146 sata_h2d_fis_new(&fis, command, block, sectors); 147 command_table_set_cfis(ct, &fis); 191 struct sata_fis_reg_h2d fis; local 192 sata_h2d_fis_new(&fis, command, block, sectors); 193 command_table_set_cfis(ct, &fis); 249 struct sata_fis_reg_h2d fis; local [all...] |
/barrelfish-2018-10-04/lib/ahci/ |
H A D | sata_fis.c | 16 struct sata_fis_reg_h2d *fis; local 18 fis = calloc(1, sizeof(*fis)); 19 if (!fis) { 22 fis->type = SATA_FIS_TYPE_H2D; 37 fis->device |= (1 << 6); 39 *fis_p = fis; 40 *fis_size_p = sizeof(*fis); 45 errval_t sata_set_command(void *fis, uint8_t command) argument 47 uint8_t fis_type = *(uint8_t*)fis; 66 sata_set_feature(void *fis, uint8_t feature) argument 81 sata_set_lba28(void *fis, uint32_t lba) argument 99 sata_set_lba48(void *fis, uint64_t lba) argument 121 sata_set_count(void *fis, uint16_t count) argument [all...] |
H A D | ahci_internal.h | 22 uint8_t *fis, size_t fis_length, size_t num_prds, bool is_write);
|
H A D | ahci_util.c | 74 USER_PANIC_ERR(err, "ahci_dma_region_free failed for port receive fis"); 79 uint8_t *fis, size_t fis_length, size_t num_prds, bool is_write) 83 command, port, fis, fis_length, num_prds, is_write); 111 // copy fis into command table 113 ahci_dma_region_copy_in(ct, fis, 0, fis_length); 78 ahci_setup_command(int *command, struct ahci_port_info *port, uint8_t *fis, size_t fis_length, size_t num_prds, bool is_write) argument
|
H A D | ahci.c | 407 struct event_closure _continuation, void *tag, uint8_t *fis, 427 err = ahci_setup_command(&command, port, fis, fis_length, num_prds, is_write); 406 ahci_issue_command(struct ahci_binding *_binding, struct event_closure _continuation, void *tag, uint8_t *fis, size_t fis_length, bool is_write, struct ahci_dma_region *buf, size_t buflen) argument
|
/barrelfish-2018-10-04/include/ahci/ |
H A D | sata_fis.h | 69 errval_t sata_alloc_h2d_register_fis(void **fis, size_t *fis_size); 71 errval_t sata_set_command(void *fis, uint8_t command); 72 errval_t sata_set_feature(void *fis, uint8_t feature); 73 errval_t sata_set_lba28(void *fis, uint32_t lba); 74 errval_t sata_set_lba48(void *fis, uint64_t lba); 75 errval_t sata_set_count(void *fis, uint16_t count);
|
H A D | ahci.h | 93 struct event_closure _continuation, void *tag, uint8_t *fis,
|
/barrelfish-2018-10-04/lib/vfs/ |
H A D | vfs_blockdevfs_ahci.c | 119 struct sata_fis_reg_h2d fis; local 120 memset(&fis, 0, sizeof(struct sata_fis_reg_h2d)); 121 fis.type = SATA_FIS_TYPE_H2D; 122 fis.device = 1 << 6; /* LBA mode, not CHS; ??? */ 123 sata_set_command(&fis, 0xE7); /* flush cache; ATA Command Set, 7.24 */ 124 sata_set_count(&fis, 0); /* nr. of sectors/blocks */ 125 sata_set_lba28(&fis, 0); 133 // load fis and fire commands 135 (uint8_t*)&fis, sizeof(fis), fals [all...] |
/barrelfish-2018-10-04/doc/015-disk-driver-arch/ |
H A D | intro.tex | 26 The \ac{sata} standard specifies the layout of the command \acp{fis} that 30 Figure \ref{fig:h2d_fis} shows the structure of an example \ac{fis}. A Host to 31 Device Register \ac{fis} can be used to send commands to the disk. The command 32 value is specified by \ac{ata}. The \ac{fis} contains additional values such as 62 pointers to the memory regions for the command list and receive \ac{fis} area. 75 The received \ac{fis} area serves as an area where copies of the \acp{fis} 77 \acp{fis} to the appropriate region of the \ac{rfis} area. If the \ac{hba} 78 receives an unkown \ac{fis} it is copied to the Unknown \ac{fis} regio [all...] |
H A D | libahci.tex | 141 issued commands, a \ac{fis} and \ac{fis} length, a boolean flag 152 to \lstinline+is_write+) and also sets the \ac{fis} length in the command 153 header slot. Finally, the \ac{fis} is copied into the newly allocated command 213 the address space in which \libahci executes. After that the receive \ac{fis} 227 This header contains definitions dealing with \ac{sata}'s \ac{fis} that are 229 specification defines what registers exist for each \ac{fis} type and how they
|
H A D | flounder-ahci.tex | 159 \lstinline+issue_command_cb+ for freeing the allocated \ac{fis} and calling the 202 suitable \ac{fis}. This is done using the \lstinline+sata_fis+ API in libahci.
|
H A D | running.tex | 23 delivered as a Device to Host Register \ac{fis} by QEMU.
|
H A D | blockdevfs.tex | 94 \ac{fis} and calling \issuecmd. The read implementation updates the
|
/barrelfish-2018-10-04/usr/drivers/megaraid/ |
H A D | megaraid.h | 2015 u_int16_t fis[10]; /*18h */ member in struct:mrsas_stp_frame
|