60#include "../ftl_config.h"
61#include "../request_transform.h"
77 unsigned int startLba[2];
84 startLba[0] = nvmeIOCmd->
dword[10];
85 startLba[1] = nvmeIOCmd->
dword[11];
90 ASSERT((nvmeIOCmd->
PRP1[0] & 0x3) == 0 && (nvmeIOCmd->
PRP2[0] & 0x3) == 0);
91 ASSERT(nvmeIOCmd->
PRP1[1] < 0x10000 && nvmeIOCmd->
PRP2[1] < 0x10000);
104 unsigned int startLba[2];
114 startLba[0] = nvmeIOCmd->
dword[10];
115 startLba[1] = nvmeIOCmd->
dword[11];
116 nlb = writeInfo12.
NLB;
120 ASSERT((nvmeIOCmd->
PRP1[0] & 0xF) == 0 && (nvmeIOCmd->
PRP2[0] & 0xF) == 0);
121 ASSERT(nvmeIOCmd->
PRP1[1] < 0x10000 && nvmeIOCmd->
PRP2[1] < 0x10000);
139 opc = (
unsigned int)nvmeIOCmd->
OPC;
145 xil_printf(
"IO Flush Command\r\n");
146 nvmeCPL.
dword[0] = 0;
165 xil_printf(
"Not Support IO Command OPC: %X\r\n", opc);
unsigned int storageCapacity_L
void set_auto_nvme_cpl(unsigned int cmdSlotTag, unsigned int specific, unsigned int statusFieldWord)
#define STORAGE_CAPACITY_H
void handle_nvme_io_write(unsigned int cmdSlotTag, NVME_IO_COMMAND *nvmeIOCmd)
void handle_nvme_io_read(unsigned int cmdSlotTag, NVME_IO_COMMAND *nvmeIOCmd)
The entry function for translating the given NVMe command into slice requests.
void handle_nvme_io_cmd(NVME_COMMAND *nvmeCmd)
unsigned short cmdSlotTag
unsigned int cmdDword[16]
The main structure of completion queue entry.
unsigned short statusFieldWord