4-ch RAID0 by SATA Host-IP Demo Instruction

Rev1.6  22-Aug-23

1    Environment Setup. 2

2    Demo setup. 6

3    Test Menu. 12

3.1    Identify Device. 12

3.2    Write SSD. 13

3.3    Read SSD. 16

3.4    Security erase. 18

4    Revision History. 19

 

 

This document describes the instruction to run 4-ch RAID0 by using SATA Host-IP on FPGA development board and AB09-FMCRAID board. The demo is designed to write/verify data with four SATA-III devices. User can control test operation through Serial console.

 

1       Environment Setup

 

To run SATA Host RAID0 demo on FPGA development board, please prepare following hardware.

1)    Supported FPGA Development board: KC705/VC707/ZC706/VC709/KCU105/ZCU102/

Zynq Mini-ITX

2)    PC with Xilinx programmer software (Vivado) and Serial console software

3)    AB09-FMCRAID board

4)    Power supply for SATA device to connect to power connector on FMCRAID board

5)    Four SATA-III devices connecting at CN0-CN3 of FMCRAID board

6)    Xilinx Power adapter for Xilinx board or ATX Power for Mini-ITX board

7)    micro USB cable for programming FPGA between FPGA Development board and PC

8)    mini/micro USB cable for Serial console connecting between FPGA board and PC

 

 

Figure 11 SATA Host RAID0 Demo Environment Setup on KC705

 

 

 

Figure 12 SATA Host RAID0 Demo Environment Setup on VC707

 

 

 

Figure 13 SATA Host RAID0 Demo Environment Setup on VC709

 

 

 

Figure 14 SATA Host RAID0 Demo Environment Setup on ZC706

 

 

 

Figure 15 SATA Host RAID0 Demo Environment Setup on KCU105

 

 

 

Figure 16 SATA Host RAID0 Demo Environment Setup on Zynq Mini-ITX

 

 

 

Figure 17 SATA Host RAID0 Demo Environment Setup on ZCU102

 

 

2       Demo setup

 

1)    Power off system.

2)    Set up board option.

a)    For ZC706 board only,

i.           Set SW11=”00000” to configure PS from JTAG, as shown in Figure 2‑1.

ii.          Set SW4=”01” to connect JTAG with USB-to-JTAG interface, as shown in Figure 2‑2.

 

 

Figure 21 SW11 setting to configure PS from JTAG on ZC706 board

 

 

 

Figure 22 SW4 setting to use USB-to-JTAG on ZC706 board

 

 

b)    For Zynq Mini-ITX board only,

                            i.         Set SW7="00000" to configure PS from JTAG, as shown in Figure 2‑3.

                          ii.         As shown in Figure 2‑4, install a jumper on JP1 pins 1-2 to enable JTAG chain, install the power module onto the board via J8, J9, J10 connectors, and connect ATX power cable to FPGA board via P2 connector.

 

 

Figure 23 SW7 setting to configure PS from JTAG on Zynq Mini-ITX

 

 

 

Figure 24 The power module installed onto the board

 

 

c)    For ZCU102 only, set SW6="0000" (SW = ON) to configure PS from JTAG, as shown in Figure 2‑5.

 

 

Figure 25 SW6 setting to configure PS from JTAG on ZCU102

 

 

3)    Connect AB09-FMCRAID board to FMC-HPC, FMC1-HPC, or FMC-HPC0 connector on FPGA development board.

4)    Connect four SATA-III devices to CN0-CN3 on FMCRAID board.

5)    Connect power to power connector on FMCRAID board.

 

 

Figure 26 AB09-FMCRAID connection

 

 

6)    Connect micro USB cable from Xilinx development board to PC for JTAG programming

7)    Connect mini/micro USB cable from Xilinx board to PC for Serial console.

 

 

Figure 27 USB cable connection

 

 

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

9)    Open Serial console such as TeraTerm, HyperTerminal and set Buad rate=115,200 Data=8 bit Non-Parity Stop=1.

10) Download configuration file and CPU firmware to FPGA

a) For ZC706/Zynq Mini-ITX board, open Vivado TCL shell, change current directory to ready_for_download. Next, run xxx_ HSATARaid0x4.bat as shown in Figure 2‑8. For example, type zc706_HSATARaid0x4.bat, zcu102_HSATARaid0x4.bat, MiniITX_7z045(or 7z100)_HSATARaid0x4.bat.

 

 

Figure 28 Command script for download demo file to ZC706/Mini-ITX by Vivado tool

 

 

b) For KC705/VC707/VC709/KCU105 board, use Vivado tool to program bit file, as shown in Figure 2‑9.

 

 

Figure 29 Programmed by Vivado

 

 

11) Check LED status on Xilinx development board. The description of LED is follows.

 

Table 1 LED Definition

GPIO LED

ON

OFF

0/D4

Normal operation

System is in reset condition

1/R/D5

System is busy

Idle status

2/C/D6

Error detect

Normal operation

3/L/D7

Data verification fail

Normal operation

 

 

 

Figure 210 4-bit LED Status for user output

 

 

12) After programming completely, LED[0] and LED[1] are ON for initializing RAID0 system. LED[1] is OFF when RAID0 completes initialization process. Now system is ready to receive command from user. After that, main menu is displayed as shown in Figure 2‑12.

 

 

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

 

 

 

Figure 212 Main menu after program configuration file and RAID0 initialization complete

 

 

13)  If some SATA devices cannot be detected, error message (CH[X] Not Detect) will be displayed as shown in Figure 2‑13. Please check SATA device in error channel.

 

 

Figure 213 Error message when some devices cannot be detected

 

 

3       Test Menu

 

3.1      Identify Device

 

Select ‘0’ to send Identify device command to RAID0. When operation is completed, four device details are displayed on the console, i.e.

1)  SSD model number

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

3)  Normal Erase Mode Time: The estimation time to complete security erase command, returned from SATA device. Minimum valid value is 2 minutes. This information will be displayed when SATA device supports Security feature set.

4)  RAID capacity: Capacity which is output value from RAID0 block. The value is calculated by (4 x 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 can be decimal unit or add “0x” as a prefix “0x” for hexadecimal unit.

2) Sector Count: Input total transfer size in sector unit. The input can be decimal unit or add “0x” as a prefix for 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.

 

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

 

 

Figure 32 Input and result of Write SSD menu

 

 

 

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), 32-bit increment pattern.

 

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#2 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 show error message when user input is invalid. “Invalid input” message is displayed on the console. 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 can be decimal unit or add “0x” as a prefix for hexadecimal unit.

2) Sector Count: Input total transfer size in sector unit. The input can be decimal unit or add “0x” as a prefix for 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.

 

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

 

 

Figure 37 Input and result of Read SSD menu

 

 

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 must be pressed to restart the system when user cancels the operation.

 

 

Figure 38 Data verification is failed but wait until read complete

 

 

 

Figure 39 Data verification is failed and input any keys to cancel operation

 

 

3.4      Security erase

 

Select ‘3’ to send Security Erase command to RAID0. Please confirm that all SATA devices support Security Erase feature by using Identify device menu. The estimation of operation time to run security erase is also displayed in Identify device menu.

 

After selecting the menu, warning message is displayed on the console. User input ‘y’ or ‘Y’ to continue security erase operation or input other keys to cancel operation.

 

Number 0-9 is displayed on the console every second to show that system still run alive. Finally, total time usage is displayed as shown in Figure 3‑10.

 

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-14

Initial version release

1.1

3-Apr-15

Add ZC706 support

1.2

7-Sep-16

Add CPU and support KCU105 board

1.3

29-Sep-16

Add Zynq Mini-ITX support

1.4

9-Nov-16

Add Security erase command and support VC709

1.5

2-Aug-17

Add LFSR pattern

1.6

15-Jan-18

Add ZCU102 support