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.