From patchwork Mon Jul 24 03:20:00 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 792644 X-Patchwork-Delegate: trini@ti.com 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; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="MBgtlcqq"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3xG6VX6Xfzz9s1h for ; Mon, 24 Jul 2017 13:36:36 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id A5CDDC21DCF; Mon, 24 Jul 2017 03:30:33 +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, RCVD_IN_MSPIKE_H2, 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 86ECAC21E2F; Mon, 24 Jul 2017 03:21:14 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id C2C95C21E26; Mon, 24 Jul 2017 03:20:59 +0000 (UTC) Received: from mail-oi0-f43.google.com (mail-oi0-f43.google.com [209.85.218.43]) by lists.denx.de (Postfix) with ESMTPS id E2A99C21DB6 for ; Mon, 24 Jul 2017 03:20:48 +0000 (UTC) Received: by mail-oi0-f43.google.com with SMTP id a9so13918575oih.0 for ; Sun, 23 Jul 2017 20:20:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=xhAXJLZBh64bFKwQcZLEWyhQ4r2P8EbDWNHL9kksK5Y=; b=MBgtlcqq32l7jNKymPG0bAON+gW7lolCiqkqim3994duiYCPQQVF4JVzyktdM/IJiF ULm98n6OYHdZ3141CqDxNVq3Ma7HJjdhVBHWktop1y+JGNvJa0D2LnqTMOYdicNbhsPE RFi8k4ItKYwVwoXAZDNFdHasp593wrlSd22MS8lPmB9vkzCiVmGHUwDBtc7UlJD1qouW 17MKF4vavRFMCG7aDhKAS1Wy3x16TFlZG3Mo/bM4n8OZf46A3kY5AfAViEDKk71W/fg5 aDJkibkNCGtXY0T7/0Ax+m2uaR8a4R791lJhvxPsqaqPe2CJ+UuK1TwO6QyiSVQQYZkr 32kQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=xhAXJLZBh64bFKwQcZLEWyhQ4r2P8EbDWNHL9kksK5Y=; b=dh0VpbHintzGJMv9F2I631xZSC2SKGhrUB+GNc7J3slqCcMrPH43UtAZXgIG0FEKA7 /mxNSU8hPynuBRtVCzpq30sqOMKEE0IRZYiTB5i05hvEfb3Za2PTguRzBjie5iz0sQf1 3S9WFNBhbEV0hHt3Q7rn6TV2oSr6Ycwd2tc+LceK+hPuDHSHmxAUgQS8NNxPFBjfW4ih WTmEjocT8zhhakNicV/PxvGmCUdPEACx8w9OUL4k1Qk93xrQx2Ed0umHYmW8JWIyR8Bx 16bK5X3qliihW0Ni7WtF3lv3Y/mYXohJh7L1Ws4dNHsBpJz4PGbygW/I9ReTkkm1Z3HF Wg7w== X-Gm-Message-State: AIVw113p8wQ0GCPSpJ49GrFrIo8rOdnBPKUAxkgZQ6qydVCOkPlJ1ApY 9k9TqClWuzBkq9jf X-Received: by 10.202.216.132 with SMTP id p126mr7902565oig.259.1500866447434; Sun, 23 Jul 2017 20:20:47 -0700 (PDT) Received: from kiwi.bld.corp.google.com ([100.101.164.89]) by smtp.gmail.com with ESMTPSA id j82sm3012425oib.47.2017.07.23.20.20.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 23 Jul 2017 20:20:46 -0700 (PDT) Received: by kiwi.bld.corp.google.com (Postfix, from userid 121222) id 0542C142283; Sun, 23 Jul 2017 21:20:46 -0600 (MDT) From: Simon Glass To: U-Boot Mailing List Date: Sun, 23 Jul 2017 21:20:00 -0600 Message-Id: <20170724032009.43994-26-sjg@chromium.org> X-Mailer: git-send-email 2.14.0.rc0.284.gd933b75aa4-goog In-Reply-To: <20170724032009.43994-1-sjg@chromium.org> References: <20170724032009.43994-1-sjg@chromium.org> Cc: Tom Rini , Joe Hershberger , Andreas Fenkart Subject: [U-Boot] [PATCH v2 25/34] env: Drop the env_name_spec global 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: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Add a name to the driver and use that instead of the global variable declared by each driver. Signed-off-by: Simon Glass Reviewed-by: Tom Rini --- Changes in v2: None cmd/nvedit.c | 4 +++- env/dataflash.c | 3 +-- env/eeprom.c | 3 +-- env/env.c | 2 +- env/ext4.c | 3 +-- env/fat.c | 3 +-- env/flash.c | 3 +-- env/mmc.c | 3 +-- env/nand.c | 3 +-- env/nowhere.c | 1 + env/nvram.c | 3 +-- env/onenand.c | 3 +-- env/remote.c | 3 +-- env/sata.c | 3 +-- env/sf.c | 3 +-- env/ubi.c | 2 -- include/environment.h | 19 +++++++++++++++---- 17 files changed, 32 insertions(+), 32 deletions(-) diff --git a/cmd/nvedit.c b/cmd/nvedit.c index cd17db6409..75df997592 100644 --- a/cmd/nvedit.c +++ b/cmd/nvedit.c @@ -706,7 +706,9 @@ ulong getenv_ulong(const char *name, int base, ulong default_val) static int do_env_save(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { - printf("Saving Environment to %s...\n", env_name_spec); + struct env_driver *env = env_driver_lookup_default(); + + printf("Saving Environment to %s...\n", env->name); return saveenv() ? 1 : 0; } diff --git a/env/dataflash.c b/env/dataflash.c index 8ab482b3b4..9421a6a5b2 100644 --- a/env/dataflash.c +++ b/env/dataflash.c @@ -16,8 +16,6 @@ DECLARE_GLOBAL_DATA_PTR; env_t *env_ptr; -char *env_name_spec = "dataflash"; - static unsigned char env_dataflash_get_char(int index) { uchar c; @@ -70,6 +68,7 @@ static int env_dataflash_save(void) U_BOOT_ENV_LOCATION(dataflash) = { .location = ENVL_DATAFLASH, + ENV_NAME("dataflash") .get_char = env_dataflash_get_char, .load = env_dataflash_load, .save = env_save_ptr(env_dataflash_save), diff --git a/env/eeprom.c b/env/eeprom.c index 3cc412620a..2c795b9236 100644 --- a/env/eeprom.c +++ b/env/eeprom.c @@ -23,8 +23,6 @@ DECLARE_GLOBAL_DATA_PTR; env_t *env_ptr; -char *env_name_spec = "EEPROM"; - static int eeprom_bus_read(unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cnt) { @@ -233,6 +231,7 @@ static int env_eeprom_save(void) U_BOOT_ENV_LOCATION(eeprom) = { .location = ENVL_EEPROM, + ENV_NAME("EEPROM") .get_char = env_eeprom_get_char, .load = env_eeprom_load, .save = env_save_ptr(env_eeprom_save), diff --git a/env/env.c b/env/env.c index 73547002d1..a649457270 100644 --- a/env/env.c +++ b/env/env.c @@ -54,7 +54,7 @@ static enum env_location env_get_default_location(void) return ENVL_UNKNOWN; } -static struct env_driver *env_driver_lookup_default(void) +struct env_driver *env_driver_lookup_default(void) { enum env_location loc = env_get_default_location(); struct env_driver *drv; diff --git a/env/ext4.c b/env/ext4.c index 25a5cbecdd..5acdf0eda0 100644 --- a/env/ext4.c +++ b/env/ext4.c @@ -31,8 +31,6 @@ #include #include -char *env_name_spec = "EXT4"; - env_t *env_ptr; DECLARE_GLOBAL_DATA_PTR; @@ -121,6 +119,7 @@ err_env_relocate: U_BOOT_ENV_LOCATION(ext4) = { .location = ENVL_EXT4, + ENV_NAME("EXT4") .load = env_ext4_load, .save = env_save_ptr(env_ext4_save), }; diff --git a/env/fat.c b/env/fat.c index bd31b2904d..ad0c4321c7 100644 --- a/env/fat.c +++ b/env/fat.c @@ -31,8 +31,6 @@ # endif #endif -char *env_name_spec = "FAT"; - env_t *env_ptr; DECLARE_GLOBAL_DATA_PTR; @@ -116,6 +114,7 @@ err_env_relocate: U_BOOT_ENV_LOCATION(fat) = { .location = ENVL_FAT, + ENV_NAME("FAT") #ifdef LOADENV .load = env_fat_load, #endif diff --git a/env/flash.c b/env/flash.c index 6ec9b61883..2d72c51622 100644 --- a/env/flash.c +++ b/env/flash.c @@ -45,8 +45,6 @@ DECLARE_GLOBAL_DATA_PTR; #define INITENV #endif -char *env_name_spec = "Flash"; - #ifdef ENV_IS_EMBEDDED env_t *env_ptr = &environment; @@ -359,6 +357,7 @@ static void env_flash_load(void) U_BOOT_ENV_LOCATION(flash) = { .location = ENVL_FLASH, + ENV_NAME("Flash") #ifdef LOADENV .load = env_flash_load, #endif diff --git a/env/mmc.c b/env/mmc.c index 2dd0382bfb..ae10b5b1f8 100644 --- a/env/mmc.c +++ b/env/mmc.c @@ -23,8 +23,6 @@ #error CONFIG_ENV_SIZE_REDUND should be the same as CONFIG_ENV_SIZE #endif -char *env_name_spec = "MMC"; - #ifdef ENV_IS_EMBEDDED env_t *env_ptr = &environment; #else /* ! ENV_IS_EMBEDDED */ @@ -348,6 +346,7 @@ err: U_BOOT_ENV_LOCATION(mmc) = { .location = ENVL_MMC, + ENV_NAME("MMC") .load = env_mmc_load, #ifndef CONFIG_SPL_BUILD .save = env_save_ptr(env_mmc_save), diff --git a/env/nand.c b/env/nand.c index 23cb812d78..e26f5638c4 100644 --- a/env/nand.c +++ b/env/nand.c @@ -40,8 +40,6 @@ #define CONFIG_ENV_RANGE CONFIG_ENV_SIZE #endif -char *env_name_spec = "NAND"; - #if defined(ENV_IS_EMBEDDED) env_t *env_ptr = &environment; #elif defined(CONFIG_NAND_ENV_DST) @@ -427,6 +425,7 @@ static void env_nand_load(void) U_BOOT_ENV_LOCATION(nand) = { .location = ENVL_NAND, + ENV_NAME("NAND") .load = env_nand_load, #if defined(CMD_SAVEENV) .save = env_save_ptr(env_nand_save), diff --git a/env/nowhere.c b/env/nowhere.c index 1d2ae85a57..1a17d6978b 100644 --- a/env/nowhere.c +++ b/env/nowhere.c @@ -19,4 +19,5 @@ env_t *env_ptr; U_BOOT_ENV_LOCATION(nowhere) = { .location = ENVL_NOWHERE, + ENV_NAME("nowhere") }; diff --git a/env/nvram.c b/env/nvram.c index 09091b8eb7..0f4b491fd3 100644 --- a/env/nvram.c +++ b/env/nvram.c @@ -41,8 +41,6 @@ env_t *env_ptr; env_t *env_ptr = (env_t *)CONFIG_ENV_ADDR; #endif -char *env_name_spec = "NVRAM"; - #ifdef CONFIG_SYS_NVRAM_ACCESS_ROUTINE static uchar env_nvram_get_char(int index) { @@ -115,6 +113,7 @@ static int env_nvram_init(void) U_BOOT_ENV_LOCATION(nvram) = { .location = ENVL_NVRAM, + ENV_NAME("NVRAM") #ifdef CONFIG_SYS_NVRAM_ACCESS_ROUTINE .get_char = env_nvram_get_char, #endif diff --git a/env/onenand.c b/env/onenand.c index cb1ab53216..319f553262 100644 --- a/env/onenand.c +++ b/env/onenand.c @@ -21,8 +21,6 @@ #include #include -char *env_name_spec = "OneNAND"; - #define ONENAND_MAX_ENV_SIZE CONFIG_ENV_SIZE #define ONENAND_ENV_SIZE(mtd) (ONENAND_MAX_ENV_SIZE - ENV_HEADER_SIZE) @@ -108,6 +106,7 @@ static int env_onenand_save(void) U_BOOT_ENV_LOCATION(onenand) = { .location = ENVL_ONENAND, + ENV_NAME("OneNAND") .load = env_onenand_load, .save = env_save_ptr(env_onenand_save), }; diff --git a/env/remote.c b/env/remote.c index c5dce5b966..0d8865bd67 100644 --- a/env/remote.c +++ b/env/remote.c @@ -11,8 +11,6 @@ #include #include -char *env_name_spec = "Remote"; - #ifdef ENV_IS_EMBEDDED env_t *env_ptr = &environment; #else /* ! ENV_IS_EMBEDDED */ @@ -57,6 +55,7 @@ static void env_remote_load(void) U_BOOT_ENV_LOCATION(remote) = { .location = ENVL_REMOTE, + ENV_NAME("Remote") .load = env_remote_load, .save = env_save_ptr(env_remote_save), .init = env_remote_init, diff --git a/env/sata.c b/env/sata.c index a5ff54c287..16d8f939db 100644 --- a/env/sata.c +++ b/env/sata.c @@ -24,8 +24,6 @@ #error CONFIG_ENV_OFFSET or CONFIG_ENV_SIZE not defined #endif -char *env_name_spec = "SATA"; - DECLARE_GLOBAL_DATA_PTR; __weak int sata_get_env_dev(void) @@ -119,6 +117,7 @@ static void env_sata_load(void) U_BOOT_ENV_LOCATION(sata) = { .location = ENVL_ESATA, + ENV_NAME("SATA") .load = env_sata_load, .save = env_save_ptr(env_sata_save), }; diff --git a/env/sf.c b/env/sf.c index a07641b7d4..07386c629a 100644 --- a/env/sf.c +++ b/env/sf.c @@ -48,8 +48,6 @@ static ulong env_new_offset = CONFIG_ENV_OFFSET_REDUND; DECLARE_GLOBAL_DATA_PTR; -char *env_name_spec = "SPI Flash"; - static struct spi_flash *env_flash; static int setup_flash_device(void) @@ -346,6 +344,7 @@ out: U_BOOT_ENV_LOCATION(sf) = { .location = ENVL_SPI_FLASH, + ENV_NAME("SPI Flash") .load = env_sf_load, #ifdef CMD_SAVEENV .save = env_save_ptr(env_sf_save), diff --git a/env/ubi.c b/env/ubi.c index 773fcf0ed2..0f1e5bcd22 100644 --- a/env/ubi.c +++ b/env/ubi.c @@ -16,8 +16,6 @@ #include #undef crc32 -char *env_name_spec = "UBI"; - env_t *env_ptr; DECLARE_GLOBAL_DATA_PTR; diff --git a/include/environment.h b/include/environment.h index 87727f2b29..03fe00f215 100644 --- a/include/environment.h +++ b/include/environment.h @@ -143,10 +143,6 @@ extern unsigned long nand_env_oob_offset; # define ENV_HEADER_SIZE (sizeof(uint32_t)) #endif -#if defined(CONFIG_CMD_SAVEENV) && !defined(CONFIG_ENV_IS_NOWHERE) -extern char *env_name_spec; -#endif - #ifdef CONFIG_ENV_AES /* Make sure the payload is multiple of AES block size */ #define ENV_SIZE ((CONFIG_ENV_SIZE - ENV_HEADER_SIZE) & ~(16 - 1)) @@ -224,6 +220,7 @@ enum env_location { }; struct env_driver { + const char *name; enum env_location location; /** @@ -269,6 +266,13 @@ struct env_driver { #define U_BOOT_ENV_LOCATION(__name) \ ll_entry_declare(struct env_driver, __name, env_driver) +/* Declare the name of a location */ +#ifdef CONFIG_CMD_SAVEENV +#define ENV_NAME(_name) .name = _name, +#else +#define ENV_NAME(_name) +#endif + #ifdef CONFIG_CMD_SAVEENV #define env_save_ptr(x) x #else @@ -298,6 +302,13 @@ int env_import(const char *buf, int check); /* Export from hash table into binary representation */ int env_export(env_t *env_out); +/** + * env_driver_lookup_default() - Look up the default environment driver + * + * @return pointer to driver, or NULL if none (which should not happen) + */ +struct env_driver *env_driver_lookup_default(void); + #endif /* DO_DEPS_ONLY */ #endif /* _ENVIRONMENT_H_ */