[U-Boot] [PATCH] Flex-OneNAND driver
Rohit
h.rohit at samsung.com
Thu Oct 16 09:43:56 CEST 2008
Hi Kyungmin,
Thank you for the comments.
Kyungmin Park wrote:
>> diff --git a/common/env_onenand.c b/common/env_onenand.c
>> --- a/common/env_onenand.c
>> +++ b/common/env_onenand.c
>> @@ -58,11 +58,14 @@
>>
>> void env_relocate_spec(void)
>> {
>> + struct onenand_chip *this = &onenand_chip;
>> unsigned long env_addr;
>> int use_default = 0;
>> size_t retlen;
>>
>> env_addr = CONFIG_ENV_ADDR;
>> + if (FLEXONENAND(this))
>> + env_addr = CONFIG_ENV_ADDR_FLEX;
>>
>
> Umm do you have more fancy method to determine the environment address
> whatever it's OneNAND or not.
>
We can just double CONFIG_ENV_ADDR for Flex-OneNAND, so
CONFIG_ENV_ADDR_FLEX is not needed.
Otherwise, we can just set env_addr to 1 block size as bootloader
is always limited to block 0.
>> int saveenv(void)
>> {
>> + struct onenand_chip *this = &onenand_chip;
>> unsigned long env_addr = CONFIG_ENV_ADDR;
>> struct erase_info instr = {
>> .callback = NULL,
>> @@ -96,6 +100,12 @@
>> size_t retlen;
>>
>> instr.len = CONFIG_ENV_SIZE;
>> + if (FLEXONENAND(this)) {
>> + env_addr = CONFIG_ENV_ADDR_FLEX;
>> + instr.len = CONFIG_ENV_SIZE_FLEX;
>> + instr.len <<= onenand_mtd.eraseregions[0].numblocks == 1 ?
>> + 1 : 0;
>> + }
>>
>
> Ditto.
>
I don't get alternative than to use CONFIG_ENV_SIZE_FLEX to store size
of environment variables
partition. Can you please elaborate.
Regards,
Rohit
More information about the U-Boot
mailing list