I worked with NVME device recently. To challenge the firmware, NVME command has to be sent from host. I can choose to use LeCoy's software and hardware box to send command,, another way is to use a plain PC with linux installed.
The test framework is 3-layers architecture, the device driver (dnvme) at bottom, dynamic link library in the middle to provides APIs, and test scripts (perl or python) on top. Here is available open source resources
NVMe Compliance Test
https://github.com/nvmecompliance/tnvme
Linux driver for NVMe Compliance Suite
https://github.com/nvmecompliance/dnvme
Linux NVME command interface
https://github.com/linux-nvme/nvme-cli
NVME windows command issuer
https://github.com/Miyavi-Chen/NVMe_CMD_issuer
prettify
Feb 4, 2016
memcpy for ARMv7
There is lot of ways to implement memcpy(), the most efficient way is of course the DMA, although it has overhead to setup the DMA descriptor. Armcc compiler just do it in a simple way
;r0 stores the destine and r1 stores the source
LDM r1!,{r3,r4,r12,lr}
STM r0!,{r3,r4,r12,lr}
Each 2 machine cycle copies 16 bytes of data. I ignored extra codes to handle non-16-bytes-aligned data.
;r0 stores the destine and r1 stores the source
LDM r1!,{r3,r4,r12,lr}
STM r0!,{r3,r4,r12,lr}
Each 2 machine cycle copies 16 bytes of data. I ignored extra codes to handle non-16-bytes-aligned data.
Subscribe to:
Posts (Atom)