cfi_cmdset_0001.c: CFI 1.0 and CFI 1.1
PATCH 1/1 cfi_cmdset_0001.c: CFI 1.0 and CFI 1.1
This patch allows otpinfo for CFI >= 1.0 and burst read for CFI >= 1.1.
references:
1.0: http://www.datasheetcatalog.org/datasheets2/81/816884_1.pdf
1.1: http://milkymist.org/doc/MT28F640J3.pdf
http://www.delorie.com/agenda/specs/29066709.pdf
Signed-off-by Daniel Ribeiro <[email protected]>
--- drivers/mtd/chips/cfi_cmdset_0001.c | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-)
drivers/mtd/chips/cfi_cmdset_0001.c +10 -4
@@ -319,6 +319,7 @@ static inline struct cfi_pri_intelext * read_pri_intelext(struct map_info *map, __u16 adr) {struct cfi_pri_intelext *extp; +unsigned int extra_size =0 ;unsigned int extp_size =sizeof (*extp); again:
@@ -340,19 +341,24 @@ read_pri_intelext(struct map_info *map, __u16 adr) extp->BlkStatusRegMask =le16_to_cpu (extp->BlkStatusRegMask); extp->ProtRegAddr =le16_to_cpu (extp->ProtRegAddr); -if (extp->MajorVersion =='1' && extp->MinorVersion >='3' ) { -unsigned int extra_size =0 ; -int nb_parts, i; +if (extp->MinorVersion >='0' ) { + extra_size =0 ;/* Protection Register info */ extra_size += (extp->NumProtectionFields -1 ) *sizeof (struct cfi_intelext_otpinfo ); + } +if (extp->MinorVersion >='1' ) {/* Burst Read info */ extra_size +=2 ;if (extp_size <sizeof (*extp) + extra_size) goto need_more; - extra_size += extp->extra[extra_size-1 ]; + extra_size += extp->extra[extra_size -1 ]; + } + +if (extp->MinorVersion >='3' ) { +int nb_parts, i;/* Number of hardware-partitions */ extra_size +=1 ;
Signature · 4 lines
tg: (1406de8..) mtd/cfi1.1-has-extra-too (depends on: master) -- Daniel Ribeiro