[U-Boot] Breakage on arm/next
Scott Wood
scottwood at freescale.com
Thu Dec 10 18:17:14 CET 2009
apgmoorthy wrote:
> Hi Scott,
>
>>> Hunk 1:
>>> env_addr = CONFIG_ENV_ADDR;
>>> + if (FLEXONENAND(this))
>>> + env_addr <<= 1;
>>>
>>> Hunk 2:
>>> + if (FLEXONENAND(this)) {
>>> + env_addr <<= 1;
>>> + instr.len <<=
>> onenand_mtd.eraseregions[0].numblocks == 1 ?
>>> + 2 : 1;
>>> + }
>>>
>>> This should not break any other Board with OneNAND support.
>> Please comment.
>>> (Somehow I still feel Macros can be Cleaner way.)
>> Why is the address automatically doubled on flex? I think
>> this really needs to be something board-specified.
>>
> Please excuse me for the Delay.
>
> Flex-OneNAND device's erasesize itself is double considered to OneNAND.
That doesn't mean that all data you're storing is double the size. A
board may want to keep the byte offset the same, and let the block
number change.
> Like , In SLC region of Flex-OneNAND size is 256K and
> in MLC region it is 512K. In case of OneNAND erasesize is 128K and
> it is just SLC.
Suppose I have a 256K U-Boot. I want CONFIG_ENV_ADDR to be 256K
regardless, which would be block 1 for flex SLC or block 2 for regular
OneNAND.
If I have a 512K U-Boot, then the byte offset would be the same for MLC
as well.
-Scott
More information about the U-Boot
mailing list