Commit Graph

11 Commits

Author SHA1 Message Date
Jason Zhu 0dccd0d87e mtd: mtd_blk: support spi nor read
Change-Id: Id2b60f1e08441504b2feb16b5df8d24acdeefa45
Signed-off-by: Jason Zhu <jason.zhu@rock-chips.com>
2019-10-09 08:47:13 +08:00
Jason Zhu 39e38ab370 mtd: mtd_blk: distinguish the nand driver with spl build and uboot build
Since func nand_read_skip_bad is used in uboot, so just build it in
uboot build. And use func mtd_read to replace it.

Change-Id: Ic5e161f7f03cd2da0099891812360af67a2b9db8
Signed-off-by: Jason Zhu <jason.zhu@rock-chips.com>
2019-09-27 10:27:16 +08:00
Jason Zhu bbb83f5847 mtd: mtd_blk: use nand_read_skip_bad() to read in spi nand driver
Since mtd_read() can not skip bad block if meet bad block, so use
nand_read_skip_bad().

Change-Id: Ic2364b7f29de193412353fad36c86dc6e289e02d
Signed-off-by: Jason Zhu <jason.zhu@rock-chips.com>
2019-08-29 11:48:02 +08:00
Jason Zhu 8cf6fca4b8 mtd: mtd_blk: get mtd through dev_get_priv() when the storage is nand
In the nand mtd, we will use chip info to operate nand, and get the chip
through mtd_to_nand(). So we should get mtd through dev_get_priv() but not
dev_get_uclass_platdata.

Change-Id: I1bacbec49158d04dc947a880dbe3a8043fe3123d
Signed-off-by: Jason Zhu <jason.zhu@rock-chips.com>
2019-08-15 09:16:39 +08:00
Jason Zhu 6e8ac5a8a0 mtd: mtd_blk: support spi nand
Change-Id: I34a0b90d43ec2599b171df965a27750893b766a5
Signed-off-by: Jason Zhu <jason.zhu@rock-chips.com>
2019-08-13 14:26:17 +08:00
Jason Zhu ec6d4288c5 mtd: mtd_blk: test mtd is NULL or not before use
Change-Id: Ie8c34ba5565a5668aeac3883613c089d5bba47a0
Signed-off-by: Jason Zhu <jason.zhu@rock-chips.com>
2019-07-09 14:47:07 +08:00
Jason Zhu c9289edddb mtd: mtd_blk: reserve one block space for gpt table
Reserve one block space for gpt table in mtd part info,
otherwise gpt table will be erased by user program.

Change-Id: I0545c55f7da2b5518ab766ed763b074b7558fd4f
Signed-off-by: Jason Zhu <jason.zhu@rock-chips.com>
2019-06-27 19:52:19 +08:00
Jason Zhu 22dccd1122 mtd: mtd_blk: parse the block part info to mtd part info
Change-Id: Ib4117bf22d1c91a5b2d69a45b6584e8d0cb47021
Signed-off-by: Jason Zhu <jason.zhu@rock-chips.com>
2019-06-24 16:17:39 +08:00
Jason Zhu e6482de4e5 mtd: mtd_blk: get desc->product by mtd->name
Change-Id: I9c089032db87de20fa9a57a9637247df8fac2fbb
Signed-off-by: Jason Zhu <jason.zhu@rock-chips.com>
2019-06-21 15:12:58 +08:00
Jason Zhu f1892190de mtd: add desc->lba to mtd block device
The desc->lba is based on mtd->size: desc->lba = mtd->size >> 9;

If the mtd storage is spi nand or nand flash, reserve 4 blocks
for BBT(Bad Block Table). Then desc->lba is
desc->lba = (mtd->size >> 9) - (mtd->erasesize >> 9) * 4;

Change-Id: I70702623895fe05cec614c4c3ca5f3f6c41d26ca
Signed-off-by: Jason Zhu <jason.zhu@rock-chips.com>
2019-06-18 18:03:33 +08:00
Jason Zhu 054229abb7 mtd: support mtd block model
Attach the mtd driver to block device, then we can call common interface
(blk_dread & blk_dwrite) to operate storage in application layer.

Usage:
Open CONFIG_MTD_BLK & CONFIG_MTD.

Change-Id: I47a969322e2d20c12d46898bdc88f4104e1a15bf
Signed-off-by: Jason Zhu <jason.zhu@rock-chips.com>
2019-06-05 14:47:56 +08:00