From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39494) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aBGHY-000714-9C for qemu-devel@nongnu.org; Tue, 22 Dec 2015 01:18:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aBGHX-00064t-4D for qemu-devel@nongnu.org; Tue, 22 Dec 2015 01:18:48 -0500 Received: from mail-pf0-x233.google.com ([2607:f8b0:400e:c00::233]:36342) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aBGHW-00064p-Ve for qemu-devel@nongnu.org; Tue, 22 Dec 2015 01:18:47 -0500 Received: by mail-pf0-x233.google.com with SMTP id o64so101008246pfb.3 for ; Mon, 21 Dec 2015 22:18:46 -0800 (PST) From: Miao Yan Date: Mon, 21 Dec 2015 22:18:22 -0800 Message-Id: <1450765104-26135-3-git-send-email-yanmiaobest@gmail.com> In-Reply-To: <1450765104-26135-1-git-send-email-yanmiaobest@gmail.com> References: <1450765104-26135-1-git-send-email-yanmiaobest@gmail.com> Subject: [Qemu-devel] [PATCH v2 2/4] net/vmxnet3: return correct value for VMXNET3_CMD_GET_DID_* command List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: jasowang@redhat.com, dmitry@daynix.com, qemu-devel@nongnu.org VMXNET3_CMD_GET_DID_LO should return PCI ID of the device and VMXNET3_CMD_GET_DID_HI should return vmxnet3 revision ID. This behavior can be observed by the following steps: 1) run a Linux distro on esxi server 2) modify vmxnet3 Linux driver to read DID_HI and DID_LO: VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, VMXNET3_CMD_GET_DID_LO); lo = VMXNET3_READ_BAR1_REG(adapter, VMXNET3_REG_CMD); VMXNET3_WRITE_BAR1_REG(adapter, VMXNET3_REG_CMD, VMXNET3_CMD_GET_DID_HI); high = VMXNET3_READ_BAR1_REG(adapter, VMXNET3_REG_CMD); pr_info("vmxnet3 DID lo: 0x%x, high: 0x%x\n", lo, high); The kernel log will have something like the following message: [ 7005.111170] vmxnet3 DID lo: 0x7b0, high: 0x1 Signed-off-by: Miao Yan --- Changes in v2: - update vmxnet3_handle_command not to print error when issuing these commands hw/net/vmxnet3.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c index 9185408..cddbf6d 100644 --- a/hw/net/vmxnet3.c +++ b/hw/net/vmxnet3.c @@ -1640,6 +1640,14 @@ static void vmxnet3_handle_command(VMXNET3State *s, uint64_t cmd) "adaptive ring info flags"); break; + case VMXNET3_CMD_GET_DID_LO: + VMW_CBPRN("Set: Get lower part of device ID"); + break; + + case VMXNET3_CMD_GET_DID_HI: + VMW_CBPRN("Set: Get upper part of device ID"); + break; + default: VMW_CBPRN("Received unknown command: %" PRIx64, cmd); break; @@ -1683,6 +1691,14 @@ static uint64_t vmxnet3_get_command_status(VMXNET3State *s) ret = VMXNET3_DISABLE_ADAPTIVE_RING; break; + case VMXNET3_CMD_GET_DID_LO: + ret = PCI_DEVICE_ID_VMWARE_VMXNET3; + break; + + case VMXNET3_CMD_GET_DID_HI: + ret = VMXNET3_DEVICE_REVISION; + break; + default: VMW_WRPRN("Received request for unknown command: %x", s->last_command); ret = -1; -- 1.9.1