[U-Boot-Users] Sector size with CFI driver?
Tolunay Orkun
listmember at orkun.us
Wed Nov 1 18:41:31 CET 2006
Timur Tabi wrote:
> Stefan Roese wrote:
>> On Wednesday 01 November 2006 17:58, Timur Tabi wrote:
>>> Timur Tabi wrote:
>>>> +
>>>> +#ifdef CONFIG_MPC8349ITX
>>>> + for (i = num_erase_regions-1; i >= 0; i--) { /* top
>>>> boot */ +#else
>>>> for (i = 0; i < num_erase_regions; i++) {
>>>> +#endif
>>>> +
>>> Ok, I put the above change into cfi_flash.c, and now it works! Can someone
>>> explain to me why? Does U-Boot not normally support "top boot" flash? If
>>> so, is there a better way of doing this?
>> Seems like your FLASH doesn't really support the CFI "Device Geometry
>> Definition". Both versions (top & bottom boot block) most likely report the
>> same layout.
>
> Assuming this is true (and I will try to find out), can you recommend how you
> want me to implement a fix for my board? Should I do something like
>
> #define CFG_CFI_DEV_GEO_BROKEN
>
> in my board header file, and then do something like:
>
> +#ifdef CFG_CFI_DEV_GEO_BROKEN
> + for (i = num_erase_regions-1; i >= 0; i--) {
> +#else
> for (i = 0; i < num_erase_regions; i++) {
> +#endif
>
> This is really ugly, I know, but I need help coming up with a method that you
> guys will accept.
I would not assume that all broken geometry to be one way or another.
Secondly, it looks like the erase region list returned is reversed for
this flash chip. I think, CFG_CFI_GEOMETRY_REVERSED would be more
appropriate.
Perhaps you can identify such a reserved list from the CFI tables on the
flash. If this can be done no macros would be needed to handle this case.
Can you tell me the exact part number for your flash. I would like to
read the data sheet and compare its CFI structures if I can.
Best regards,
Tolunay
More information about the U-Boot
mailing list