[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [edk2] NVMe question
From: |
Tian, Feng |
Subject: |
Re: [Qemu-devel] [edk2] NVMe question |
Date: |
Wed, 3 Jun 2015 00:21:16 +0000 |
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.