Fix non cfi x16 nor flash connected to x8 bus. The ids in the table should be masked before comparison.
This commit is contained in:
parent
e105915a4a
commit
32ede8fa21
|
@ -454,13 +454,19 @@ static struct non_cfi non_cfi_flashes[] = {
|
||||||
|
|
||||||
void cfi_fixup_non_cfi(struct flash_bank *bank)
|
void cfi_fixup_non_cfi(struct flash_bank *bank)
|
||||||
{
|
{
|
||||||
|
unsigned int mask;
|
||||||
struct cfi_flash_bank *cfi_info = bank->driver_priv;
|
struct cfi_flash_bank *cfi_info = bank->driver_priv;
|
||||||
struct non_cfi *non_cfi = non_cfi_flashes;
|
struct non_cfi *non_cfi = non_cfi_flashes;
|
||||||
|
|
||||||
|
if(cfi_info->x16_as_x8)
|
||||||
|
mask = 0xFF;
|
||||||
|
else
|
||||||
|
mask = 0xFFFF;
|
||||||
|
|
||||||
for (non_cfi = non_cfi_flashes; non_cfi->mfr; non_cfi++)
|
for (non_cfi = non_cfi_flashes; non_cfi->mfr; non_cfi++)
|
||||||
{
|
{
|
||||||
if ((cfi_info->manufacturer == non_cfi->mfr)
|
if ((cfi_info->manufacturer == non_cfi->mfr)
|
||||||
&& (cfi_info->device_id == non_cfi->id))
|
&& (cfi_info->device_id == (non_cfi->id & mask)))
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue