Skip to contentSkip to conversation

CONFIG_ENV_IS_EMBEDDED problems

U-Boot Michael Schwingen 2 participants 2 messages Jan 29, 2011 – Feb 15, 2011

lore
Share & tools
lore
#0 lore raw

Hi,

I am wondering how CONFIG_ENV_IS_EMBEDDED is supposed to work.

As far as I understand the code, it is set automatically by environment.h in case the environment is in a sector in NOR flash that overlaps with the u-boot code.

However, I see two problems:
- CONFIG_ENV_IS_EMBEDDED does not end up in autoconf.mk - however, it
is used in common/Makefile. This does not cause problems as long as CONFIG_ENV_IS_IN_FLASH is also set, but the switch in the Makefile is either useless or broken.

- include/common.h also contains #ifdef CONFIG_ENV_IS_EMBEDDED without
including environment.h, so that the definitions inside that block are never reached.

Which of these is in error?

I think we could include environment.h from config.h - that would fix all the problems, however that would mean environment.h ends up as a dependency practically everywhere, which sounds bad.

cu
Michael

#1 lore raw
Quoted 1 line · On Saturday, January 29, 2011 07:58:37 Michael Schwingen wrote:

I am wondering how CONFIG_ENV_IS_EMBEDDED is supposed to work.

the embedded env stuff is kind of a mess. anyone will to waste/spend time on cleaning it up would be nice.

Quoted 3 lines

As far as I understand the code, it is set automatically by environment.h in case the environment is in a sector in NOR flash that overlaps with the u-boot code.

historically, i think that's what the code attempted to do.

Quoted 5 lines

However, I see two problems:
- CONFIG_ENV_IS_EMBEDDED does not end up in autoconf.mk - however, it
is used in common/Makefile. This does not cause problems as long as CONFIG_ENV_IS_IN_FLASH is also set, but the switch in the Makefile is either useless or broken.

well, the former cant really show up if the latter isnt defined

Quoted 3 lines

- include/common.h also contains #ifdef CONFIG_ENV_IS_EMBEDDED without
including environment.h, so that the definitions inside that block are never reached.

common.h has historically been a dumping ground for crap. relocating that malloc-specific code to a better header would probably be a good idea. -mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20110215/50e4878b/attachment.pgp