[U-Boot] [PATCH v4 1/2] env_mmc: configure environment offsets via device tree

Jaehoon Chung jh80.chung at samsung.com
Fri May 26 06:43:17 UTC 2017


On 05/25/2017 10:51 PM, Jaehoon Chung wrote:
> Hi Philipp,
> 
> On 05/16/2017 07:16 AM, Philipp Tomsich wrote:
>> This introduces the ability to override the environment offets from the
>> device tree by setting the following nodes in '/config':
>> 	'u-boot,mmc-env-offset' - overrides CONFIG_ENV_OFFSET
>> 	'u-boot,mmc-env-offset-redundant'
>> 				- overrides CONFIG_ENV_OFFSET_REDUND
>>
>> To keep with the previous logic, the CONFIG_* defines still need to
>> be available and the statically defined values become the defaults,
>> when the corresponding properties are not set in the device-tree.
>>
>> Signed-off-by: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
>> Acked-by: Simon Glass <sjg at chromium.org>
> 
> I'm doing check this patches..after building,,if there is no problem, i will pick.

Applied to u-boot-mmc. Thanks!

Best Regards,
Jaehoon Chung

> 
> Thanks!
> 
> Best Regards,
> Jaehoon Chung
> 
>> ---
>>
>> Changes in v4:
>> - change the test for OF_CONTROL to use CONFIG_IS_ENABLED to pick up
>>   the differece between SPL_OF_CONTROL and OF_CONTROL
>>
>> Changes in v3:
>> - changes the config-check to depend on CONFIG_OF_CONTROL to detect
>>   if 'fdtdec_get_config_int' is available
>>
>> Changes in v2: None
>>
>>  common/env_mmc.c | 31 +++++++++++++++++++++++++++----
>>  1 file changed, 27 insertions(+), 4 deletions(-)
>>
>> diff --git a/common/env_mmc.c b/common/env_mmc.c
>> index a5d14d4..45d95a1 100644
>> --- a/common/env_mmc.c
>> +++ b/common/env_mmc.c
>> @@ -10,6 +10,7 @@
>>  
>>  #include <command.h>
>>  #include <environment.h>
>> +#include <fdtdec.h>
>>  #include <linux/stddef.h>
>>  #include <malloc.h>
>>  #include <memalign.h>
>> @@ -36,15 +37,37 @@ DECLARE_GLOBAL_DATA_PTR;
>>  #define CONFIG_ENV_OFFSET 0
>>  #endif
>>  
>> -__weak int mmc_get_env_addr(struct mmc *mmc, int copy, u32 *env_addr)
>> +#if CONFIG_IS_ENABLED(OF_CONTROL)
>> +static inline s64 mmc_offset(int copy)
>>  {
>> -	s64 offset;
>> +	const char *propname = "u-boot,mmc-env-offset";
>> +	s64 defvalue = CONFIG_ENV_OFFSET;
>>  
>> -	offset = CONFIG_ENV_OFFSET;
>> -#ifdef CONFIG_ENV_OFFSET_REDUND
>> +#if defined(CONFIG_ENV_OFFSET_REDUND)
>> +	if (copy) {
>> +		propname = "u-boot,mmc-env-offset-redundant";
>> +		defvalue = CONFIG_ENV_OFFSET_REDUND;
>> +	}
>> +#endif
>> +
>> +	return fdtdec_get_config_int(gd->fdt_blob, propname, defvalue);
>> +}
>> +#else
>> +static inline s64 mmc_offset(int copy)
>> +{
>> +	s64 offset = CONFIG_ENV_OFFSET;
>> +
>> +#if defined(CONFIG_ENV_OFFSET_REDUND)
>>  	if (copy)
>>  		offset = CONFIG_ENV_OFFSET_REDUND;
>>  #endif
>> +	return offset;
>> +}
>> +#endif
>> +
>> +__weak int mmc_get_env_addr(struct mmc *mmc, int copy, u32 *env_addr)
>> +{
>> +	s64 offset = mmc_offset(copy);
>>  
>>  	if (offset < 0)
>>  		offset += mmc->capacity;
>>
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
> 



More information about the U-Boot mailing list