U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Tom Rini <trini@konsulko.com>
To: u-boot@lists.denx.de
Subject: [PATCH v2 1/2] env: add SAVEENV as an alias of the CMD_SAVEENV symbol
Date: Fri, 8 May 2020 18:59:03 -0400	[thread overview]
Message-ID: <20200508225903.GT12564@bill-the-cat> (raw)
In-Reply-To: <20200326230200.12617-2-rasmus.villemoes@prevas.dk>

On Fri, Mar 27, 2020 at 12:01:59AM +0100, Rasmus Villemoes wrote:

> Currently, quite a few storage drivers currently do not honour
> SPL_SAVEENV. That is, whether or not one enables CONFIG_SPL_SAVEENV,
> the backend drivers do not provide the .save method. Witness
> 
> env/fat.c:#ifdef CONFIG_SPL_BUILD
> ...
> env/fat.c-#else
> env/fat.c-# define LOADENV
> env/fat.c:# if defined(CONFIG_CMD_SAVEENV)
> env/fat.c:#  define CMD_SAVEENV
> env/fat.c-# endif
> env/fat.c-#endif
> env/fat.c-
> env/fat.c:#ifdef CMD_SAVEENV
> env/fat.c-static int env_fat_save(void)
> 
> env/flash.c:#ifndef CONFIG_SPL_BUILD
> env/flash.c:# if defined(CONFIG_CMD_SAVEENV) && defined(CONFIG_CMD_FLASH)
> env/flash.c:#  define CMD_SAVEENV
> ...
> env/flash.c:#ifdef CMD_SAVEENV
> env/flash.c-static int env_flash_save(void)
> 
> env/mmc.c:#if defined(CONFIG_CMD_SAVEENV) && !defined(CONFIG_SPL_BUILD)
> env/mmc.c-static inline int write_env(struct mmc *mmc, unsigned long size,
> 
> env/nand.c:#if defined(CONFIG_CMD_SAVEENV) && defined(CONFIG_CMD_NAND) && \
> env/nand.c:             !defined(CONFIG_SPL_BUILD)
> env/nand.c:#define CMD_SAVEENV
> ...
> env/nand.c:#ifdef CMD_SAVEENV
> env/nand.c-/*
> env/nand.c- * The legacy NAND code saved the environment in the first NAND device i.e.,
> env/nand.c- * nand_dev_desc + 0. This is also the behaviour using the new NAND code.
> env/nand.c- */
> env/nand.c-static int writeenv(size_t offset, u_char *buf)
> 
> env/sf.c:#ifndef CONFIG_SPL_BUILD
> env/sf.c:#define CMD_SAVEENV
> env/sf.c-#define INITENV
> env/sf.c-#endif
> ...
> env/sf.c:#ifdef CMD_SAVEENV
> env/sf.c-static int env_sf_save(void)
> 
> In all these cases, the mere presence of CONFIG_SPL_BUILD means the
> save method does not get built.
> 
> Now, it is currently a bit awkward to write a proper test for whether
> saving the environment is enabled in the current context; something
> like
> 
> #if (!defined(CONFIG_SPL_BUILD) && defined(CONFIG_CMD_SAVEENV)) || \
>     (defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_SAVEENV))
> 
> But we already have a rather elegant mechanism that implicitly does
> the CONFIG_SPL_BUILD tests, namely CONFIG_IS_ENABLED(). Using that
> requires that the controlling config symbols follow a strict pattern:
> FOO for U-Boot proper, SPL_FOO for SPL.
> 
> This patch introduces CONFIG_SAVEENV as an alias for
> CONFIG_CMD_SAVEENV. That way, the above can simply be written
> 
> #if CONFIG_IS_ENABLED(SAVEENV)
> 
> and moreover, CONFIG_IS_ENABLED(SAVEENV) can also be used in C code,
> avoiding ifdeffery and providing more compile testing.
> 
> Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200508/13fa5b6d/attachment.sig>

  reply	other threads:[~2020-05-08 22:59 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-19  9:47 [PATCH 0/5] CMD_SAVEENV ifdef cleanup Rasmus Villemoes
2020-02-19  9:47 ` [PATCH 1/5] env: add SAVEENV as an alias of the CMD_SAVEENV symbol Rasmus Villemoes
2020-04-24 17:08   ` Tom Rini
2020-02-19  9:47 ` [PATCH 2/5] env_internal.h: add alternative ENV_SAVE_PTR macro Rasmus Villemoes
2020-04-24 17:08   ` Tom Rini
2020-02-19  9:47 ` [PATCH 3/5] env/fat.c: remove private CMD_SAVEENV logic Rasmus Villemoes
2020-02-19 13:27   ` Wolfgang Denk
2020-02-20 14:22     ` Rasmus Villemoes
2020-02-21 16:14       ` Wolfgang Denk
2020-02-21 16:19         ` Tom Rini
2020-02-24 14:49           ` Rasmus Villemoes
2020-04-24 17:08   ` Tom Rini
2020-02-19  9:47 ` [PATCH 4/5] env/ext4.c: remove CONFIG_CMD_SAVEENV ifdef Rasmus Villemoes
2020-04-24 17:08   ` Tom Rini
2020-02-19  9:47 ` [PATCH 5/5] env/sf.c: drop private CMD_SAVEENV logic Rasmus Villemoes
2020-04-24 17:08   ` Tom Rini
2020-02-19 13:25 ` [PATCH 0/5] CMD_SAVEENV ifdef cleanup Wolfgang Denk
2020-02-19 13:43   ` Rasmus Villemoes
2020-03-24 19:42 ` Rasmus Villemoes
2020-03-25  7:50   ` Wolfgang Denk
2020-03-25 11:37     ` Rasmus Villemoes
2020-03-26 14:31       ` Wolfgang Denk
2020-03-26 16:04         ` Rasmus Villemoes
2020-03-26 23:01 ` [PATCH v2 0/2] allow CONFIG_SPL_SAVEENV to work with ENV_IS_IN_SPI_FLASH Rasmus Villemoes
2020-03-26 23:01   ` [PATCH v2 1/2] env: add SAVEENV as an alias of the CMD_SAVEENV symbol Rasmus Villemoes
2020-05-08 22:59     ` Tom Rini [this message]
2020-03-26 23:02   ` [PATCH v2 2/2] env/sf.c: honour CONFIG_SPL_SAVEENV Rasmus Villemoes
2020-05-08 22:59     ` Tom Rini
2020-05-09 18:56       ` Rasmus Villemoes
2020-05-09 20:54         ` Tom Rini
2020-05-11  6:49           ` Rasmus Villemoes
2020-05-11 16:06             ` Tom Rini
2020-03-27 16:31   ` [PATCH v2 0/2] allow CONFIG_SPL_SAVEENV to work with ENV_IS_IN_SPI_FLASH Wolfgang Denk
2020-03-27 20:06     ` Rasmus Villemoes
2020-03-30 10:40       ` Wolfgang Denk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200508225903.GT12564@bill-the-cat \
    --to=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox