From patchwork Wed Apr 24 06:30:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 1089969 X-Patchwork-Delegate: xypron.glpk@gmx.de 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" (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="HRBFrF4U"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 44prF46Bwyz9s3q for ; Wed, 24 Apr 2019 16:36:24 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 8E4FCC21EA2; Wed, 24 Apr 2019 06:33:28 +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_MSPIKE_H3, RCVD_IN_MSPIKE_WL, 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 239A7C21E77; Wed, 24 Apr 2019 06:32:07 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id F01EFC21D65; Wed, 24 Apr 2019 06:31:43 +0000 (UTC) Received: from mail-yw1-f67.google.com (mail-yw1-f67.google.com [209.85.161.67]) by lists.denx.de (Postfix) with ESMTPS id 19804C21E02 for ; Wed, 24 Apr 2019 06:31:39 +0000 (UTC) Received: by mail-yw1-f67.google.com with SMTP id u14so4739166ywe.1 for ; Tue, 23 Apr 2019 23:31:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=tDMeBFGgPU76qfOX1c2xkYbcwxExD6HKXu1uRaZe1Wk=; b=HRBFrF4UHDVXQSpkEW4/kO4UyZjOLxZkn5X5HdfEa1fRa9auHmPTTsiN8YKbZUQytF UjuLVlVzinI0XElWFyud9+z4gT49HkAZ6xCkzOeFNSRW7cXvfBGxzqJxgnr6xTWwPo17 f92rVjFZXYBjWX33tOpIScjg9lJDYPGF4ZiN3RjadR5QFEhFvBGGZmaAVMTghkmOtY6l MiF62yRCUiDeuW19bMebsxiNxZkZjgtqrqjbLg2QTn8ggMxOzKX7TBZwLFzd14FIF4mM rpTWnSSYd0eCgGgdDvtAeV72NzNKR1EXEX+W9QRD+1due9FWyjrEJeDRbX7MJxYOwAdE Gesw== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=tDMeBFGgPU76qfOX1c2xkYbcwxExD6HKXu1uRaZe1Wk=; b=Y9QJ/jNhI8oUd3cVGgRG9P4sg2ipgAjp8CGoxMPn5G4ok5VSZEE687fz/wjuuEYPQ5 KoxJ8IAFS0s+I76TZq8FSdaDSa2EEMrqZkjyyEXGba7hLTqd0n1wB0Vqus2coHS7A2kU rdd9In7v9rbzA+FondzgALQB0T9neb4Lvoq8BFOxik1SDvNsZwfP35TDuMluuk/XQsPP q0ed2CwYkbPW9BKtp87t9RyEruChcprOW2Pmi9W0V+k9lMjabUJvOY7Hdv3jcR9GiOyR DrkYtIyTWNO9YbI20GmdwQ73L9zcn8x7bLKlbRtBosxmfVAhnglsEfD+walx2nGZgxoY dptQ== X-Gm-Message-State: APjAAAVkLmFRahrFKbLMgT5nEE5rjAdNCh8J6S2NQPNjeEJjb38WNHJ8 uAmkZUVmanKqA59pox5bNTurXA== X-Google-Smtp-Source: APXvYqwlhSl6PMYYpdGAweqZ15+2lebuYPOl4Ask2U1MnHCKz/p5NyLaJpQxVFveEWHBLFS0eq9vDA== X-Received: by 2002:a81:6e45:: with SMTP id j66mr23163834ywc.207.1556087498061; Tue, 23 Apr 2019 23:31:38 -0700 (PDT) Received: from linaro.org ([121.95.100.191]) by smtp.googlemail.com with ESMTPSA id j7sm6235240ywa.18.2019.04.23.23.31.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 23 Apr 2019 23:31:37 -0700 (PDT) From: AKASHI Takahiro To: trini@konsulko.com, xypron.glpk@gmx.de, agraf@csgraf.de Date: Wed, 24 Apr 2019 15:30:40 +0900 Message-Id: <20190424063045.14443-7-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190424063045.14443-1-takahiro.akashi@linaro.org> References: <20190424063045.14443-1-takahiro.akashi@linaro.org> MIME-Version: 1.0 Cc: u-boot@lists.denx.de Subject: [U-Boot] [PATCH v2 06/11] efi_loader: variable: support non-volatile attribute 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" The attribute, EFI_VARIABLE_NON_VOLATILE, should be encoded as "nv" flag in U-Boot variable if specified. Signed-off-by: AKASHI Takahiro --- lib/efi_loader/efi_variable.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/efi_loader/efi_variable.c b/lib/efi_loader/efi_variable.c index 37728c3c165d..2f489ab9db97 100644 --- a/lib/efi_loader/efi_variable.c +++ b/lib/efi_loader/efi_variable.c @@ -125,6 +125,8 @@ static const char *parse_attr(const char *str, u32 *attrp) if ((s = prefix(str, "ro"))) { attr |= READ_ONLY; + } else if ((s = prefix(str, "nv"))) { + attr |= EFI_VARIABLE_NON_VOLATILE; } else if ((s = prefix(str, "boot"))) { attr |= EFI_VARIABLE_BOOTSERVICE_ACCESS; } else if ((s = prefix(str, "run"))) { @@ -452,7 +454,7 @@ efi_status_t EFIAPI efi_set_variable(u16 *variable_name, } } - val = malloc(2 * data_size + strlen("{ro,run,boot}(blob)") + 1); + val = malloc(2 * data_size + strlen("{ro,run,boot,nv}(blob)") + 1); if (!val) { ret = EFI_OUT_OF_RESOURCES; goto out; @@ -464,12 +466,16 @@ efi_status_t EFIAPI efi_set_variable(u16 *variable_name, * store attributes * TODO: several attributes are not supported */ - attributes &= (EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS); + attributes &= (EFI_VARIABLE_NON_VOLATILE | + EFI_VARIABLE_BOOTSERVICE_ACCESS | + EFI_VARIABLE_RUNTIME_ACCESS); s += sprintf(s, "{"); while (attributes) { u32 attr = 1 << (ffs(attributes) - 1); - if (attr == EFI_VARIABLE_BOOTSERVICE_ACCESS) + if (attr == EFI_VARIABLE_NON_VOLATILE) + s += sprintf(s, "nv"); + else if (attr == EFI_VARIABLE_BOOTSERVICE_ACCESS) s += sprintf(s, "boot"); else if (attr == EFI_VARIABLE_RUNTIME_ACCESS) s += sprintf(s, "run");