Lalla Soft

NVMeConsole – NVMe Controller Initialization

This post follows the 3.5.1 Memory-based Transport Controller Initialization of NVM Express Base Specification 2.0b. You can confirm the code in “.libnvmedevice.ncs”. The function name is “Controller.Initialization”. import(“dev”, “.libnvmedevice.ncs”) Controller.Initialization(16, 16, 4, 16) ListQueue * Preprocessing import(“dev”, “.libnvmedevice.ncs”) Controller.Initialization = function(asqs, acqs, ioqcount, ioqs) // asqs – The size of admin submission queue // acqs […]

NVMeConsole – Bitwise operation

Bitwise Operation UInt32 BitOr32(UInt32, UInt32) value = BitOr32(0xF0F0F0F0, 0x0F0F0F0F) UInt32 BitAnd32(UInt32, UInt32) value = BitAnd32(0xF0F0F0F0, 0xFFFFFFFF) UInt32 BitXor32(UInt32, UInt32) value = BitXor32(0xF0F0F0F0, 0x00000000) UInt32 BitNot32(UInt32) value = BitNot32(0x00000000) UInt32 BitShiftLeft32(UInt32, int) value = BitShiftLeft32(0xFFFFFFFF, 1)(value = 0xFFFFFFFF << 1;  //in C or C++) UInt32 BitShiftRight32(UInt32, int) value = BitShiftRight32(0xFFFFFFFF, 1)(value = 0xFFFFFFFF >> 1; //in […]

NVMeConsole – CQE Class

CQE Class Properties Name Description int qid The completion queue ID int slot The slot number in the selected completion queue UInt32 dw0 Completion Queue DW0, Bytes 3:0 UInt32 dw1 Completion Queue DW1, Bytes 7:4 UInt32 dw2 Completion Queue DW2, Bytes 11:8 UInt32 dw3 Completion Queue DW3, Bytes 15:12 Methods Name Description void Cqe_GetEntry(int qid, […]

NVMeConsole – SQE Class

SQE Class Properties Name Description int qid Queue ID, It is updated when SQE is submitted. int slot The slot number in the queue, It is updated when SQE is updated. DATAMEM datamem Data memory buffer UInt32 opc Opcode(OPC), CDW0-07:00 UInt32 fuse Fused Operation(FUSE), CDW0-09:08 UInt32 psdt PRP or SGL for Data Transfer (PSDT), CDW0-15:14 […]

NVMeConsole – Data Buffer Classes

Data Buffer Classes NVMeConsole has two data buffer classes.One is DATAMEM, the other is PCMEM. DATAMEM class Properties Name Description int size The size assigned. If the size is zero, the data mem is not assigned. int datapattern The data pattern of filled data. Methods Name Description bool DataMem_Assign(int) Assign data memory in byte size, […]

NVMeConsole – Keyboard shortcuts

Keyboard shortcuts You can configurate the shortcut with editing the hotkey.ini file.The shortcuts could have you working a lot faster and far more productively.[F1] ~ [F12] keys are available. Config shortcuts Edit the .confighotkey.iniDo no need to restart the NVMeConsole. F1 = SelectDevice(0) F1 : keySelectDevice(0) : Automatically entered string

NVMeConsole – import

import NVMeConsole has the function to load already created libraries. The import function is used to import library. Syntax import(“libname”, “libpath”) libname    Ignored internally. libpath    The library full path to import from. Librarys .libadmincommand.ncs.libiocommand.ncs.libnvmedevice.ncs.libpredefinitions.ncs Examples Simple example import(“def”, “.libpredefinitions.ncs”)CtrlProperty.CAP_lCtrlProperty.CAP_l.offset val = ReadCtrlReg32(CtrlProperty.CAP_l.offset)ToHexString(val) List NVMe Controller Properties import(“dev”, “.libnvmedevice.ncs”)CtrlProperty.ListorCtrlProperty.List(true)

NVMeConsole – Getting Started

This page is an overview of the NVMeConsole. NVMeConsle is a tool for testing the NVMe Protocol. Run NVMeConsole Try NVMeConsole Run NVMeConsole  Download the NVMeConsole  Run the NVMeConsole with administrator privileges. Type in [ListDevice] If the driver name of target device is not LallaNVMeDevice, install the device driver with target NVMe Device. Install the […]