[U-Boot] [PATCH] common/Makefile: Add new symbol CONFIG_SPL_ENV_SUPPORT for environment in SPL

Zhang Ying-B40530 B40530 at freescale.com
Tue May 21 04:43:53 CEST 2013





-----Original Message-----
From: Wood Scott-B07421
Sent: Tuesday, May 21, 2013 2:56 AM
To: Zhang Ying-B40530
Cc: Wood Scott-B07421; u-boot at lists.denx.de; afleming at gmail.com; Xie Xiaobo-R63061; Tom Rini
Subject: Re: [PATCH] common/Makefile: Add new symbol CONFIG_SPL_ENV_SUPPORT for environment in SPL



On 05/17/2013 07:58:15 PM, Zhang Ying-B40530 wrote:

>

> ________________________________________

> From: Wood Scott-B07421

> Sent: Friday, May 17, 2013 10:41 PM

> To: Zhang Ying-B40530

> Cc: u-boot at lists.denx.de<mailto:u-boot at lists.denx.de>; afleming at gmail.com<mailto:afleming at gmail.com>; Xie Xiaobo-R63061;

> Zhang Ying-B40530

> Subject: Re: [PATCH] common/Makefile: Add new symbol

> CONFIG_SPL_ENV_SUPPORT for environment in SPL

>

> On 05/16/2013 10:05:17 PM, ying.zhang at freescale.com<mailto:ying.zhang at freescale.com> wrote:

> > diff --git a/common/Makefile b/common/Makefile

> > index f50bf2e..26b8495 100644

> > --- a/common/Makefile

> > +++ b/common/Makefile

> > @@ -44,13 +44,11 @@ COBJS-$(CONFIG_SYS_GENERIC_BOARD) += board_r.o

> >  COBJS-y += cmd_boot.o

> >  COBJS-$(CONFIG_CMD_BOOTM) += cmd_bootm.o

> >  COBJS-y += cmd_help.o

> > -COBJS-y += cmd_nvedit.o

> >  COBJS-y += cmd_version.o

> >

> >  # environment

> >  COBJS-y += env_attr.o

> >  COBJS-y += env_callback.o

> > -COBJS-y += env_common.o

> >  COBJS-y += env_flags.o

> >  COBJS-$(CONFIG_ENV_IS_IN_DATAFLASH) += env_dataflash.o

> >  COBJS-$(CONFIG_ENV_IS_IN_EEPROM) += env_eeprom.o

> > @@ -215,18 +213,27 @@ COBJS-$(CONFIG_CMD_GPT) += cmd_gpt.o

> >  endif

> >

> >  ifdef CONFIG_SPL_BUILD

> > -COBJS-y += cmd_nvedit.o

> > -COBJS-y += env_common.o

> >  COBJS-$(CONFIG_ENV_IS_IN_FLASH) += env_flash.o

> >  COBJS-$(CONFIG_SPL_YMODEM_SUPPORT) += xyzModem.o

> > -COBJS-$(CONFIG_SPL_NET_SUPPORT) += cmd_nvedit.o

> > -COBJS-$(CONFIG_SPL_NET_SUPPORT) += env_attr.o

> > -COBJS-$(CONFIG_SPL_NET_SUPPORT) += env_callback.o

> > -COBJS-$(CONFIG_SPL_NET_SUPPORT) += env_common.o

> > -COBJS-$(CONFIG_SPL_NET_SUPPORT) += env_flags.o

> > -COBJS-$(CONFIG_SPL_NET_SUPPORT) += env_nowhere.o

> >  COBJS-$(CONFIG_SPL_NET_SUPPORT) += miiphyutil.o

> > +# environment

> > +COBJS-$(CONFIG_SPL_ENV_SUPPORT) += env_attr.o

> > +COBJS-$(CONFIG_SPL_ENV_SUPPORT) += env_flags.o

> > +COBJS-$(CONFIG_SPL_ENV_SUPPORT) += env_callback.o

> > +ifneq ($(CONFIG_SPL_NET_SUPPORT),y)

> > +COBJS-$(CONFIG_ENV_IS_NOWHERE) += env_nowhere.o

> > +COBJS-$(CONFIG_ENV_IS_IN_MMC) += env_mmc.o

> > +COBJS-$(CONFIG_ENV_IS_IN_NAND) += env_nand.o

> > +COBJS-$(CONFIG_ENV_IS_IN_SPI_FLASH) += env_sf.o

> > +COBJS-$(CONFIG_ENV_IS_IN_FLASH) += env_flash.o

> > +else

> > +COBJS-y += env_nowhere.o

> > +endif

>

> Why do you include these files only if we *don't* have net support?

> [Zhang Ying]

> This because CONFIG_SPL_NET_SUPPORT is conflict with  SPL ENV. This

> is comments from Tom .



I'm not that familiar with CONFIG_SPL_NET_SUPPORT, but it looks like it

just enables the net/ directory in an SPL.  How does that conflict with

env stuff?  Perhaps there's some other symbol that better describes the

actual conflict.

[Zhang Ying]
This is Tom's words:
a3m071 relies on SPL always building cmd_nvedit.o and env_common.o and duplicated CONFIG_ENV_IS_IN_FLASH in the SPL section.
CONFIG_SPL_NET_SUPPORT relies on the same always-built ins and adds env_nowhere.o which works because the regular CONFIG_ENV_IS_IN_...
section is in the non-SPL-only area.
Now, your end-goal is to have env from, I assume, NAND, also exist on SPL?  I guess for now, lets go ahead and duplicate a few lines of ENV_IS.. inside the SPL area and when you add NAND env, add ifneq ($(CONFIG_SPL_NET_SUPPORT),y)...endif around it and add to the README that CONFIG_SPL_NET_SUPPORT conflicts with SPL env from nand.

My understanding is that there are two kinds of methods:

1. In Tom's opinion: add CONFIG_ENV_IS_IN_... inside the SPL area and add ifneq ($(CONFIG_SPL_NET_SUPPORT),y)...endif around it.

2. Add new SPL env symbol(for example: CONFIG_SPL_ENV_IS_IN_MMC) for the SPL. This need to add excessive symbol for SPL env.




More information about the U-Boot mailing list