U.2 SMBus SSD Control Tool
Budget: $750 – $1,500 USD
I want a small, well-documented Linux shell /batch (prefer the more simple solution) (or C/C++ or) utility that talks to a U.2 drive over the side-band SMBus channel and issues NVMe-compliant commands. The goal is to perform two groups of tasks: basic read/write verification patterns and ongoing health monitoring (SMART data, temperature, wear figures, error logs, etc.), secure erase or Crypto erase capability of the drive and order the drive to perform secure erase or Crypto erase that trigers by H/W pin input pulse by issueing NVMe (CLI) command. The untility should discover the U.2 drive and issue the erase (secure erase=SE or Crypto Erase=CE) command only id the drive support it and feedback the SE/CE result.
The program (shell script or C/C++) run on a different SOC (System On Chip) and hooked to the SMbus of the U.2 drive. The 4X lane PCIe of thst drive should be hooked to another computer driving data to this drive. So there are two computers connected to this drive:
H - Host computer (running any OS) that mount this U.2 drive and make R/W data operations via 4X lane I/F.
SOC - connected to that same U.2 via SMbus and issue the above SE/CE after getting a H/W trigger pulse via GPIO pin.
You should first: Prove that you can resolve that desired projects needs. After getting your design idea / concept and approve it, make the rest of the H/W and S/W (shell script) design and test it. W may help you test it since it needs H/W implementation.
You may build a stand-alone shell script or CLI or a lightweight library with a demo program; whichever you pick, compilation must be straightforward on a recent Linux kernel with standard gcc/clang and no proprietary dependencies. Please make the code modular so future firmware-update support could be dropped in later.
Deliverables
• First phase: Prove that you can resolve that desired projects needs by showing your solution concept, basic H/W connectivity, shell script programm flow, prove that connecting two computers to the same U.2 SSD can happen.
• Second phase: carried after our approval of the first phase.
• H/W high level schematics showing the connectivity of the two computers (H and SOC) and detailed cabling from each computer to that U.2 SSD.
• Linxu shell script or Source code (C or C++) with clear comments
• Makefile / CMake for one-step build
• A short README showing example commands to run a read/write test and to pull health metrics
• Confirmation of functionality on at least one NVMe U.2 drive, reported in a brief test log
Acceptance
The tool has to compile without warnings, issue the chosen NVMe admin/io commands through SMBus successfully, and return correct data for both tasks listed above.
The program (shell script or C/C++) run on a different SOC (System On Chip) and hooked to the SMbus of the U.2 drive. The 4X lane PCIe of thst drive should be hooked to another computer driving data to this drive. So there are two computers connected to this drive:
H - Host computer (running any OS) that mount this U.2 drive and make R/W data operations via 4X lane I/F.
SOC - connected to that same U.2 via SMbus and issue the above SE/CE after getting a H/W trigger pulse via GPIO pin.
You should first: Prove that you can resolve that desired projects needs. After getting your design idea / concept and approve it, make the rest of the H/W and S/W (shell script) design and test it. W may help you test it since it needs H/W implementation.
You may build a stand-alone shell script or CLI or a lightweight library with a demo program; whichever you pick, compilation must be straightforward on a recent Linux kernel with standard gcc/clang and no proprietary dependencies. Please make the code modular so future firmware-update support could be dropped in later.
Deliverables
• First phase: Prove that you can resolve that desired projects needs by showing your solution concept, basic H/W connectivity, shell script programm flow, prove that connecting two computers to the same U.2 SSD can happen.
• Second phase: carried after our approval of the first phase.
• H/W high level schematics showing the connectivity of the two computers (H and SOC) and detailed cabling from each computer to that U.2 SSD.
• Linxu shell script or Source code (C or C++) with clear comments
• Makefile / CMake for one-step build
• A short README showing example commands to run a read/write test and to pull health metrics
• Confirmation of functionality on at least one NVMe U.2 drive, reported in a brief test log
Acceptance
The tool has to compile without warnings, issue the chosen NVMe admin/io commands through SMBus successfully, and return correct data for both tasks listed above.