uboot/env/nowhere.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0+
   2/*
   3 * (C) Copyright 2000-2010
   4 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
   5 *
   6 * (C) Copyright 2001 Sysgo Real-Time Solutions, GmbH <www.elinos.com>
   7 * Andreas Heppel <aheppel@sysgo.de>
   8 */
   9
  10#include <common.h>
  11#include <command.h>
  12#include <env.h>
  13#include <env_internal.h>
  14#include <asm/global_data.h>
  15#include <linux/stddef.h>
  16
  17DECLARE_GLOBAL_DATA_PTR;
  18
  19/*
  20 * Because we only ever have the default environment available we must mark
  21 * it as invalid.
  22 */
  23static int env_nowhere_init(void)
  24{
  25        gd->env_addr    = (ulong)&default_environment[0];
  26        gd->env_valid   = ENV_INVALID;
  27
  28        return 0;
  29}
  30
  31static int env_nowhere_load(void)
  32{
  33        /*
  34         * for SPL, set env_valid = ENV_INVALID is enough as env_get_char()
  35         * return the default env if env_get is used
  36         * and SPL don't used env_import to reduce its size
  37         * For U-Boot proper, import the default environment to allow reload.
  38         */
  39        if (!IS_ENABLED(CONFIG_SPL_BUILD))
  40                env_set_default(NULL, 0);
  41
  42        gd->env_valid   = ENV_INVALID;
  43
  44        return 0;
  45}
  46
  47U_BOOT_ENV_LOCATION(nowhere) = {
  48        .location       = ENVL_NOWHERE,
  49        .init           = env_nowhere_init,
  50        .load           = env_nowhere_load,
  51        ENV_NAME("nowhere")
  52};
  53