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