On Tue, Oct 17, 2023 at 10:14:13AM +0200, Wojciech Niziński wrote: > Hello. > > Very nice feature was introduced in commit: > > 86b9c3e4e48ba47ef28781d06b97846aca74bc8e| > env: Allow U-Boot scripts to be placed in a .env file > > This feature works as extension for old CFG_EXTRA_ENV_SETTINGS and make me > confused why it doesn't work for configured default env file. > > Now in U-Boot config we have two features related to external environment > file: > > 1st feature (introduced by mentioned commit): > > CONFIG_ENV_SOURCE_FILE "Environment file to use" > > 2nd feature > > CONFIG_USE_DEFAULT_ENV_FILE "Create default environment from file" > > CONFIG_DEFAULT_ENV_FILE "Path to default environment file" > > In 1st feature only basename of .env file can be specified. So env file can > be located only in board dir which is a limitation for this nice feature: > > "The file must be in the board directory and have a .env extension, so > the resulting filename is typically > board/<vendor>/<board>/<CONFIG_ENV_SOURCE_FILE>.env" > > In 2nd feature I can specify default env file as full path so it can be > located everywhere - even outside U-Boot source - which is very nice when > U-Boot is built by Buildroot. I can easily set path as system environment > variable and it works: > > CONFIG_USE_DEFAULT_ENV_FILE=y > CONFIG_DEFAULT_ENV_FILE="$(BR2_EXTERNAL_FOO_PATH)/board/foo/u-boot.env" > > Unfortunately I cannot do the same for 1st feature without patching U-Boot > sources to put my custom env file into board dir. > > I can see two way of improving features: > 1st: to extend 1st feature with ability to specify full patch to env file, > or > 2nd one: run the same parsing mechanism also for 2nd feature (default env > file).
Your analysis of how things work is correct. The intention is that, as you noted, is that the plain text environment and CONFIG_ENV_SOURCE_FILE replace the older default environment found in include/env_default.h and often augmented by the board.h file via (formerly CONFIG now CFG) EXTRA_ENV_SETTINGS and CONFIG_USE_DEFAULT_ENV_FILE to be the complete replacement of the environment option. So I think the next reasonable step would be to be able to have plain text environment style files work for CONFIG_USE_DEFAULT_ENV_FILE which I think you're saying doesn't today. But I think that yes, a patch to parse the new-style plain text files for CONFIG_USE_DEFAULT_ENV_FILE would be good, and I suspect buildroot has enough users of that feature that any corner cases with trying to parse older files could be caught and fixed? -- Tom
signature.asc
Description: PGP signature