drivers/nvme | ||
.gitignore | ||
LICENSE | ||
Makefile | ||
README.md |
KolibriOS NVMe Driver
This project was developed by Abdur-Rahman Mansoor for Google Summer of Code 2024. However, it's still being actively maintained. This driver should be compatible with all controller versions, but if you an encounter a problem, please open an issue and let us know.
The official repository is hosted on KolibriOS so please open any issues or pull requests there.
All files in this repository are licensed under GNU General Public License Version 2. See the LICENSE file for more details.
Tested Hardware
- QEMU NVMe Controller (v1.4.0)
- Virtualbox NVMe Controller (v1.2.0)
- VMWare NVMe Controller (v1.3.0)
Implementation Status
Feature | Implemented | Description |
---|---|---|
Mandatory Administrator Commands | Yes | A large majority of the mandatory administrator commands has been implemented. |
Mandatory I/O Commands | Yes | Support for reading and writing to disk is implemented. |
Namespace Identification | Yes | Support for identifying active namespaces across all controller versions is implemented. |
Using Multiple NVMe Devices | Yes | Support for using multiple NVMe drives at once is implemented. |
MSI/MSI-X interrupts | No | Currently only traditional PIN interrupts can be used. |
Asynchronous API | No | Currently the driver polls instead of using the asynchronous API of KolibriOS. |
SMART/Health Information Reporting | No | Low priority, but a nice to have in the future. |
Building the Driver
Please note that this normally isn't required. The images on KolibriOS's download page should include the driver by default. Nonetheless, if you want to test the driver or need a new version that isn't included in upstream yet, here are the steps on how to do so.
First, ensure that you have the following dependencies installed before continuing (installation process may vary depending on your operating system):
Once you have all the dependencies installed, follow these steps:
-
Clone the repository:
git clone https://git.kolibrios.org/GSoC/kolibrios-nvme-driver
-
Extract the latest KolibriOS image from the KolibriOS website into the cloned repository.
-
Install the driver into the image:
make install
And you should be good to go.