From owner-svn-src-all@FreeBSD.ORG Tue Mar 26 21:03:04 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 86B8A1D3; Tue, 26 Mar 2013 21:03:04 +0000 (UTC) (envelope-from jimharris@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 60A08F4B; Tue, 26 Mar 2013 21:03:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2QL34E4010965; Tue, 26 Mar 2013 21:03:04 GMT (envelope-from jimharris@svn.freebsd.org) Received: (from jimharris@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2QL330p010962; Tue, 26 Mar 2013 21:03:03 GMT (envelope-from jimharris@svn.freebsd.org) Message-Id: <201303262103.r2QL330p010962@svn.freebsd.org> From: Jim Harris Date: Tue, 26 Mar 2013 21:03:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r248758 - head/sys/dev/nvme X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Mar 2013 21:03:04 -0000 Author: jimharris Date: Tue Mar 26 21:03:03 2013 New Revision: 248758 URL: http://svnweb.freebsd.org/changeset/base/248758 Log: Add structure definitions and controller command function for firmware log pages. Sponsored by: Intel Reviewed by: carl Modified: head/sys/dev/nvme/nvme.h head/sys/dev/nvme/nvme_ctrlr_cmd.c head/sys/dev/nvme/nvme_private.h Modified: head/sys/dev/nvme/nvme.h ============================================================================== --- head/sys/dev/nvme/nvme.h Tue Mar 26 21:01:53 2013 (r248757) +++ head/sys/dev/nvme/nvme.h Tue Mar 26 21:03:03 2013 (r248758) @@ -682,6 +682,18 @@ struct nvme_health_information_page { uint8_t reserved2[320]; } __packed __aligned(4); +struct nvme_firmware_page { + + struct { + uint8_t slot : 3; /* slot for current FW */ + uint8_t reserved : 5; + } __packed afi; + + uint8_t reserved[7]; + uint64_t revision[7]; /* revisions for 7 slots */ + uint8_t reserved2[448]; +} __packed __aligned(4); + #define NVME_TEST_MAX_THREADS 128 struct nvme_io_test { Modified: head/sys/dev/nvme/nvme_ctrlr_cmd.c ============================================================================== --- head/sys/dev/nvme/nvme_ctrlr_cmd.c Tue Mar 26 21:01:53 2013 (r248757) +++ head/sys/dev/nvme/nvme_ctrlr_cmd.c Tue Mar 26 21:03:03 2013 (r248758) @@ -298,6 +298,16 @@ nvme_ctrlr_cmd_get_health_information_pa } void +nvme_ctrlr_cmd_get_firmware_page(struct nvme_controller *ctrlr, + struct nvme_firmware_page *payload, nvme_cb_fn_t cb_fn, void *cb_arg) +{ + + nvme_ctrlr_cmd_get_log_page(ctrlr, NVME_LOG_FIRMWARE_SLOT, + NVME_GLOBAL_NAMESPACE_TAG, payload, sizeof(*payload), cb_fn, + cb_arg); +} + +void nvme_ctrlr_cmd_abort(struct nvme_controller *ctrlr, uint16_t cid, uint16_t sqid, nvme_cb_fn_t cb_fn, void *cb_arg) { Modified: head/sys/dev/nvme/nvme_private.h ============================================================================== --- head/sys/dev/nvme/nvme_private.h Tue Mar 26 21:01:53 2013 (r248757) +++ head/sys/dev/nvme/nvme_private.h Tue Mar 26 21:03:03 2013 (r248758) @@ -352,6 +352,10 @@ void nvme_ctrlr_cmd_get_health_informati struct nvme_health_information_page *payload, nvme_cb_fn_t cb_fn, void *cb_arg); +void nvme_ctrlr_cmd_get_firmware_page(struct nvme_controller *ctrlr, + struct nvme_firmware_page *payload, + nvme_cb_fn_t cb_fn, + void *cb_arg); void nvme_ctrlr_cmd_create_io_cq(struct nvme_controller *ctrlr, struct nvme_qpair *io_que, uint16_t vector, nvme_cb_fn_t cb_fn, void *cb_arg);