Message ID | 20200706061303.246057-7-its@irrelevant.dk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw/block/nvme: bump to v1.3 | expand |
On Mon, 2020-07-06 at 08:12 +0200, Klaus Jensen wrote: > From: Klaus Jensen <k.jensen@samsung.com> > > Mark firmware slot 1 as read-only and only support that slot. > > Signed-off-by: Klaus Jensen <k.jensen@samsung.com> > Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com> > --- > hw/block/nvme.c | 3 ++- > include/block/nvme.h | 4 ++++ > 2 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/hw/block/nvme.c b/hw/block/nvme.c > index a330ccf91620..b6bc75eb61a2 100644 > --- a/hw/block/nvme.c > +++ b/hw/block/nvme.c > @@ -62,6 +62,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 { \ > @@ -1666,7 +1667,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; Offtopic: They didn't make this one 0 based value, and yet ask for at least 1 slot. Just to keep us entertained I guess :-) > id->lpa = 1 << 0; > > /* recommended default value (~70 C) */ > diff --git a/include/block/nvme.h b/include/block/nvme.h > index d2c457695b38..d639e8bbee92 100644 > --- a/include/block/nvme.h > +++ b/include/block/nvme.h > @@ -842,6 +842,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) Looks good, Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com> Best regards, Maxim Levitsky
diff --git a/hw/block/nvme.c b/hw/block/nvme.c index a330ccf91620..b6bc75eb61a2 100644 --- a/hw/block/nvme.c +++ b/hw/block/nvme.c @@ -62,6 +62,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 { \ @@ -1666,7 +1667,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 d2c457695b38..d639e8bbee92 100644 --- a/include/block/nvme.h +++ b/include/block/nvme.h @@ -842,6 +842,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)