From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A4534C433F5 for ; Thu, 14 Oct 2021 18:24:36 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1CA5D61037 for ; Thu, 14 Oct 2021 18:24:36 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 1CA5D61037 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 082BA837AF; Thu, 14 Oct 2021 20:24:19 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="FwvLxWsC"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 5AEDC83675; Thu, 14 Oct 2021 20:23:35 +0200 (CEST) Received: from mail-il1-x129.google.com (mail-il1-x129.google.com [IPv6:2607:f8b0:4864:20::129]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 402F4837DE for ; Thu, 14 Oct 2021 20:23:11 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-il1-x129.google.com with SMTP id a8so4465169ilj.10 for ; Thu, 14 Oct 2021 11:23:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=IaZ5mkArxWhUlzzX0FAFxj+1YsiU22vRHS4eDuYP0PM=; b=FwvLxWsCweNecTcIjLKt1c8bTViRdFDirlwQeGFYg/ZGaB7uyVQ5995Gy6p7nCstWh /SkP/yqY5Ftlroj9UyQ9Q93l0AEnbsx5tBBj0RI0l7hdePxYmUS7hEdykTjRU/fNNX8Q 0KFztXRw/OrE4Y447/JYwPWRbJCkdNkUr+wdA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=IaZ5mkArxWhUlzzX0FAFxj+1YsiU22vRHS4eDuYP0PM=; b=PFZqGMkq+9mJ66dTCrkKzUIlf+HSa58WQ7NY+DBJt7vWaQ7HkKZLzQRVzVOtE0jueH D5F94wzsmSg9MVhgwqr5lnDa+gylBIsdbuht+osP1au6yII5OXish4FQeUA6VUMNcWUO HXH9EBTB/FLdIcjHeZ5YeC9NfZ3AjNN3in4X/Ho/vMzodGbc0Q1Wmlz0k/BrA/ynaxOA GINAYGKbuLMXYN9lKSfcnr4B1VDM1EBz7mWSIBgp9AtJlg58WGLhDesxf63RcGSE6BIW 6N10/N85cBv7lqMcC3GHtOBoknOpceCebQe24gvQQ77krTe37xbeceLuUE/Kvb2kNOF7 bD3g== X-Gm-Message-State: AOAM532KJtjPwi+YB3EVTbSJab4gM9pftt9b74Eso3e4KiN+vtrMQqHY wJYh7jRW+3Si7Z4QMQS3RWk74OkcJOPmLA== X-Google-Smtp-Source: ABdhPJzS0A7GK/FGT3ljeEMavQPq9bCawTi7gHEbjQsuJQHNfJ8kpYrYKSl4EkMSCWlFV9F1qW+hxg== X-Received: by 2002:a05:6e02:1bec:: with SMTP id y12mr393016ilv.241.1634235789502; Thu, 14 Oct 2021 11:23:09 -0700 (PDT) Received: from kiwi.bld.corp.google.com (c-67-190-101-114.hsd1.co.comcast.net. [67.190.101.114]) by smtp.gmail.com with ESMTPSA id h26sm1717536ila.4.2021.10.14.11.23.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Oct 2021 11:23:09 -0700 (PDT) From: Simon Glass To: U-Boot Mailing List Cc: Heinrich Schuchardt , Tom Rini , Wolfgang Denk , Simon Glass Subject: [PATCH v6 7/7] bootm: Tidy up use of autostart env var Date: Thu, 14 Oct 2021 12:22:57 -0600 Message-Id: <20211014182257.468649-6-sjg@chromium.org> X-Mailer: git-send-email 2.33.0.1079.g6e70778dc9-goog In-Reply-To: <20211014182257.468649-1-sjg@chromium.org> References: <20211014182257.468649-1-sjg@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean This has different semantics in different places. Go with the bootm method and put it in a common function so that the behaviour is consistent in U-Boot. Update the docs. Signed-off-by: Simon Glass Suggested-by: Wolfgang Denk --- Changes in v6: - Add new patch to tidy up use of autostart env var cmd/bootm.c | 4 +--- cmd/elf.c | 3 +-- common/bootm_os.c | 5 +---- doc/usage/environment.rst | 4 ++-- env/common.c | 7 +++++++ include/env.h | 7 +++++++ 6 files changed, 19 insertions(+), 11 deletions(-) diff --git a/cmd/bootm.c b/cmd/bootm.c index 92468d09a1f..b82a872a86c 100644 --- a/cmd/bootm.c +++ b/cmd/bootm.c @@ -140,9 +140,7 @@ int do_bootm(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) int bootm_maybe_autostart(struct cmd_tbl *cmdtp, const char *cmd) { - const char *ep = env_get("autostart"); - - if (ep && !strcmp(ep, "yes")) { + if (env_get_autostart()) { char *local_args[2]; local_args[0] = (char *)cmd; local_args[1] = NULL; diff --git a/cmd/elf.c b/cmd/elf.c index d75b21461c2..2b33c50bd02 100644 --- a/cmd/elf.c +++ b/cmd/elf.c @@ -41,7 +41,6 @@ int do_bootelf(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) unsigned long addr; /* Address of the ELF image */ unsigned long rc; /* Return value from user code */ char *sload = NULL; - const char *ep = env_get("autostart"); int rcode = 0; /* Consume 'bootelf' */ @@ -69,7 +68,7 @@ int do_bootelf(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) else addr = load_elf_image_shdr(addr); - if (ep && !strcmp(ep, "no")) + if (!env_get_autostart()) return rcode; printf("## Starting application at 0x%08lx ...\n", addr); diff --git a/common/bootm_os.c b/common/bootm_os.c index 39623f9126b..f30dcebbf7d 100644 --- a/common/bootm_os.c +++ b/common/bootm_os.c @@ -26,12 +26,9 @@ DECLARE_GLOBAL_DATA_PTR; static int do_bootm_standalone(int flag, int argc, char *const argv[], bootm_headers_t *images) { - char *s; int (*appl)(int, char *const[]); - /* Don't start if "autostart" is set to "no" */ - s = env_get("autostart"); - if ((s != NULL) && !strcmp(s, "no")) { + if (!env_get_autostart()) { env_set_hex("filesize", images->os.image_len); return 0; } diff --git a/doc/usage/environment.rst b/doc/usage/environment.rst index ef9cd20715a..99285115f29 100644 --- a/doc/usage/environment.rst +++ b/doc/usage/environment.rst @@ -144,8 +144,8 @@ autostart be automatically started (by internally calling "bootm") - If set to "no", a standalone image passed to the - "bootm" command will be copied to the load address + If unset, or set to anything other than "yes", a standalone image passed to + the "bootm" command will be copied to the load address (and eventually uncompressed), but NOT be started. This can be used to load and uncompress arbitrary data. diff --git a/env/common.c b/env/common.c index 81e9e0b2aaf..ef9502a34f7 100644 --- a/env/common.c +++ b/env/common.c @@ -47,6 +47,13 @@ int env_get_yesno(const char *var) 1 : 0; } +bool env_get_autostart(void) +{ + const char *val = env_get("autostart"); + + return val && !strcmp(val, "yes"); +} + /* * Look up the variable from the default environment */ diff --git a/include/env.h b/include/env.h index d5e2bcb530f..fdad495691f 100644 --- a/include/env.h +++ b/include/env.h @@ -143,6 +143,13 @@ int env_get_f(const char *name, char *buf, unsigned int len); */ int env_get_yesno(const char *var); +/** + * env_get_autostart() - Check if autostart is enabled + * + * @return true if the "autostart" env var exists and is set to "yes" + */ +bool env_get_autostart(void); + /** * env_set() - set an environment variable * -- 2.33.0.1079.g6e70778dc9-goog