public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Tom Rini <trini@konsulko.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 22/34] env: Add a new implementation of environment access
Date: Wed, 26 Jul 2017 13:23:22 -0400	[thread overview]
Message-ID: <20170726172322.GI26163@bill-the-cat> (raw)
In-Reply-To: <CAPnjgZ0q5GM8VLgJU+eo_VtRN7cUm9vt8akz_A7ADjArOhPC_g@mail.gmail.com>

On Wed, Jul 26, 2017 at 10:32:51AM -0600, Simon Glass wrote:
> Hi Tom,
> 
> On 26 July 2017 at 10:04, Tom Rini <trini@konsulko.com> wrote:
> > On Sun, Jul 23, 2017 at 09:19:57PM -0600, Simon Glass wrote:
> >
> >> We plan to move to a environment access via drivers for each location
> >> where the environment can be stored. Add an implementation for this. So
> >> far it is not used, but will be pressed into service in a future patch.
> >>
> >> Signed-off-by: Simon Glass <sjg@chromium.org>
> > [snip]
> >> +static enum env_location env_get_default_location(void)
> >> +{
> >> +     if IS_ENABLED(CONFIG_ENV_IS_IN_DATAFLASH)
> >> +             return ENVL_DATAFLASH;
> >> +     else if IS_ENABLED(CONFIG_ENV_IS_IN_EEPROM)
> >> +             return ENVL_EEPROM;
> >> +     else if IS_ENABLED(CONFIG_ENV_IS_IN_FAT)
> >> +             return ENVL_FAT;
> >> +     else if IS_ENABLED(CONFIG_ENV_IS_IN_FLASH)
> >> +             return ENVL_FLASH;
> >> +     else if IS_ENABLED(CONFIG_ENV_IS_IN_MMC)
> >> +             return ENVL_MMC;
> >> +     else if IS_ENABLED(CONFIG_ENV_IS_IN_NAND)
> >> +             return ENVL_NAND;
> >> +     else if IS_ENABLED(CONFIG_ENV_IS_IN_NVRAM)
> >> +             return ENVL_NVRAM;
> >> +     else if IS_ENABLED(CONFIG_ENV_IS_IN_REMOTE)
> >> +             return ENVL_REMOTE;
> >> +     else if IS_ENABLED(CONFIG_ENV_IS_IN_SPI_FLASH)
> >> +             return ENVL_SPI_FLASH;
> >> +     else if IS_ENABLED(CONFIG_ENV_IS_IN_UBI)
> >> +             return ENVL_UBI;
> >> +     else if IS_ENABLED(CONFIG_ENV_IS_NOWHERE)
> >> +             return ENVL_NOWHERE;
> >> +     else
> >> +             return ENVL_UNKNOWN;
> >> +}
> >
> > I think the kernel has a few examples of how the Kconfig side of things
> > looks so that you can offer N options and then pick a default one (io
> > scheduler, etc).  We should do that rather than alphabetical IS_ENABLED
> > tests.
> 
> Yes it is possible to have a choice in Kconfig, but for this first
> series I have left it as a option. My plan is to allow the environment
> to be in multiple places in the future, e.g. try using mmc and fall
> back to SPI flash. I think that the environment location should be
> able to be a run-time decision.
> 
> What do you think?

I think run-time decision will be helpful, yeah, but we'll still need a
way to say "this is the default place to start from" at build time and
be explicit about it, rather than rely on link order or "first probed"
or whatever.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170726/b51b9418/attachment.sig>

  reply	other threads:[~2017-07-26 17:23 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-24  3:19 [U-Boot] [PATCH v2 00/34] env: Move environment code to use location drivers Simon Glass
2017-07-24  3:19 ` [U-Boot] [PATCH v2 01/34] configs: Resync with savedefconfig Simon Glass
2017-07-24  3:19 ` [U-Boot] [PATCH v2 02/34] Makefile: Rename 'env' target to 'environ' Simon Glass
2017-07-26 16:13   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 03/34] Move environment files from common/ to env/ Simon Glass
2017-07-26 16:13   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 04/34] Convert CONFIG_ENV_IS_IN_MMC et al to Kconfig Simon Glass
2017-07-26  1:36   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 05/34] env: Move help from README " Simon Glass
2017-07-26  1:36   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 06/34] Convert CONFIG_ENV_IS_IN_FLASH " Simon Glass
2017-07-26  1:36   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 07/34] Convert CONFIG_ENV_IS_IN_NVRAM " Simon Glass
2017-07-26  1:36   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 08/34] Convert CONFIG_ENV_IS_IN_EEPROM " Simon Glass
2017-07-26  1:36   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 09/34] Convert CONFIG_ENV_IS_IN_DATAFLASH " Simon Glass
2017-07-26  1:36   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 10/34] Convert CONFIG_ENV_IS_IN_SPI_FLASH " Simon Glass
2017-07-26  1:36   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 11/34] Convert CONFIG_ENV_IS_IN_REMOTE " Simon Glass
2017-07-26  1:36   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 12/34] Convert CONFIG_ENV_IS_IN_FAT " Simon Glass
2017-07-26  1:36   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 13/34] Convert CONFIG_ENV_IS_IN_ONENAND " Simon Glass
2017-07-26  1:36   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 14/34] env: common: Make env_get_addr/get_char_memory() static Simon Glass
2017-07-26 16:13   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 15/34] env: common: Drop env_get_addr() Simon Glass
2017-07-26 16:13   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 16/34] env: common: Factor out the common env_valid check Simon Glass
2017-07-26 16:13   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 17/34] env: common: Drop env_get_char_init() Simon Glass
2017-07-26 16:14   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 18/34] env: common: Drop env_get_char_memory() Simon Glass
2017-07-26 16:14   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 19/34] env: Add an enum for environment state Simon Glass
2017-07-26 16:14   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 20/34] env: Rename nand env_location to nand_env_location Simon Glass
2017-07-26 16:14   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 21/34] env: Create a location driver for each location Simon Glass
2017-07-26 16:02   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 22/34] env: Add a new implementation of environment access Simon Glass
2017-07-26 16:04   ` Tom Rini
2017-07-26 16:32     ` Simon Glass
2017-07-26 17:23       ` Tom Rini [this message]
2017-07-26 18:02         ` Simon Glass
2017-07-26 20:13           ` Tom Rini
2017-08-01  9:49             ` Simon Glass
2017-07-24  3:19 ` [U-Boot] [PATCH v2 23/34] env: Switch over to use environment location drivers Simon Glass
2017-07-26 16:14   ` Tom Rini
2017-07-24  3:19 ` [U-Boot] [PATCH v2 24/34] env: Drop common init() functions Simon Glass
2017-07-26 16:14   ` Tom Rini
2017-07-24  3:20 ` [U-Boot] [PATCH v2 25/34] env: Drop the env_name_spec global Simon Glass
2017-07-26 16:14   ` Tom Rini
2017-07-24  3:20 ` [U-Boot] [PATCH v2 26/34] env: Drop unused env_ptr variables Simon Glass
2017-07-26 16:14   ` Tom Rini
2017-07-24  3:20 ` [U-Boot] [PATCH v2 27/34] env: Drop env_init_new() Simon Glass
2017-07-26 16:14   ` Tom Rini
2017-07-24  3:20 ` [U-Boot] [PATCH v2 28/34] env: Drop env_get_char_spec() Simon Glass
2017-07-26 16:15   ` Tom Rini
2017-07-24  3:20 ` [U-Boot] [PATCH v2 29/34] env: Drop env_relocate_spec() in favour of env_load() Simon Glass
2017-07-26 16:15   ` Tom Rini
2017-07-24  3:20 ` [U-Boot] [PATCH v2 30/34] env: Drop saveenv() in favour of env_save() Simon Glass
2017-07-26 16:15   ` Tom Rini
2017-07-24  3:20 ` [U-Boot] [PATCH v2 31/34] env: Rename setenv() and friends to env_set() Simon Glass
2017-07-26 16:11   ` Tom Rini
2017-07-26 16:28     ` Simon Glass
2017-07-26 17:29       ` Tom Rini
2017-07-26 17:43         ` Tom Rini
2017-07-26 18:34           ` Simon Glass
2017-07-26 20:14             ` Tom Rini
2017-07-24  3:20 ` [U-Boot] [PATCH v2 32/34] env: Rename getenv() and friends to env_get() Simon Glass
2017-07-26 16:12   ` Tom Rini
2017-07-24  3:20 ` [U-Boot] [PATCH v2 33/34] env: Adjust the get_char() method to return an int Simon Glass
2017-07-26 16:15   ` Tom Rini
2017-07-24  3:20 ` [U-Boot] [PATCH v2 34/34] env: Adjust the load() method to return an error Simon Glass
2017-07-26 16:15   ` Tom Rini
2017-07-25 17:49 ` [U-Boot] [PATCH v2 00/34] env: Move environment code to use location drivers Tom Rini
2017-07-25 21:40   ` Simon Glass
2017-07-25 21:47     ` Tom Rini
2017-07-26  4:51 ` Masahiro Yamada
2017-07-28  3:40   ` Simon Glass

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=20170726172322.GI26163@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