[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