Commit Graph

98 Commits

Author SHA1 Message Date
Jon Lin
a7cc0e6bee drivers: rkflash: Remove cache bitflip detect 2
Part of spinand sram maybe change after read status register

Fixes: cf69491c97 ("drivers: rkflash: Add spinand program cache recheck")
Change-Id: Ia8f902fe51562d71a5b8e78a80e63eb26257df38
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2021-02-08 11:40:01 +08:00
Jon Lin
cf69491c97 drivers: rkflash: Add spinand program cache recheck
Add spinand power lost situation protection to avoid
abnormal data written to flash array(recheck 1) or
just reduce error behavior(recheck 2)

Change-Id: Ic445fd09fd407c225b47310d666b39f095fcfb17
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2021-02-05 10:43:56 +08:00
Jon Lin
56b17ffce5 drivers: rkflash: Fix error in mtd spinor chip erase
Change-Id: I2ada96181a24ef4d450250d9ca6a089d4833e312
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2021-01-28 14:27:10 +08:00
Jon Lin
7426087ac0 drivers: rkflash: Adjust spinor mtd dev dma limit to 8KB
Change-Id: Iabff9f57806f7e2fdd3ce411182eb46459178d45
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2021-01-22 20:13:00 +08:00
Ziyuan Xu
86cc3029d7 drivers: rkflash: fixes compile error when !CONFIG_MTD
In file included from drivers/rkflash/sfc_nand_mtd.c:6:0:
./include/linux/mtd/cfi.h:76:2: warning: #warning No CONFIG_MTD_CFI_Ix selected. No NOR chip support can work. [-Wcpp]
error, forbidden warning:cfi.h:76
 #warning No CONFIG_MTD_CFI_Ix selected. No NOR chip support can work.
  ^~~~~~~
scripts/Makefile.build:333: recipe for target 'drivers/rkflash/sfc_nand_mtd.o' failed
make[2]: *** [drivers/rkflash/sfc_nand_mtd.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from drivers/rkflash/sfc_nor_mtd.c:6:0:
./include/linux/mtd/cfi.h:76:2: warning: #warning No CONFIG_MTD_CFI_Ix selected. No NOR chip support can work. [-Wcpp]
error, forbidden warning:cfi.h:76

Change-Id: I900d20adbd86c8293a9496ffba4bd722a46bfeae
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
2021-01-07 19:09:33 +08:00
Jon Lin
6d85832a79 drivers: rkflash: Remove RK vendor support for spinor mtd case
1.Change to use RK MTD vendor operation
2.RK MTD vendor is incompatible with RK vendor

Change-Id: I7c233b0b0a98c5e93d0722956809a9d6c01663a1
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-12-28 14:33:47 +08:00
Jon Lin
c7270465b2 drivers: rkflash: Fixed bbt operation calculation error
Fixes: 008340a82 ("drivers: rkflash: Change to use the api which the oob area available")
Change-Id: I140aa76a2acb73271ba04b7060030dc06a2353e6
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-12-17 16:09:28 +08:00
Jon Lin
d7437bb47f drivers: rkflash: Wait for SFC DMA finished when thunder boot
Change-Id: I361d6edb3d458557ea05586e0274a0a9f13e6bdf
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-12-14 11:11:56 +08:00
Jon Lin
b8b5e2f813 drivers: rkflash: Support new spinor
1.Support XT25F256BSFIGU, P25Q32SH-SSH-IT
2.Fix PUYA devices property

Change-Id: Iaea56cf6b0d8cfc10e49c7c2847d862fa7a1d75b
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-12-04 10:30:13 +08:00
Jon Lin
9b722ef1bb drivers: rkflash: Support spinor prog_addr_lines
Change-Id: I64ec763fdd420486b909bb1c11523fda651a3100
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-12-04 10:30:13 +08:00
Jon Lin
c7e05eab36 drivers: rkflash: Support sfc DLL api
Change-Id: Id4aa6d86ee0fe0a6d4d70ce75d9f15f8be749a1c
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-12-04 10:30:13 +08:00
Jon Lin
8c333be169 drivers: rkflash: Support new spi flash
1.Support W25N02KVZEIR
2.Support GD25B512MEYIG, MX25U51245G

Change-Id: I649054506496261d09b8d16fdf5353e262e65f69
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-11-21 11:40:39 +08:00
Jon Lin
4e7b84e10a drivers: rkflash: Support new devices
MT29F2G1ABA, F50L2G41XA, W25Q128JVSIM, ZB25LQ128, FM25Q64-SOB-T-G

Change-Id: Ia6db8e1f853dbcad3662f1206e461ddd86c33026
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-11-06 17:59:18 +08:00
Jon Lin
008340a82d drivers: rkflash: Change to use the api which the oob area available
Fixes: 69f3c341d9 ("drivers: rkflash: Support spinand non aligned read")
Change-Id: I3146cd574ac77c2d1a0b5b6563440d86766a0a9a
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-10-29 19:28:55 +08:00
Jon Lin
2542a9a36c drivers: rkflash: Fix last data block vpn has been modify issue
Change-Id: Ief1b572d6f1321b9dcdd6d8eae31ff21e2e2f57f
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-10-10 09:30:50 +08:00
Jon Lin
69f3c341d9 drivers: rkflash: Support spinand non aligned read
Change-Id: I185838a57024af141fdd24f076186e3e068df3b1
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-09-27 15:47:48 +08:00
Jon Lin
eff0b09319 drivers: rkflash: Check bad block mark in spare 1st and 2nd byte
Change-Id: I7d1b11be4ef8e1b8aa3cf9deba4463f16a970b07
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-09-16 11:37:56 +08:00
Jon Lin
6ee9b2276f drivers: rkflash: Simplify SPI Nand flash table
1.Simplify SPI Nand flash table
2.Support new SPI Nand devices
3.Format coding styles

Change-Id: Iae7b4c65e646aca5122d47dd9aecad67dbf83f7e
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-09-15 11:16:32 +08:00
Jon Lin
e362770348 drivers: rkflash: Remove SFC reset in initial progress
Only when the host work wrong, run SFC reset.

Change-Id: I582d5697e6166591171c71e099942fad522d972c
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-09-15 11:16:15 +08:00
Jon Lin
a63bb72f90 drivers: rkflash: Support GD5F1GQ5UEYIG
Change-Id: I8fd961f02a1155e1c4f7579f665a55fe754ad210
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-09-01 08:59:04 +08:00
Jon Lin
dd12329e06 drivers: rkflash: Add more information for SPI Nand MTD debug
1.Add more information for SPI Nand MTD debug
2.Return program result

Change-Id: I3fc7d63955355ad88adfbd02f0b67fc16c9d76d5
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-08-31 10:53:09 +08:00
Jon Lin
082cbe0f6d drivers: rkflash: Remove bbt option property if scan fail
Change-Id: Ice861d20077152174d4d407a40239a9142cf3355
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-06-29 08:52:31 +08:00
Jon Lin
70c79c0523 drivers: rkflash: Add cast for function min input
warning: comparison of distinct pointer types lacks a cast
error, forbidden warning:kernel.h:733
  (void) (&_min1 == &_min2);  \

Change-Id: I2311d0bbb32be9b44cc262808d9e2df12b9627b9
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-06-15 10:53:06 +08:00
Jon Lin
57d30184ca drivers: rkflash: Fix error in counting BITS_PER_LONG
Change-Id: I3a76a3a5003fcfcd7c079fd83d67f7161a85708a
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-06-15 10:53:06 +08:00
Jon Lin
781684d716 drivers: rkflash: should not return EIO for ecc corrected case
Change-Id: I637c48f27a4329715ec032a349c0ba56741504be
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-06-04 21:37:24 +08:00
Jon Lin
0435b850fa drivers: rkflash: Add BBT-in-flash management strategy
Change-Id: Ib825c08d60a1c56a78e0799f0acdc1f445d0ed88
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-06-04 21:37:24 +08:00
Jon Lin
e701096a22 drivers: rkflash: Add BBT framework for sfc_nand_mtd
It's a copy of mtd open source code bbt.c

Change-Id: I782b69345ef321938c76b13d6d68dfdd48265b9f
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-06-04 21:37:24 +08:00
Jon Lin
861a739c6b drivers: rkflash: Support mtd sfc nand read/write oob area
Change-Id: I3907dd7ff01b9e925ca9c5eaa0ffa53e9e65bddb
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-06-04 21:37:21 +08:00
Jon Lin
da77c1a5dc drivers: rkflash: Extern sfc nand raw read/write apis
Change-Id: Ib1e8f8cc49eba3a24c4ed85e34d0873ed3c84686
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-06-04 14:42:19 +08:00
Jon Lin
f630cce007 drivers: rkflash: Simplify soft output presetting
Change-Id: Iec38a552aaa3c6dce598787c864fa490da21820b
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-06-04 14:42:04 +08:00
Jon Lin
a78947d29f drivers: rkflash: enable reinit SNOR from snor flash packet
Firstly, init SNOR from flash table, then if this SPI Nor isn't
in flash table, reinit from snor flash packet.

Change-Id: Ia6fc76801ac44f978a198f4d369ade5c0af36f8b
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-04-21 19:12:44 +08:00
Jon Lin
e38982578f drivers: rkflash: support SNOR reinit from snor flash packet
That snor_info_packet is SPI Nor information placed in IDB header
area, each progress can parse it to get flash information.

Change-Id: I101e3720050f8b926d3f3f9da812112a408e5586
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-04-21 19:12:44 +08:00
Jon Lin
9ff22ce691 drivers: rkflash: Fix mtd mark bad strategy
1.Fix wrong return value
2.Results are subject to back reading verification

Change-Id: Ifd3965423261617bdaeecc10fd4da28cb703b2aa
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-04-17 19:16:02 +08:00
Jon Lin
5004921055 drivers: rkflash: Print information if mtd_erase SPI Nand block fail
Change-Id: I7912fece1bbd60ee0f2089534ad9899d8767de06
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-04-17 09:25:16 +08:00
Jon Lin
257152724d drivers: rkflash: Treat ECC fail block as good one
Change-Id: I8c29638230c24fe0f0308bec9318482ad2371124
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-04-17 09:23:28 +08:00
Jon Lin
56d234ee97 drivers: rkflash: fix error in snor_write_status2
Cross function stack border

Change-Id: I7c61cdbf46431dffc36a05312e88dfc6f4674612
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-04-13 17:30:24 +08:00
Jon Lin
43b20a6bf5 drivers: rkflash: support new SPI flash
FS35ND01G, 25Q256JWEQ, EN25QH64A, EN25QH32B, 25Q256JVEM, 25Q256JVEM,
EN25QH32B, BH25Q128AS, BH25Q64BS

Change-Id: Ide4c23123e7c5c246b2f2c6d819a42e3b590ab29
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-04-13 14:29:32 +08:00
Jon Lin
e10d2cae40 drivers: rkflash: support transfer large size data
Change-Id: I07cb3cc2699cfdb43dcad9db58078796ed2f59c4
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-04-13 14:29:32 +08:00
Jon Lin
cd76ab1868 drivers: rkflash: change to use rk_sfc_op for request
Change-Id: I5c82c8178c7641eb1f32b207a2afb0c30a5ef871
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-04-13 14:29:32 +08:00
Jon Lin
7c976c6b64 drivers: rkflash: add nand_mega_area discription
Change-Id: Iab621571536922e4a886c07680bdba4a81d95b43
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-04-13 14:29:32 +08:00
Jon Lin
87d2c3dbf1 drivers: rkflash: update sftl to version SFTL version: 5.0.53 20200303
1.Add more varification for ftl read/write input param
2.dump stack in FtlMemInit

Change-Id: I7a09f54c217d9da8e656cb91fe18ca83a882cff6
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-04-10 20:02:42 +08:00
Jon Lin
003cda69a2 drivers: rkflash: fix compile error
1.more undefined references to `__memzero' follow
2.fix to MTD return value

Change-Id: I1adf89873db1e85568deaf2941867b8d45252eff
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2020-03-30 10:29:36 +08:00
Jon Lin
96f6cb1cfa drivers: rkflash: support upgrade IDB loader which's size large than 128KB with Nandc V9
Change-Id: Ie62fffc0170623796ed6d39e78a6313a93d504d6
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2019-12-09 17:28:04 +08:00
Jon Lin
c568d24da7 drivers: rkflash: fix error in SPI Nand ECC refresh case
Change-Id: I4d4797631270ffc3fb6177dceae3009e63c5fa6a
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2019-12-09 17:28:04 +08:00
Jon Lin
71aba3f2bc drivers: rkflash: decrece reserved IDBlock from 16 to 8
1.Decrece reserved IDBlock from 16 to 8
2.Decrece print info

Change-Id: I69443b0f2381f061176d6f2cf32497f644564093
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2019-12-09 17:28:04 +08:00
Jon Lin
a0b7bf8e57 drivers: rkflash: fix SPI Nand bad block check strategy
Change-Id: Id1ee5c5a3d7442cf19de3ea5190268b395011a89
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2019-12-09 17:28:04 +08:00
Jon Lin
c222309ca5 drivers: rkflash: remove unuse struct define
Change-Id: Ia53cf4fb1bc7c5227fbb7d2e26ec9c580c46f478
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2019-12-09 17:28:04 +08:00
Jon Lin
3cb2d16219 drivers: rkflash: adjust the framework of rkflash
1.Extern all controller low layer driver APIs in rkflash_api.h
2.Register dev when controller node is probed;
3.APIs rkflash_dev_xxx for dev register in rkflash_blk.c, support:
    rkflash_blk: SLC Nand blk dev;
    rkflash_blk: SPI Nand blk dev;
    rkflash_blk: SPI Nor mtd dev;
    spi_nand_mtd: SPI Nand mtd dev;
    spi_nor_mtd: SPI Nor mtd dev;

Change-Id: I5423fead6b6343d1ab94303d30d486dea74b166c
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2019-12-09 17:28:04 +08:00
Jon Lin
0bc7afc683 drivers: rkflash: add SPI Nand flash mtd support
Change-Id: I7dcabc096680cc902316031363fb82a9ea856dbe
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2019-12-09 17:28:04 +08:00
Jon Lin
e2a024e1cc drivers: rkflash: remove using memzero func
Change-Id: I4310c9f0aa75c5d1b0abbd31ba84746a74e1f655
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
2019-10-15 16:13:55 +08:00