Skip to content

FlashSQL/OpenSSD_sector-level-mapping

Repository files navigation

What this project for

1. this project is for sector level mapping FTL

2. modified ...

modified read / write operation to sector level

How to build and run Jasmine

1. Compile the firmware

1.1 Compile the firmware using GNU tools

Your PC should have gcc installed. Jasmine has been built and tested with
Sourcery G++ Lite 2010.09-51 for ARM EABI.
From the build_gnu directory, run Make utility.
The Makefile is configured to build Tutorial FTL. If you want to build Greedy FTL,
modify the first line of Makefile as follows:

	FTL	= greedy

When the build process is finised, you will see firmware.bin created,
which is a binary image of the firmware.
You can install the firmware image onto Jasmine board using the installer.

1.2 Compile the firmware using RealView tools

Your PC should have RVDS installed. Jasmin has been built and tested with RVDS v3.1.
If you want to build Tutorial FTL, do the following from the Command Prompt window:

	cd build_rvds
	build.bat tutorial

If you want to build Greedy FTL, do the following from the Command Prompt window:

	cd build_rvds
	build.bat greedy

When the build process is finised, you will see firmware.bin created,
which is a binary image of the firmware.
You can install the firmware image onto Jasmine board using the installer.

2. Compile the installer

installer\installer.sln is a Visual C++ 2005 Solution file.
It has also been tested with a free edition of Visual C++ 2010 Express.
Double click installer.sln and build it.

3. Install the firmware

Set the jumper J2 to factory mode position and turn on the power to Jasmine board.
You can hot-plug the Jasmine board into your PC's SATA socket, if your motherboard
supports SATA hot plugging. Old mother boards do not support it. In that case,
you should connect SATA cable first and then turn on the PC power.
install.exe and firmware.bin should be in the same directory.
Jasmine boards are shipped with scan list installed already.
Therefore, you should do the steps in Section 3.1.

3.1 Reinstall

If this is not the first time you install firmware onto Jasmine board,
the NAND flash will not be blank. Run install.exe and follow these steps:

	1  initialize
	2  read scan list from flash block 0
	3  install FW

If you see a message "ERROR: cannot find scan list on bank" at the second step,
there are two possible causes:

	- The block #0 does not contain any scan list, because it is blank.
		This is the case when Jasmine board is fresh out of the box. Refer to Section 3.2.
		As mentioned above, the current release of Jasmine board already has a scan list,
		but future release may have blank NAND.

	- The block #0 was accidently erased due to a bug in your own FTL implementation.
		If this is the case, refer to Section 3.3.

If you encounter a message "ERROR: corrupted scan list (or unknown type of data) on bank"
at the second step, refer to Section 3.3.

At the final step, firmware.bin and the scan list will be written to block #0 of NAND flash.
Turn off Jasmine board if installation is completed without any problem.

3.2 Install for the first time

If this is the first time you install a firmware onto Jasmine board,
the NAND flash will be blank. Run install.exe and follow these steps:

	1  initialize
	4  scan init bad blks
	6  save scan list to file
	3  install FW

Is it important that you back up the scan list using "save scan list to file" at the third step,
because block #0 data can be damaged by a firmware bug while you develop your own FTL.

At the final step, firmware.bin and the scan list will be written to block #0 of NAND flash.
Turn off Jasmine board if installation is completed without any problem.

3.3 When the scan list is damaged

The scan list can be damaged by a bug in your own implementation of FTL. If your firmware
attempts a write or erase operation on block #0, the scan list will be damaged or lost.
Run install.exe and follow these steps:

	1  initialize
	7  read scan list from file
	3  install FW

At the final step, firmware.bin and the scan list will be written to block #0 of NAND flash.
Turn off Jasmine board when installation is complete.

4. Run

Set the jumper J2 to normal mode position and unplug SATA cable.
Turn on the power to Jasmine board. Jasmine will be busy doing internal low level format.
When the low level format is finished, the LED at D4 position will be lit.
Now that Jasmine is ready to process SATA commands, you can plug SATA cable.

About

sector-level-mapping FTL version of OpenSSD

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages