[PATCH v1 6/6] configs: stm32mp25: enable CONFIG_SYS_64BIT_LBA

Heinrich Schuchardt xypron.glpk at gmx.de
Wed Jan 8 22:12:48 CET 2025


Am 8. Januar 2025 19:50:07 MEZ schrieb Patrick DELAUNAY <patrick.delaunay at foss.st.com>:
>Hi,
>
>On 11/29/24 13:27, Patrice Chotard wrote:
>> In arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c, in init_device(),
>> in case of RAW_IMAGE, part->size = block_dev->lba * block_dev->blksz.
>> 
>>    _ part->size is declared as u64.
>>    _ block_dev->lba is declared as lbaint_t which is uint64_t
>>      if CONFIG_SYS_64BIT_LBA is enable, otherwise ulong.
>>    _ block_dev->blksz is declared as unsigned long.
>> 
>> For example, in case block_dev->lba = 0x1dacc00, block_dev->blksz = 0x200
>> then part->size 0x5980000 which is incorrect as both are declared as ulong.
>> 
>> To fix this overflow issue, enable CONFIG_SYS_64BIT_LBA, block_dev->lba is
>> then declared as uint64_t and part->size get the correct value 0x3b5980000.
>> 
>> Signed-off-by: Patrice Chotard <patrice.chotard at foss.st.com>
>> ---
>> 
>>   configs/stm32mp25_defconfig | 1 +
>>   1 file changed, 1 insertion(+)
>> 
>> diff --git a/configs/stm32mp25_defconfig b/configs/stm32mp25_defconfig
>> index d3f0c088157..073172c3804 100644
>> --- a/configs/stm32mp25_defconfig
>> +++ b/configs/stm32mp25_defconfig
>> @@ -33,6 +33,7 @@ CONFIG_CMD_REGULATOR=y
>>   CONFIG_CMD_LOG=y
>>   CONFIG_OF_LIVE=y
>>   CONFIG_NO_NET=y
>> +CONFIG_SYS_64BIT_LBA=y

I wonder why we have to set this in individual defconfigs. Shouldn't this value be the global default?

Best regards

Heinrich

>>   CONFIG_GPIO_HOG=y
>>   CONFIG_DM_I2C=y
>>   CONFIG_SYS_I2C_STM32F7=y
>
>
>
>Reviewed-by: Patrick Delaunay <patrick.delaunay at foss.st.com>
>
>Thanks
>Patrick
>
>
>



More information about the U-Boot mailing list