From patchwork Thu Jul 13 20:51:32 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 787980 X-Patchwork-Delegate: agraf@suse.de 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 3x7p0F1C9Bz9s7m for ; Fri, 14 Jul 2017 06:51:56 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 333CCC21EF0; Thu, 13 Jul 2017 20:51:46 +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, RCVD_IN_MSPIKE_H2 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 BEA12C21E0B; Thu, 13 Jul 2017 20:51:43 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 35F39C21E38; Thu, 13 Jul 2017 20:51:42 +0000 (UTC) Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) by lists.denx.de (Postfix) with ESMTPS id D4920C21E0B for ; Thu, 13 Jul 2017 20:51:41 +0000 (UTC) Received: from localhost.localdomain ([88.152.145.149]) by mail.gmx.com (mrgmx003 [212.227.17.190]) with ESMTPSA (Nemesis) id 0MegbQ-1dKfFF0KCW-00OHXS; Thu, 13 Jul 2017 22:51:41 +0200 From: Heinrich Schuchardt To: Alexander Graf Date: Thu, 13 Jul 2017 22:51:32 +0200 Message-Id: <20170713205135.1538-3-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170713205135.1538-1-xypron.glpk@gmx.de> References: <20170713205135.1538-1-xypron.glpk@gmx.de> X-Provags-ID: V03:K0:ACXukSQEPCQh88Jg4kSbrJjKXuLYoecBk2bVGcSuZbQFcKj9JN2 CmcXIjvFRJzFP2I3bsn6FmilYTmjr9U8xWrmxasPIDwDXN9K8suZSaLI23hnkzBhAi0wQ3Z 4kFeOYSNejU06k+VaAHytaUIMpmHIy6Is/B+b2b5enLDdVxdSf08pmgOzZigC5DktuAgnVx Xi1/yGI17/jaNg4NkpPmw== X-UI-Out-Filterresults: notjunk:1; V01:K0:+LB/ko5SArg=:LjGOgFqugNWGLbNiySOOkW kOJJqcPyosgYSvbr7E1nGa0swCP77U27WSrwxXmhkOID0npNXAsY4wMLDIRwU9iKwFSSrwFl6 BXz10JdzeIotVFH+kIDXJc53Vkm11PMqdggteciZUl/3WMnjlDYwi+/nEpoFMUBzz3Mu0mUIr IDG+aDSW8FK8cf1OwO3QQdclQy1I8+d4vw25ldmQvPFKUQnZvjHuOYVejlyN9d6B7HC4INlfY chGWWFoXADUCweiYBfW679ut5BYBM9fbz01asCbSWVMtJDbM1uw9DUeeIbD9q8ZdwBBlHb78c 3yo2ttVccveGuOOyGotbjiqG6oyBK9hR6DlCuf1Gtiad20I/FuG9zCmmRfBGzoyV9+iyTlF2t RHPzK807rgkzwn7lNilczJRPaNGrPxT/JrxGinCHiaAka9tYuTtYrK6zqKUHgtjZHKZd56mlL gw9v14m+0bx2zg1a02ohQHUFBCDQcZaB1wDwYbbG2DFBf9qoGAHEytfGNwIkY+FjGOu8kQfCd 5mtuVAaySQT4jdwpy0sogUIjMR1LuenB7kQHVa4evmfMp4SfF9FDSfQqyoPkhuJ1SCs3x6LhT MJXauHXID6viz3HiJyHyCwv1t72BhOkoRjMmjdZdDHOH9LgSFW4AtIF8oUnvcGhmt/J3mw2Fv qmpJSyYEeKEak1Bc9N48JCltTNZQrPWRNUV6UNqfHtAfQDyhBuGvYb+PIAYllrHi+WIAenKTa brkD9CUCTjQTdCEK4Q6BMgby8NhTCu4Ghrxy2Ewx/w5JLX/fXWkGjGeRT2DGa0kyoni4ynU7k eVzqYmxyTraDBQSo1gkge0S3qqTcA== Cc: u-boot@lists.denx.de, Heinrich Schuchardt Subject: [U-Boot] [PATCH v2 2/5] 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 --- v2 no change --- 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: