Page 1
NVMe-IP Linux Demo Instruction Rev1.0 19-Feb-18 This document describes the instruction to run NVMe-IP demo with Angstrom Linux 2014.12 OS on Arria10 SoC Development board. The demo is designed to get Identify data, write data, and read data with NVMe SSD. User controls test operation through Serial Console. To run the demo, FPGA configuration file as image file is prepared in microSD card.
Page 2
Figure 1-1 NVMe-IP Linux Demo on Arria10 SoC Development Board 19-Feb-18 Page 2...
dg_nvmeip_linux_instruction_intel_en.doc 2 Demo setup 2.1 Prepare demo image file to microSD Card The sequence to prepare image file is shown as follows. 1) Extract “sd_card_image_a10.img.tar.gz” to get output file “sd_card_image_a10.img”. 2) Connect microSD card to PC by using card reader. 3) Open “Win32DiskImage”...
Page 4
dg_nvmeip_linux_instruction_intel_en.doc 2.2 PCIe setup and Board setup 1) Power off system. 2) Insert microSD card to the socket on daughter cards. 3) Connect NVMe SSD to PCIe connector on FPGA board, as shown in Figure 2-2. Figure 2-2 NVMe SSD connection on FPGA board 4) Connect mini USB cable from FPGA board to PC for Serial console, as shown in Figure 2-3.
Page 5
dg_nvmeip_linux_instruction_intel_en.doc 5) Set SW3[1] /[2]/ [6]/ [8] = OFF position to enable JTAG of HPS, FPGA, and MAX, as shown in Figure 2-4. Figure 2-4 JTAG Enable for Arria10 SoC board 6) Connect FPGA power adapter to FPGA board, as shown in Figure 2-5. 7) Power on FPGA development board.
Page 6
dg_nvmeip_linux_instruction_intel_en.doc 10) Check LED status on FPGA board. The description of LED is shown as follows. Table 1 LED Definition GPIO LED Normal operation System is in reset condition System is busy Idle status Error detect Normal operation Data verification fail Normal operation Figure 2-7 4-bit LED Status for user output 11) After programming completely, LED[0] and LED[1] are ON which mean that PCIe...
Page 7
dg_nvmeip_linux_instruction_intel_en.doc 3 Test Menu Before running the test application, user must login to Linux system by login name as “root”, as shown in Figure 3-1. Figure 3-1 Login to Linux system Next, insert module and running test application by typing following command. >>...
Page 8
dg_nvmeip_linux_instruction_intel_en.doc 3.1 Identify Device Select ‘0’ to send Identify command to NVMe SSD. When operation is completed, SSD capacity and model name are displayed on the console. Figure 3-3 Result from Identify Device menu 19-Feb-18 Page 8...
Page 9
dg_nvmeip_linux_instruction_intel_en.doc 3.2 Write SSD Select ‘1’ to send Write command to NVMe SSD. Three inputs are required for this menu. 1) Start LBA: Input start address of SSD in sector unit. The input is decimal unit when input only digit number. User can add “0x” to be prefix when input is hexadecimal unit. 2) Sector Count: Input total transfer size in sector unit.
Page 10
dg_nvmeip_linux_instruction_intel_en.doc Figure 3-5 Example Test data in sector#0/#1 by increment/LFSR pattern Test data of each sector has different 64-bit header which consists of 48-bit LBA address and 16-bit all 0 value. 48-bit LBA address is unique value for each sector. After that, the test pattern is filled following user selection such as 32-bit increment pattern (left window of Figure 3-5), 32-bit LFSR pattern (right window of Figure 3-5).
Page 11
dg_nvmeip_linux_instruction_intel_en.doc Figure 3-6 – Figure 3-8 shows error message when user input is invalid. “Input is not in range” is displayed on the console. Then, it returns to main menu to receive new command. Figure 3-6 Invalid Start LBA input Figure 3-7 Invalid Sector count input Figure 3-8 Invalid Test pattern input 19-Feb-18...
Page 12
dg_nvmeip_linux_instruction_intel_en.doc 3.3 Read SSD Select ‘2’ to send Read command to NVMe SSD. Three inputs are required for this menu. 1) Start LBA: Input start address of SSD in sector unit. The input is decimal unit when input only digit number. User can add “0x” to be prefix when input is hexadecimal unit. 2) Sector Count: Input total transfer size in sector unit.
Page 13
dg_nvmeip_linux_instruction_intel_en.doc Figure 3-10 shows the error message when data verification is failed. “verification fail” is displayed with Read data and Expected data. User must wait until the test is completed. Figure 3-10 Data verification is failed 19-Feb-18 Page 13...
Page 14
dg_nvmeip_linux_instruction_intel_en.doc 3.4 Dump SSD Select ‘3’ to send Dump command to NVMe SSD. Only one input is required for this menu. Start LBA: Input start address of SSD in sector unit. The input is decimal unit when input only digit number. User can add “0x” to be prefix when input is hexadecimal unit. Similar to write and read test if the input is valid, test system will return data 1 sector (512 byte) from SSD.
Page 15
dg_nvmeip_linux_instruction_intel_en.doc As shown in Figure 3-12, when input ‘n’ to show the data of the next sector, Start LBA is increased by 1 (from 0 to 1). Figure 3-12 Example of Dump menu when input 'n' 19-Feb-18 Page 15...
Page 16
dg_nvmeip_linux_instruction_intel_en.doc As shown in Figure 3-13, when input ‘p’ to show the data of the previous sector, Start LBA is decreased by 1 (from 1 to 0). Figure 3-13 Example of Dump menu when input 'p' Main menu is displayed when user input ‘e’ to exit Dump menu, as shown in Figure 3-14. Figure 3-14 Exit Dump SSD menu 19-Feb-18 Page 16...
Page 17
dg_nvmeip_linux_instruction_intel_en.doc 3.5 Exit Test Select ‘9’ to exit test application. Figure 3-15 Exit test application 19-Feb-18 Page 17...
Need help?
Do you have a question about the NVMe-IP and is the answer not in the manual?
Questions and answers