From: Klaus Jensen Date: Mon, 6 Jul 2020 06:12:51 +0000 (+0200) Subject: hw/block/nvme: mark fw slot 1 as read-only X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=42a42e4610ab9e4ca0bcc976f4b19f9f612a085e;p=qmiga%2Fqemu.git hw/block/nvme: mark fw slot 1 as read-only Mark firmware slot 1 as read-only and only support that slot. Signed-off-by: Klaus Jensen Reviewed-by: Dmitry Fomichev Reviewed-by: Maxim Levitsky Message-Id: <20200706061303.246057-7-its@irrelevant.dk> --- diff --git a/hw/block/nvme.c b/hw/block/nvme.c index 38c6461fd3..c970e41699 100644 --- a/hw/block/nvme.c +++ b/hw/block/nvme.c @@ -61,6 +61,7 @@ #define NVME_TEMPERATURE 0x143 #define NVME_TEMPERATURE_WARNING 0x157 #define NVME_TEMPERATURE_CRITICAL 0x175 +#define NVME_NUM_FW_SLOTS 1 #define NVME_GUEST_ERR(trace, fmt, ...) \ do { \ @@ -1664,7 +1665,7 @@ static void nvme_init_ctrl(NvmeCtrl *n, PCIDevice *pci_dev) * inconsequential. */ id->acl = 3; - id->frmw = 7 << 1; + id->frmw = (NVME_NUM_FW_SLOTS << 1) | NVME_FRMW_SLOT1_RO; id->lpa = 1 << 0; /* recommended default value (~70 C) */ diff --git a/include/block/nvme.h b/include/block/nvme.h index 273640c2b1..f3fdb5bf11 100644 --- a/include/block/nvme.h +++ b/include/block/nvme.h @@ -843,6 +843,10 @@ enum NvmeIdCtrlOncs { NVME_ONCS_TIMESTAMP = 1 << 6, }; +enum NvmeIdCtrlFrmw { + NVME_FRMW_SLOT1_RO = 1 << 0, +}; + #define NVME_CTRL_SQES_MIN(sqes) ((sqes) & 0xf) #define NVME_CTRL_SQES_MAX(sqes) (((sqes) >> 4) & 0xf) #define NVME_CTRL_CQES_MIN(cqes) ((cqes) & 0xf)