Got your point.

Ok, I will roll back the change 

Thanks
Feng

-----Original Message-----
From: Busch, Keith 
Sent: Wednesday, June 03, 2015 22:47
To: Tian, Feng; Laszlo Ersek
Cc: edk2-de...@lists.sourceforge.net; Anbazhagan, Baraneedharan; qemu devel list
Subject: RE: [edk2] NVMe question

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: edk2-de...@lists.sourceforge.net; 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: edk2-de...@lists.sourceforge.net; 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.

Reply via email to