OpenBMC - Support NVMe drive health monitoring

Hao Jiang jianghao at google.com
Tue Apr 11 02:27:41 AEST 2023


We have upstreamed the support for libnvme-mi in the opensource nvme-cli
tool. https://github.com/linux-nvme/nvme-cli

The cli tool has only nvme admin command set support, since it is co-used
for inband and oob.

For the MI cmd set, we have a really simple demo tool, but it doesn't have
all MI CMD (it is a demo only :) )
https://github.com/linux-nvme/libnvme/blob/master/examples/mi-mctp.c

On Sat, Apr 8, 2023 at 2:42 AM Lior Weintraub <liorw at pliops.com> wrote:

> Thanks Hao,
>
>
>
> Do you know if there is a tool (e.g. ipmitool) that can be used to
> generate a basic NVMe MI command?
>
> For example, the NVMe MI Revision 1.1 spec defines a "Management Interface
> Command Set" that can be used to:
>
> Opcode                Command
>
> 00h                        Read NVMe-MI Data Structure
>
> 01h                        NVM Subsystem Health Status Poll
>
> 02h                        Controller Health Status Poll
>
> 03h                        Configuration Set
>
> 04h                        Configuration Get
>
> 05h                        VPD Read
>
> 06h                        VPD Write
>
> 07h                        Reset
>
> 08h                        SES Receive
>
> 09h                        SES Send
>
> 0Ah                        Management Endpoint Buffer Read
>
> 0Bh                        Management Endpoint Buffer Write
>
> 0Ch to BFh          Reserved
>
> C0h to FFh           Vendor specific
>
>
>
> If we had a tool that can send such a command it would help with the
> development of this feature.
>
> The idea is to start with some manually triggered commands.
>
>
>
> Thanks,
>
> Lior.
>
>
>
>
>
> *From:* Hao Jiang <jianghao at google.com>
> *Sent:* Friday, April 7, 2023 8:40 PM
> *To:* Lior Weintraub <liorw at pliops.com>
> *Cc:* Andrew Jeffery <andrew at aj.id.au>; Ed Tanous <ed at tanous.net>;
> openbmc at lists.ozlabs.org; rashmica at linux.ibm.com
> *Subject:* Re: OpenBMC - Support NVMe drive health monitoring
>
>
>
> CAUTION: External Sender
>
> Hi Lior and Andrew,
>
> The goal of enhancing nvmesensor with nvme-mi is to fulfill the full stack
> management of NVMe devices, including health monitoring but beyond. An
> example could be SSD firmware update and security protocol transportation.
>
> The MCTP support has improved compared to two years ago. The MCTP I2C
> binding has been upstreamed to linux kernel and there is an mctp daemon for
> openbmc for the MCTP management.
>
>
>
> On Fri, Apr 7, 2023 at 5:35 AM Lior Weintraub <liorw at pliops.com> wrote:
>
> Thanks Andrew,
>
>
>
> I wish I had the experience to help with the review process 😊
>
> I have more than 2 decades experience with bare metal embedded systems but
> no experience with Embedded Linux\Yocto nor OpenBMC (nor Gerrit).
>
> It's all new to me and came to realize that many guides \ documentations I
> find on the web are old and doesn't work anymore on OpenBMC (e.g. using the
> oe-init-build-env vs setup script).
>
>
>
> I am happy to assist and contribute but I need some guidance.
>
> I have only 2 weeks experience with OpenBMC.
>
> I have succeeded to build few platforms and run them (e.g. qemuarm and
> RaspberryPi4).
>
> I watched many youtube videos on OpenBMC which gave me a good overall
> understanding but when it comes to start coding or adding new stuff I am
> lost.
>
>
>
> If we start our development with NVMe-MI basic management command as a
> starting point, what steps would you recommend we need to take?
>
> Can we use the PaspberryPi4 for this initial implementation?
>
> We have a basic OpenBMC image on this RaspPi and we have it's I2C
> connected to our PCIe card (which is using a Desktop as the host PC).
>
> (BTW, the i2c-dev module is not loaded automatically and we still haven't
> figured out why. As a workaround, we load the module manually with modprobe
> i2c-dev on the OpenBMC UART terminal)
>
>
>
> Thanks,
>
> Lior.
>
>
>
> -----Original Message-----
> From: Andrew Jeffery <andrew at aj.id.au>
> Sent: Friday, April 7, 2023 2:46 PM
> To: Lior Weintraub <liorw at pliops.com>
> Cc: Ed Tanous <ed at tanous.net>; openbmc at lists.ozlabs.org;
> rashmica at linux.ibm.com; jianghao at google.com
> Subject: Re: OpenBMC - Support NVMe drive health monitoring
>
>
>
> CAUTION: External Sender
>
>
>
> On Fri, 7 Apr 2023, at 19:50, Lior Weintraub wrote:
>
> > Hi Jet,
>
> >
>
> > My name is Lior Weintraub and I face exactly the same task that you
>
> > handled 2 years ago 😊
>
> > I found this mailing list thread on OpenBmc:
>
> > https://lists.ozlabs.org/pipermail/openbmc/2020-November/024012.html
>
> >
>
> > Can you please advice about the current status of this issue?
>
> > I need to add OOB support to our NVMe device (supporting NVMe MI ->
>
> > MCTP with SMBus binding).
>
> > For this task we plan to buy the AST2600 development
>
> > kit<https://portwell.com/solutions/openBMC.php> and use the OpenBMC
>
> > for our development and testing.
>
>
>
> Currently OpenBMC only supports NVMe-MI via the basic management command.
> See phosphor-nvme or nvmesensor from dbus-sensors. We're working on
> migrating the OpenBMC MCTP stack to the AF_MCTP sockets that are now
> provided by Linux.
>
>
>
> Please help review and test Rashmica's work in Gerrit to speed that
> process along:
>
>
>
> https://gerrit.openbmc.org/q/topic:AF_MCTP
>
>
>
> Along with Hao Jiang's work to exploit libnvme-mi in nvmesensor:
>
>
>
> https://gerrit.openbmc.org/q/topic:nvme-mi
>
>
>
> Andrew
>
>
>
>
> --
>
> Hao
>


-- 
Hao
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20230410/18f6aec0/attachment.htm>


More information about the openbmc mailing list