diff options
| author | wdenk <wdenk> | 2004-03-14 14:09:05 +0000 | 
|---|---|---|
| committer | wdenk <wdenk> | 2004-03-14 14:09:05 +0000 | 
| commit | 4d13cbad1c81ad7901151fec381bae8c30f4338a (patch) | |
| tree | ecb8e4694a7a8ddea27f9f6838c61393cbd4c12b /drivers/cfi_flash.c | |
| parent | c3f9d4939af90eb8e30119601c86c05bde6c7345 (diff) | |
| download | olio-uboot-2014.01-4d13cbad1c81ad7901151fec381bae8c30f4338a.tar.xz olio-uboot-2014.01-4d13cbad1c81ad7901151fec381bae8c30f4338a.zip | |
* Patch by Tolunay Orkun, 5 Mar 2004:
  Fix early board initialization for Cogent CSB272 board
* Patch by Ed Okerson, 3 Mar 2004:
  fix CFI flash writes for little endian systems
* Patch by Reinhard Meyer, 01 Mar 2004:
  generalize USB and IDE support for MPC5200 with according
  changes to IceCube.h and TOP5200.h
  add Am29LV256 256 MBit FLASH support for TOP5200 boards
  add info about USB and IDE to README
Diffstat (limited to 'drivers/cfi_flash.c')
| -rw-r--r-- | drivers/cfi_flash.c | 24 | 
1 files changed, 24 insertions, 0 deletions
| diff --git a/drivers/cfi_flash.c b/drivers/cfi_flash.c index d31b38f1b..7a7575b26 100644 --- a/drivers/cfi_flash.c +++ b/drivers/cfi_flash.c @@ -724,18 +724,42 @@ static int flash_full_status_check (flash_info_t * info, flash_sect_t sector,   */  static void flash_add_byte (flash_info_t * info, cfiword_t * cword, uchar c)  { +#if defined(__LITTLE_ENDIAN) +	unsigned short	w; +	unsigned int	l; +	unsigned long long ll; +#endif +  	switch (info->portwidth) {  	case FLASH_CFI_8BIT:  		cword->c = c;  		break;  	case FLASH_CFI_16BIT: +#if defined(__LITTLE_ENDIAN) +		w = c; +		w <<= 8; +		cword->w = (cword->w >> 8) | w; +#else  		cword->w = (cword->w << 8) | c; +#endif  		break;  	case FLASH_CFI_32BIT: +#if defined(__LITTLE_ENDIAN) +		l = c; +		l <<= 24; +		cword->l = (cword->l >> 8) | l; +#else  		cword->l = (cword->l << 8) | c; +#endif  		break;  	case FLASH_CFI_64BIT: +#if defined(__LITTLE_ENDIAN) +		ll = c; +		ll <<= 56; +		cword->ll = (cword->ll >> 8) | ll; +#else  		cword->ll = (cword->ll << 8) | c; +#endif  		break;  	}  } |