From patchwork Thu Dec 5 10:04:07 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Hu X-Patchwork-Id: 296756 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) by ozlabs.org (Postfix) with ESMTP id 4CB9F2C008E for ; Thu, 5 Dec 2013 21:04:19 +1100 (EST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.76) (envelope-from ) id 1VoVn8-0002Bs-7l; Thu, 05 Dec 2013 10:04:18 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtp (Exim 4.76) (envelope-from ) id 1VoVn3-00027M-1M for fwts-devel@lists.ubuntu.com; Thu, 05 Dec 2013 10:04:13 +0000 Received: from [175.41.48.77] (helo=canonical.com) by youngberry.canonical.com with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1VoVn2-0004Zb-Fv; Thu, 05 Dec 2013 10:04:13 +0000 From: Ivan Hu To: fwts-devel@lists.ubuntu.com Subject: [PATCH 2/4] uefi: uefidump: add the SAS Ex subtype-22 support on messaging device path type for uefidump(LP: #1255387) Date: Thu, 5 Dec 2013 18:04:07 +0800 Message-Id: <1386237847-22648-1-git-send-email-ivan.hu@canonical.com> X-Mailer: git-send-email 1.7.9.5 X-BeenThere: fwts-devel@lists.ubuntu.com X-Mailman-Version: 2.1.14 Precedence: list List-Id: Firmware Test Suite Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: fwts-devel-bounces@lists.ubuntu.com Sender: fwts-devel-bounces@lists.ubuntu.com Add the SAS Ex subtype 22 support on messaging device path follow the section 9.3.5.20 on UEFI spec2.4. Signed-off-by: Ivan Hu Acked-by: Colin Ian King Acked-by: Alex Hung --- src/lib/include/fwts_uefi.h | 13 +++++++++++-- src/uefi/uefidump/uefidump.c | 7 +++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/lib/include/fwts_uefi.h b/src/lib/include/fwts_uefi.h index 84735c2..c83df33 100644 --- a/src/lib/include/fwts_uefi.h +++ b/src/lib/include/fwts_uefi.h @@ -208,8 +208,8 @@ typedef enum { FWTS_UEFI_LOGICAL_UNIT_DEVICE_PATH_SUBTYPE = (0x11), FWTS_UEFI_SATA_DEVICE_PATH_SUBTYPE = (0x12), FWTS_UEFI_VLAN_DEVICE_PATH_SUBTYPE = (0x14), - FWTS_UEFI_FIBRE_CHANNEL_EX_DEVICE_PATH_SUBTYPE = (0x15) - + FWTS_UEFI_FIBRE_CHANNEL_EX_DEVICE_PATH_SUBTYPE = (0x15), + FWTS_UEFI_SAS_EX_DEVICE_PATH_SUBTYPE = (0x16) } messaging_dev_path_subtypes; typedef enum { @@ -408,6 +408,15 @@ typedef struct { uint16_t vlanid; } fwts_uefi_vlan_dev_path; + +typedef struct { + fwts_uefi_dev_path dev_path; + uint64_t sas_addr; + uint64_t lun; + uint16_t dev_topology_info; + uint16_t rtp; +} __attribute__((packed)) fwts_uefi_sas_ex_dev_path; + typedef struct { fwts_uefi_dev_path dev_path; uint32_t partition_number; diff --git a/src/uefi/uefidump/uefidump.c b/src/uefi/uefidump/uefidump.c index b39841b..1be5d60 100644 --- a/src/uefi/uefidump/uefidump.c +++ b/src/uefi/uefidump/uefidump.c @@ -384,6 +384,13 @@ static char *uefidump_build_dev_path(char *path, fwts_uefi_dev_path *dev_path, c path = uefidump_vprintf(path, "\\DEVICELOGICALUNIT(0x%" PRIx8 ")", l->lun); } break; + case FWTS_UEFI_SAS_EX_DEVICE_PATH_SUBTYPE: + if (dev_path_len >= sizeof(fwts_uefi_sas_ex_dev_path)) { + fwts_uefi_sas_ex_dev_path *s = (fwts_uefi_sas_ex_dev_path *)dev_path; + path = uefidump_vprintf(path, "\\SASEX(0x%" PRIx64 ",0x%" PRIx64 ",0x%" PRIx16 ",0x%" PRIx16 ")", + s->sas_addr, s->lun, s->dev_topology_info, s->rtp); + } + break; default: path = uefidump_vprintf(path, "\\Unknown-MESSAGING-DEV-PATH(0x%" PRIx8 ")", dev_path->subtype); break;