4-ch RAID0 by SATA Host-IP Demo Instruction

Rev1.1  22-Aug-23

1    Environment Requirement 2

2    Demo setup. 4

3    Test Menu. 8

3.1    Identify Device. 8

3.2    Write SSD. 9

3.3    Read SSD. 12

3.4    Security Erase. 14

4    Revision History. 15

 

 

This document describes the instruction to run 4-ch RAID0 SATA Host-IP demo on FPGA development boar and SATA adapter board (AB09-FMCRAID/AB12-HSMCRAID). The demo is designed to write/verify data with four SATA-III devices. It is recommended to use same SATA devices model to run the test. User can control test operation through NiosII command shell.

 

1       Environment Requirement

To run demo SATA Host RAID0 demo on IntelFPGA board, please prepare the following hardware/software.

1)    IntelFPGA board:

-       ArriaV GX Starter board

-       Arria10 SoC Development board

-       Alaric board from Reflex

2)    PC with QuartusII programmer and NiosII command shell software

3)    SATA adapter board

a)    For Arria10 SoC/Alaric board: AB09-FMCRAID

b)    For ArriaV GX board: AB12-HSMCRAID

4)    Four SATA-III devices connection at CN0-CN3 of SATA adapter board

5)    Power adapter and ATX power supply for SSD

6)    A cable for programming FPGA and NiosII command shell connecting between FPGA board and PC,

a)    For Arria10 SoC/Alaric board: use micro USB cable

b)    For ArriaV GX board: use USB A-B cable

 

 

Figure 11 SATA Host RAID0 Demo Environment Setup on ArriaV GX Starter Board

 

 

 

Figure 12 SATA Host RAID0 Demo Environment Setup on Arria10 SoC Development Board

 

 

 

Figure 13 SATA Host-IP Demo Environment Setup on Alaric board

 

 

2       Demo setup

 

1)    Power off system.

2)    Setup board option.

a)    For ArriaV GX Starter board only, set bit1 of SW4 to OFF position.

 

 

Figure 21 Set SW to select clock input for ArriaV GX Starter board

 

 

3)    Setup RAID adapter board.

i.               For Arria 10 SoC Development board/Alaric board: Connect AB09-FMCRAID to FMC#A

For ArriaV GX Starter board: Connect AB12-HSMCRAID to HSMC

ii.              Connect four SATA-III devices to CN0-CN3 on AB09/AB12.

iii.             Connect power to power connector on AB09/AB12

 

 

Figure 22 AB09/AB12 connection to FPGA board

 

 

4)    Connect USB Type A or micro USB cable from FPGA board to PC for JTAG programming and JTAG UART.

 

 

Figure 23 USB cable for JTAG connection

 

 

5)    Power on FPGA development board and power supply for SATA device.

6)    Open “Clock Control” application to program 150 MHz clock for Altera board.

a)    For ArriaV GX Starter board only, select 1st tab (U4), set CLK0 frequency = 150 MHz, and click “Set New Frequency” button.

 

 

Figure 24 Set clock frequency for ArriaV GX board

 

 

7)    Use QuartusII Programmer to program “HSATARaid0x4.sof” file, as shown in Figure 2‑5.

 

 

Figure 25 Programmed by QuartusII Programmer

 

 

8)    Open NiosII Command Shell and run nios2-terminal command. Boot message are displayed.

“Waiting device ready” message is displayed during system initialization.

“SATA Gen3 Device Detect” shows SATA speed after complete RAID0 initialization.

Main menu is displayed to receive command from user.

 

 

Figure 26 NiosII Terminal

 

 

9)    If any SATA devices are not detected, error message that “CHX Not Detect” will be displayed as shown in Figure 2‑7. Please check SATA device in the error channel.

 

 

Figure 27 Error message when any devices are not detected

 

 

10) Check LED status on FPGA board. The description of LED is shown as follows.

Note: LED [3] is not available on Alaric board. There are three LEDs on the board.

 

Table 1 LED Definition

GPIO LED

ON

OFF

0

Normal operation

System is in reset condition

1

System is busy

Idle status

2

Error detect

Normal operation

3

Data verification fail

Normal operation

 

 

 

Figure 28 4-bit LED Status for user output

 

 

11) After programming completely, LED[0] and LED[1] are ON during RAID0 initialization process. LED[1] is OFF after RAID0 completes initialization process and system is ready to receive command from user.

 

 

Figure 29 LED status after program configuration file and RAID0 initialization complete

 

 

3       Test Menu

 

3.1      Identify Device

 

Select ‘0’ to send Identify device command to RAID0. When operation is completed, four information are displayed on NiosII command shell, i.e.

1)  SSD model number

2)  Security feature set is supported or not. If any devices are not supported, user must not use menu 3 for the test.

3)  Normal Erase Mode Time: This is estimation time to complete security erase command. Minimum valid value is 2 minutes. This information is displayed when the device can support Security feature set.

4)  SSD capacity which is output value from RAID0 block. The value is equal to four times of SATA CH#0 capacity.

 

 

Figure 31 Result from Identify Device menu

 

 

3.2      Write SSD

 

Select ‘1’ to send Write command to RAID0. Three inputs are required for this menu.

1) Start LBA: Input start address of RAID0 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. The input is decimal unit when input only digit number. User can add “0x” to be prefix when input is hexadecimal unit.

3) Test pattern: Select test pattern of test data for writing to RAID0. Five types can be selected, i.e. 32-bit increment, 32-bit decrement, all 0, all 1, and 32-bit LFSR counter.

 

 

Figure 32 Input and result of Write SSD menu

 

 

As shown in Figure 3‑2, if all inputs are valid, the operation will be started. During writing data, current transfer size is displayed on the console every second to show that system still run. Finally, test performance, total size, and total time usage are displayed on NiosII command shell as test result.

 

 

Figure 33 Example Test data in sector#0/#1 of 4 devices by 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 LFSR pattern (as shown in Figure 3‑3).

 

Stripe size in 4-ch RAID0 demo is 1 sector (512-byte). So, LBA address in the header of 1st sector in Disk#0, Disk#1, Disk#2, and Disk#3 are equal to 0, 1, 2 and 3 sequentially. The address in the header of the next sector for Disk#0 is 4.

 

Figure 3‑4Figure 3‑6 shows error message when user input is invalid. “Invalid input” message is displayed on NiosII command shell. Then, it returns to main menu to receive new command.

 

 

Figure 34 Invalid Start LBA input

 

 

 

Figure 35 Invalid Sector count input

 

 

 

Figure 36 Invalid Test pattern input

 

 

3.3      Read SSD

 

Select ‘2’ to send Read command to RAID0. Three inputs are required for this menu.

1) Start LBA: Input start address of RAID0 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. The input is decimal unit when input only digit number. User can add “0x” to be prefix when input is hexadecimal unit.

3) Test pattern: Select test pattern to verify data from RAID0. Test pattern must be matched with the test pattern which is used during write test. Five types can be selected, i.e. 32-bit increment, 32-bit decrement, all 0, all 1, and 32-bit LFSR counter.

 

 

Figure 37 Input and result of Read SSD menu

 

 

Similar to write test if all inputs are valid, the operation will read data from RAID0 system. Test performance, total size, and total time usage are displayed after end of transfer. “Invalid input” will be displayed if any input value is out-of-range.

 

Figure 3‑8 and Figure 3‑9 show the error message when data verification is failed. “Verify fail” message is displayed with error address, expected data, and read data. User can press any key to cancel read operation or wait until all read process complete.

 

“RESET” button should be pressed to restart the system when user cancel the operation.

Note: Alaric board does not have “RESET” button

 

 

Figure 38 Data verification is failed, but wait until read complete

 

 

 

Figure 39 Data verification is failed, and press key to cancel operation

 

 

3.4      Security Erase

 

Select ‘3’ to send Security Erase command to RAID0. Please confirm that RAID0 supports Security Erase feature by using Identify device menu. The estimated time of security erase operation is also displayed in Identify device menu.

 

After selecting the menu, confirmation message is displayed on NiosII command shell. User can input ‘y’ or ‘Y’ to continue security erase operation or input other keys to cancel operation.

 

Number 0-9 is displayed NiosII command shell every second to show that system still run. After complete the operation, total time usage is displayed as a test result.

 

Figure 3‑11 shows the example when user inputs other keys to cancel the command.

 

 

Figure 310 Result from Security Erase command

 

 

 

Figure 311 Cancel Security Erase command

 

 

4       Revision History

 

Revision

Date

Description

1.0

24-Nov-16

Initial version release

1.1

11-Oct-17

Add LFSR pattern and Alaric board