From patchwork Thu Jul 13 20:06:19 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 787967 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3x7n0S4rSBz9s7C for ; Fri, 14 Jul 2017 06:07:03 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 6ECE8C21EBA; Thu, 13 Jul 2017 20:06:57 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.7 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_LOW autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id DD0ACC21C2C; Thu, 13 Jul 2017 20:06:54 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id EF0DBC21E0B; Thu, 13 Jul 2017 20:06:53 +0000 (UTC) Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) by lists.denx.de (Postfix) with ESMTPS id 9353AC21BE6 for ; Thu, 13 Jul 2017 20:06:53 +0000 (UTC) Received: from localhost.localdomain ([88.152.145.149]) by mail.gmx.com (mrgmx003 [212.227.17.190]) with ESMTPSA (Nemesis) id 0MPV69-1dZr7F490D-004gNr; Thu, 13 Jul 2017 22:06:53 +0200 From: Heinrich Schuchardt To: Alexander Graf Date: Thu, 13 Jul 2017 22:06:19 +0200 Message-Id: <20170713200621.1453-3-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170713200621.1453-1-xypron.glpk@gmx.de> References: <20170713200621.1453-1-xypron.glpk@gmx.de> X-Provags-ID: V03:K0:HODCcQOB0BmL/eynJlQUB1bY3B+KCQ7TbXW+jpdoFAFAJP4TE0h xfVr0i6t6faR9b1yuLYmbLAmhk2Jh1NB1ypC59IIKToMmaqh37lplsxzydgrUbBn3/hz+1q BetCErrNs7sN1Quj+ek6drAMuWa5HtxL3mRHUOA/FRaXAhxJN07cyNYsVUUsNbyw6w7/hpG Cs6tg5hSUVQpGzrEGRZNA== X-UI-Out-Filterresults: notjunk:1; V01:K0:egLtEAT7fFA=:nMJepBJSfwt4x0MrFftCLj 3w04OC8czDIOtbtSlD1xAL0ze45ADMEoS11LBfbDGCHxI5hA4ITnSLvfzjrnV7F5W8yp4XjCb F63v4TJ7MEemmcDDxr0rwoIdPWPELJtLyZu/J6MKJK+DaImj1DDWzQqVdJyLCnR0pUGqpw7Jc opvfWWUculwlej5uMUMcdqe5JVasw0fBmEJIovnSYCaAZeHOQk9wCv/zWGL+Tll0YiBwPtTSv btPEmftv0q7vvenyGH0vUg9h1kDumMK/64/x/Ws4+hKfxtGg7BwUDXHAhB/6ylOHB/efBoslt w9lEqrq0Ok5cK3w7uYD7b2/y4I7PgUUzOTccP+WU6igOzc+60tWVgteQglAxjHiXqv844xGna 0agnw7vkwYSQ+psazhZ1CPg5/kTvF+zFl5TThgs4wEnZfQTcSTnlrgbrpnchQbU2rWzjOiHti FucK2or1q58UPwCzZ9SYmNY6s2yVbQyrLzhShm8XUjDgh6TlvSJbXQV8/N+1kBhenlv4Yvj3G 2byuqFjsOWEjxBRt5VGGEV95BcQZJwr34MxErMvKyrGdpXI31dOmtgKrC+iRnagXXfg2nV+l5 N9zsjOzsow71OwSiu3ZQ8VbfnoC1nCeWUPoAUVUKfdHeZpfJ+DqEGC6PyVgeB8d6gWHXJoZjg a+s35K0/p0DPKvrGbqv1rI4sCrA4JGifqiAFU4dAJaau8mAapK4eG6sB4vHC0KlJNHwkIKHbl D6jjyk926CzFrybztY9tOi84t3FhGIpE1YiDRinGLIzJL8mEgRWom3GtjMATd2VwN9w4olu5Q bsa3mTGPZJUMUoIHw1Ls20NLn9rRg== Cc: u-boot@lists.denx.de, Heinrich Schuchardt Subject: [U-Boot] [PATCH 2/4] efi_loader: DevicePathToText for MAC address X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Implement DevicePathToText MAC address device path. Signed-off-by: Heinrich Schuchardt --- lib/efi_loader/efi_device_path_to_text.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/lib/efi_loader/efi_device_path_to_text.c b/lib/efi_loader/efi_device_path_to_text.c index 3a92247f30..c6ac5e52f3 100644 --- a/lib/efi_loader/efi_device_path_to_text.c +++ b/lib/efi_loader/efi_device_path_to_text.c @@ -9,6 +9,8 @@ #include #include +#define MAC_OUTPUT_LEN 22 + const efi_guid_t efi_guid_device_path_to_text_protocol = EFI_DEVICE_PATH_TO_TEXT_PROTOCOL_GUID; @@ -35,6 +37,31 @@ uint16_t *efi_convert_device_path_to_text( uint16_t *buffer = NULL; switch (device_path->type) { + case DEVICE_PATH_TYPE_MESSAGING_DEVICE: + switch (device_path->sub_type) { + case DEVICE_PATH_SUB_TYPE_MSG_MAC_ADDR: { + struct efi_device_path_mac_addr *dp = + (struct efi_device_path_mac_addr *)device_path; + int i; + + if (dp->if_type != 0 && dp->if_type != 1) + break; + r = efi_allocate_pool(EFI_ALLOCATE_ANY_PAGES, + 2 * MAC_OUTPUT_LEN, + (void **)&buffer); + if (r != EFI_SUCCESS) + break; + sprintf((char *)buffer, + "MAC(%02x%02x%02x%02x%02x%02x,0x%1x)", + dp->mac.addr[0], dp->mac.addr[1], + dp->mac.addr[2], dp->mac.addr[3], + dp->mac.addr[4], dp->mac.addr[5], + dp->if_type); + for (i = MAC_OUTPUT_LEN - 1; i >= 0; --i) + buffer[i] = ((uint8_t *)buffer)[i]; + break; + } + } case DEVICE_PATH_TYPE_MEDIA_DEVICE: switch (device_path->sub_type) { case DEVICE_PATH_SUB_TYPE_FILE_PATH: