CFI: synchronize command offsets with Linux CFI driver
Fixes non-working CFI Flash on the Inka4x0 board. Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
This commit is contained in:
parent
9692c2734a
commit
42026c9cb3
@ -1231,9 +1231,26 @@ static int flash_detect_cfi (flash_info_t * info)
|
|||||||
debug ("port %d bits chip %d bits\n",
|
debug ("port %d bits chip %d bits\n",
|
||||||
info->portwidth << CFI_FLASH_SHIFT_WIDTH,
|
info->portwidth << CFI_FLASH_SHIFT_WIDTH,
|
||||||
info->chipwidth << CFI_FLASH_SHIFT_WIDTH);
|
info->chipwidth << CFI_FLASH_SHIFT_WIDTH);
|
||||||
/* this probably only works if info->interface == FLASH_CFI_X8X16 */
|
|
||||||
info->addr_unlock1 = (info->portwidth == FLASH_CFI_8BIT) ? 0xAAA : 0x555;
|
/* calculate command offsets as in the Linux driver */
|
||||||
info->addr_unlock2 = (info->portwidth == FLASH_CFI_8BIT) ? 0x555 : 0x2AA;
|
info->addr_unlock1 = 0x555;
|
||||||
|
info->addr_unlock2 = 0x2aa;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* modify the unlock address if we are
|
||||||
|
* in compatibility mode
|
||||||
|
*/
|
||||||
|
if ( /* x8/x16 in x8 mode */
|
||||||
|
((info->chipwidth == FLASH_CFI_BY8) &&
|
||||||
|
(info->interface == FLASH_CFI_X8X16)) ||
|
||||||
|
/* x16/x32 in x16 mode */
|
||||||
|
((info->chipwidth == FLASH_CFI_BY16) &&
|
||||||
|
(info->interface == FLASH_CFI_X16X32)))
|
||||||
|
{
|
||||||
|
info->addr_unlock1 = 0xaaa;
|
||||||
|
info->addr_unlock2 = 0x555;
|
||||||
|
}
|
||||||
|
|
||||||
info->name = "CFI conformant";
|
info->name = "CFI conformant";
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -80,6 +80,7 @@ typedef struct {
|
|||||||
#define FLASH_CFI_X8 0x00
|
#define FLASH_CFI_X8 0x00
|
||||||
#define FLASH_CFI_X16 0x01
|
#define FLASH_CFI_X16 0x01
|
||||||
#define FLASH_CFI_X8X16 0x02
|
#define FLASH_CFI_X8X16 0x02
|
||||||
|
#define FLASH_CFI_X16X32 0x05
|
||||||
|
|
||||||
/* convert between bit value and numeric value */
|
/* convert between bit value and numeric value */
|
||||||
#define CFI_FLASH_SHIFT_WIDTH 3
|
#define CFI_FLASH_SHIFT_WIDTH 3
|
||||||
|
Loading…
Reference in New Issue
Block a user