From patchwork Mon Jan 21 03:12:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 1028251 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="DlBHDTXz"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43jc7B4h9vz9sMM for ; Mon, 21 Jan 2019 14:12:54 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 57909C21E0D; Mon, 21 Jan 2019 03:12:51 +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.0 required=5.0 tests=RCVD_IN_DNSWL_NONE, T_DKIM_INVALID 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 3E8C0C21C51; Mon, 21 Jan 2019 03:12:49 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 9B4B1C21C51; Mon, 21 Jan 2019 03:12:47 +0000 (UTC) Received: from mail-yb1-f195.google.com (mail-yb1-f195.google.com [209.85.219.195]) by lists.denx.de (Postfix) with ESMTPS id 0B936C21C38 for ; Mon, 21 Jan 2019 03:12:47 +0000 (UTC) Received: by mail-yb1-f195.google.com with SMTP id i6so6625775ybo.7 for ; Sun, 20 Jan 2019 19:12:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=wFZ13g5QhRBR5MpOn2u2rNogvFf0VkmPmhIUeI6Z8Go=; b=DlBHDTXzL37AiuVi1EIEek9xYGSvqfbRo7HTdecEK2dkX3JSXgrFhmQKQ0iTkArteZ 3NnJ1V+YV21qYZ+M+HYnclJoGeulyx9mH4FiRogZpIZi0mkfBSi+loP9SzsznH7dQz3+ edCH7gtwjeaEsFBrtFO0ebPLH8JKrSarMfTV0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=wFZ13g5QhRBR5MpOn2u2rNogvFf0VkmPmhIUeI6Z8Go=; b=NlbXFROkRexHY67ae13tCcwcWDjkTHjGqI/8PpgPVPX+Wwr2PmqeCkqYNgt41dBYJ0 R2ekEnlV1dlz8WjeAvLDoj+HJ+yb3zEBCoP1ddNzIcso7D8zFJIninRtVCHCjvufoCc6 fqEyG3qg7LUUviYMZ6fX72qFJQdHbMJ1XQtYL+eUIoA2YBZH0i9cDh+JrqZIw2oQYrUN PaCiaEu99YcN4pXfiZCHslSkBn7z6mmC4JRWXGcZJpR7ZK2l4yUAvpvuJ1zCNJM/ytyR dSmE4ZzD2O9QoH7qUN3MDNg38rVPS1/RKTenxIxak7gOdb1c/8aDdYxfWOUYxgHmvMMw p+mg== X-Gm-Message-State: AJcUukfk5jZvsB+3ZyQK653ZM2uzYVo+eFWT55DfzE82hBv2WVeyswm0 NlB8CaPT2b2n9gh0nx04z9Ypuw== X-Google-Smtp-Source: ALg8bN7/qQ+x1j5RScnoE/d4aojuamG0sepaGi+Y2552RpvZHju0HL9FMMe+DpmY979Oabr5+4g7+Q== X-Received: by 2002:a25:21c5:: with SMTP id h188mr15321525ybh.424.1548040365935; Sun, 20 Jan 2019 19:12:45 -0800 (PST) Received: from linaro.org ([121.95.100.191]) by smtp.googlemail.com with ESMTPSA id b129sm5420951ywc.106.2019.01.20.19.12.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 20 Jan 2019 19:12:45 -0800 (PST) From: AKASHI Takahiro To: trini@konsulko.com, agraf@suse.de, xypron.glpk@gmx.de Date: Mon, 21 Jan 2019 12:12:56 +0900 Message-Id: <20190121031301.1808-1-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.19.1 MIME-Version: 1.0 Cc: u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 0/5] subject: efi_loader: add HII database protocol 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: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" HII database protocol is the last missing (major?) piece of code so that we can run unmodified EDKII's shell and UEFI SCT on EFI-enabled u-boot. The original code was initially written by Leif and Rob a year ago[1], and now I'm reworking it. The implementation has not been much enhanced from the original, but I tried to give it clearer implementation to be able to add more functionality easily later on. I also addressed the comments by Alex[2] and added a self test on request of Heinrich. HII configuration routing protocol and access protocol have only a skeleton and should be implemented when we need to have *drivers* that require configuration mechanism. # Please note that a bunch of warnings are generated by checkpatch.pl, # but there are also good reasons for not fixing them. Changes in v3 (Jan 21, 2019) * drope v2's patch#1("lib: add u16_strcpy/strdup functions") as it has been merged * define a "key" value as u32 in efi_key_descriptor * simplify "if" condition in export_package_lists() * access "packed" structures of HII packages through get_unaligned_xx() * implement GetSecondaryLanguages() * compare a language in case-insensitive way in GetString() & GetLanguages() * cosmetic changes (including variable/struct member names) Changes in v2 (Nov 16, 2018) * add some descriptions to newly added functions * rename EFI_HII_PACKAGE_[TYPE|LEN]_* to __EFI_HII_PACKAGE_[TYPE|LEN]_* as they are of internal use only * cast a return value (of efi_status_t) to "unsigned int" for printing [1] https://lists.denx.de/pipermail/u-boot/2017-October/308999.html [2] https://lists.denx.de/pipermail/u-boot/2017-October/309116.html AKASHI Takahiro (4): efi: hii: add guid package support efi: hii: add keyboard layout package support efi: hii: add HII config routing/access protocols efi_selftest: add HII database protocols test Leif Lindholm (1): efi_loader: Initial HII database protocols include/efi_api.h | 421 ++++++++- include/efi_loader.h | 8 + lib/efi_loader/Makefile | 1 + lib/efi_loader/efi_boottime.c | 18 + lib/efi_loader/efi_hii.c | 1095 ++++++++++++++++++++++ lib/efi_loader/efi_hii_config.c | 146 +++ lib/efi_selftest/Makefile | 1 + lib/efi_selftest/efi_selftest_hii.c | 1046 +++++++++++++++++++++ lib/efi_selftest/efi_selftest_hii_data.c | 453 +++++++++ 9 files changed, 3188 insertions(+), 1 deletion(-) create mode 100644 lib/efi_loader/efi_hii.c create mode 100644 lib/efi_loader/efi_hii_config.c create mode 100644 lib/efi_selftest/efi_selftest_hii.c create mode 100644 lib/efi_selftest/efi_selftest_hii_data.c Reviewed-by: Alexander Graf