Giter Club home page Giter Club logo

openssd_sector-level-mapping's Introduction

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.

openssd_sector-level-mapping's People

Contributors

csoyee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.