diff --git a/usr.sbin/bhyve/pci_nvme.c b/usr.sbin/bhyve/pci_nvme.c --- a/usr.sbin/bhyve/pci_nvme.c +++ b/usr.sbin/bhyve/pci_nvme.c @@ -287,6 +287,12 @@ bool posted; }; +typedef enum { + NVME_CNTRLTYPE_IO = 1, + NVME_CNTRLTYPE_DISCOVERY = 2, + NVME_CNTRLTYPE_ADMIN = 3, +} pci_nvme_cntrl_type; + struct pci_nvme_softc { struct pci_devinst *nsc_pi; @@ -517,6 +523,7 @@ cd->ver = NVME_REV(1,4); + cd->cntrltype = NVME_CNTRLTYPE_IO; cd->oacs = 1 << NVME_CTRLR_DATA_OACS_FORMAT_SHIFT; cd->acl = 2; cd->aerl = 4; @@ -551,7 +558,8 @@ break; } - cd->fna = 0x03; + cd->fna = NVME_CTRLR_DATA_FNA_FORMAT_ALL_MASK << + NVME_CTRLR_DATA_FNA_FORMAT_ALL_SHIFT; cd->power_state[0].mp = 10; }