Commit ca6f12c6 authored by Atsushi Nemoto's avatar Atsushi Nemoto Committed by David Woodhouse

[MTD] jedec_probe: Fix SST 16-bit chip detection

The unlock_addr rework in kernel 2.6.25 breaks 16-bit SST chips.  SST
39LF160 and SST 39VF1601 are both 16-bit only chip (do not have BYTE#
pin) and new uaddr value is not correct for them.  Add
MTD_UADDR_0xAAAA_0x5555 for those chips.  Tested with SST 39VF1601
chip.
Signed-off-by: default avatarAtsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent f636ffb4
...@@ -200,6 +200,7 @@ enum uaddr { ...@@ -200,6 +200,7 @@ enum uaddr {
MTD_UADDR_0x0555_0x0AAA, MTD_UADDR_0x0555_0x0AAA,
MTD_UADDR_0x5555_0x2AAA, MTD_UADDR_0x5555_0x2AAA,
MTD_UADDR_0x0AAA_0x0555, MTD_UADDR_0x0AAA_0x0555,
MTD_UADDR_0xAAAA_0x5555,
MTD_UADDR_DONT_CARE, /* Requires an arbitrary address */ MTD_UADDR_DONT_CARE, /* Requires an arbitrary address */
MTD_UADDR_UNNECESSARY, /* Does not require any address */ MTD_UADDR_UNNECESSARY, /* Does not require any address */
}; };
...@@ -247,6 +248,11 @@ static const struct unlock_addr unlock_addrs[] = { ...@@ -247,6 +248,11 @@ static const struct unlock_addr unlock_addrs[] = {
.addr2 = 0x0555 .addr2 = 0x0555
}, },
[MTD_UADDR_0xAAAA_0x5555] = {
.addr1 = 0xaaaa,
.addr2 = 0x5555
},
[MTD_UADDR_DONT_CARE] = { [MTD_UADDR_DONT_CARE] = {
.addr1 = 0x0000, /* Doesn't matter which address */ .addr1 = 0x0000, /* Doesn't matter which address */
.addr2 = 0x0000 /* is used - must be last entry */ .addr2 = 0x0000 /* is used - must be last entry */
...@@ -1461,8 +1467,8 @@ static const struct amd_flash_info jedec_table[] = { ...@@ -1461,8 +1467,8 @@ static const struct amd_flash_info jedec_table[] = {
.mfr_id = MANUFACTURER_SST, /* should be CFI */ .mfr_id = MANUFACTURER_SST, /* should be CFI */
.dev_id = SST39LF160, .dev_id = SST39LF160,
.name = "SST 39LF160", .name = "SST 39LF160",
.devtypes = CFI_DEVICETYPE_X16|CFI_DEVICETYPE_X8, .devtypes = CFI_DEVICETYPE_X16,
.uaddr = MTD_UADDR_0x5555_0x2AAA, /* ???? */ .uaddr = MTD_UADDR_0xAAAA_0x5555,
.dev_size = SIZE_2MiB, .dev_size = SIZE_2MiB,
.cmd_set = P_ID_AMD_STD, .cmd_set = P_ID_AMD_STD,
.nr_regions = 2, .nr_regions = 2,
...@@ -1474,8 +1480,8 @@ static const struct amd_flash_info jedec_table[] = { ...@@ -1474,8 +1480,8 @@ static const struct amd_flash_info jedec_table[] = {
.mfr_id = MANUFACTURER_SST, /* should be CFI */ .mfr_id = MANUFACTURER_SST, /* should be CFI */
.dev_id = SST39VF1601, .dev_id = SST39VF1601,
.name = "SST 39VF1601", .name = "SST 39VF1601",
.devtypes = CFI_DEVICETYPE_X16|CFI_DEVICETYPE_X8, .devtypes = CFI_DEVICETYPE_X16,
.uaddr = MTD_UADDR_0x5555_0x2AAA, /* ???? */ .uaddr = MTD_UADDR_0xAAAA_0x5555,
.dev_size = SIZE_2MiB, .dev_size = SIZE_2MiB,
.cmd_set = P_ID_AMD_STD, .cmd_set = P_ID_AMD_STD,
.nr_regions = 2, .nr_regions = 2,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment