[U-Boot-Users] [RFC] CFI Driver Little-Endian write Issue

Yuli Barcohen yuli at arabellasw.com
Tue Aug 8 15:31:40 CEST 2006


>>>>> Sam Song writes:

    Yuli> No, they aren't. First of all, on big-endian systems
    Yuli> __LITTLE_ENDIAN is never defined and on little-endian systems
    Yuli> it's always defined automatically while CFG_FLASH_CFI_SWAP
    Yuli> must be defined manually if your board has such a flash. On
    Yuli> little-endian systems, the driver should work without the need
    Yuli> to define CFG_FLASH_CFI_SWAP. Also, there are places in the
    Yuli> code for __LITTLE_ENDIAN only, not for CFG_FLASH_CFI_SWAP.

    Sam> Seems your explaination is not the same as your patch:-).

Yes, the explanation is in English and the patch is in C:) The meaning
is the same though.

    Sam> I hope I weren't clear this time.

    Sam> In your patch, CFG_FLASH_CFI_SWAP is automatically defined in
    Sam> __LITTLE_ENDIAN case. So on __LITTLE_ENDIAN system,
    Sam> CFG_FLASH_CFI_SWAP MUST BE ENABLED by default.

So it's exactly what I explained: little-endian systems work
automatically without the need to define CFG_FLASH_CFI_SWAP. I meant,
you don't have to #define CFG_FLASH_CFI_SWAP in the board configuration
file to have working little-endian system. It's defined automatically
when needed. Sorry if it wasn't clear enough.

    Sam> +#if defined(__LITTLE_ENDIAN) && !defined(CFG_FLASH_CFI_SWAP)
    Sam> +#define CFG_FLASH_CFI_SWAP
    Sam> +#endif

If it makes things simpler, it's possible to replace

   #ifdef CFG_FLASH_CFI_SWAP

by

   #if defined(__LITTLE_ENDIAN) || defined(CFG_FLASH_CFI_SWAP)

and remove the above mentioned definition of CFG_FLASH_CFI_SWAP.

-- 
========================================================================
 Yuli Barcohen       | Phone +972-9-765-1788 |  Software Project Leader
 yuli at arabellasw.com | Fax   +972-9-765-7494 | Arabella Software, Israel
========================================================================




More information about the U-Boot mailing list