[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [edk2] NVMe question
From: |
Busch, Keith |
Subject: |
Re: [Qemu-devel] [edk2] NVMe question |
Date: |
Wed, 3 Jun 2015 14:46:49 +0000 |
Section 3.1.5, for IOCQES and IOSQES:
"The required and maximum values for this field are specified in the Identify
Controller data structure in Figure 90 for each I/O Command Set. The value is
in bytes and is specified as a power of two (2^n)."
If you're not setting these values, I assume you're leaving it as 0, which is
most definitely below the "required" value.
> -----Original Message-----
> From: Tian, Feng
> Sent: Tuesday, June 02, 2015 6:21 PM
> To: Busch, Keith; Laszlo Ersek
> Cc: address@hidden; Anbazhagan, Baraneedharan; qemu devel list; Tian, Feng
> Subject: RE: [edk2] NVMe question
>
> Hi, Keith
>
> I agree your explanation does make sense.
>
> But could you let me know where speaks the host driver must initialize these
> two fields of CC
> register before any I/O operation in NVMe spec?
>
> Thanks
> Feng
>
> -----Original Message-----
> From: Busch, Keith
> Sent: Wednesday, June 03, 2015 03:11
> To: Laszlo Ersek
> Cc: address@hidden; Anbazhagan, Baraneedharan; Tian, Feng; Busch, Keith; qemu
> devel list
> Subject: Re: [edk2] NVMe question
>
> Hi,
>
> On Tue, 2 Jun 2015, Laszlo Ersek wrote:
> > removed the nonzero initialization of Cc.Iosqes (submission queue
> > size?) and Cc.Iocqes (completion queue size?) in function
> > NvmeEnableController(). And the removal of these field initializations
> > seems to cause the early sanity check in QEMU's nvme_start_ctrl() to
> > fail -- my guess at least.
> >
> > The question is now if QEMU is right (according to the NVMe spec) to
> > require those fields, or if edk2 is right not to initialize them.
>
> The host driver definitely needs to initialize these for the device to
> understand the queue's
> entry sizes. Without proper values, it would have no idea how much memory a
> queue occupies. If you
> have a real device that ignores these, it's breaking spec.