mtd: mtd_blk: add mtd_blk_map_fit() to create map for fit image
Signed-off-by: Jason Zhu <jason.zhu@rock-chips.com> Change-Id: I0d0195f455ee9afb32676510fc077fe63ae5c7ad
This commit is contained in:
parent
bccbe93430
commit
661bcdfeff
|
|
@ -9,6 +9,7 @@
|
|||
#include <boot_rkimg.h>
|
||||
#include <dm.h>
|
||||
#include <errno.h>
|
||||
#include <image.h>
|
||||
#include <malloc.h>
|
||||
#include <nand.h>
|
||||
#include <part.h>
|
||||
|
|
@ -140,6 +141,34 @@ void mtd_blk_map_partitions(struct blk_desc *desc)
|
|||
}
|
||||
}
|
||||
|
||||
void mtd_blk_map_fit(struct blk_desc *desc, ulong sector, void *fit)
|
||||
{
|
||||
struct mtd_info *mtd = NULL;
|
||||
int totalsize = 0;
|
||||
|
||||
if (desc->if_type != IF_TYPE_MTD)
|
||||
return;
|
||||
|
||||
if (desc->devnum == BLK_MTD_NAND) {
|
||||
#if defined(CONFIG_NAND)
|
||||
mtd = dev_get_priv(desc->bdev->parent);
|
||||
#endif
|
||||
} else if (desc->devnum == BLK_MTD_SPI_NAND) {
|
||||
#if defined(CONFIG_MTD_SPI_NAND)
|
||||
mtd = desc->bdev->priv;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SPL_FIT
|
||||
if (fit_get_totalsize(fit, &totalsize))
|
||||
debug("Can not find /totalsize node.\n");
|
||||
#endif
|
||||
if (mtd && totalsize) {
|
||||
if (mtd_blk_map_table_init(desc, sector << 9, totalsize + (size_t)mtd->erasesize))
|
||||
debug("Map block table fail.\n");
|
||||
}
|
||||
}
|
||||
|
||||
static __maybe_unused int mtd_map_read(struct mtd_info *mtd, loff_t offset,
|
||||
size_t *length, size_t *actual,
|
||||
loff_t lim, u_char *buffer)
|
||||
|
|
|
|||
|
|
@ -16,5 +16,6 @@ int mtd_blk_map_table_init(struct blk_desc *desc,
|
|||
loff_t offset,
|
||||
size_t length);
|
||||
void mtd_blk_map_partitions(struct blk_desc *desc);
|
||||
void mtd_blk_map_fit(struct blk_desc *desc, ulong sector, void *fit);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue