diff options
Diffstat (limited to 'drivers/mtd')
| -rw-r--r-- | drivers/mtd/Kconfig | 2 | ||||
| -rw-r--r-- | drivers/mtd/cfi_flash.c | 9 | ||||
| -rw-r--r-- | drivers/mtd/nand/raw/rockchip_nfc.c | 14 | ||||
| -rw-r--r-- | drivers/mtd/renesas_rpc_hf.c | 26 | ||||
| -rw-r--r-- | drivers/mtd/spi/Makefile | 5 | ||||
| -rw-r--r-- | drivers/mtd/spi/sf_probe.c | 8 | ||||
| -rw-r--r-- | drivers/mtd/ubi/part.c | 2 |
7 files changed, 30 insertions, 36 deletions
diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig index 38d6dd142dd..f6bd9f6f2e9 100644 --- a/drivers/mtd/Kconfig +++ b/drivers/mtd/Kconfig @@ -196,7 +196,7 @@ config ALTERA_QSPI config RENESAS_RPC_HF bool "Renesas R-Car Gen3 RPC HyperFlash driver" - depends on RCAR_GEN3 && DM_MTD + depends on RCAR_64 && DM_MTD help This enables access to HyperFlash memory through the Renesas R-Car Gen3 RPC controller. diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c index e50502824ac..cf52abf1554 100644 --- a/drivers/mtd/cfi_flash.c +++ b/drivers/mtd/cfi_flash.c @@ -2407,13 +2407,6 @@ unsigned long flash_init(void) unsigned long size = 0; int i; -#ifdef CONFIG_SYS_FLASH_PROTECTION - /* read environment from EEPROM */ - char s[64]; - - env_get_f("unlock", s, sizeof(s)); -#endif - #ifdef CONFIG_CFI_FLASH /* for driver model */ cfi_flash_init_dm(); #endif @@ -2438,7 +2431,7 @@ unsigned long flash_init(void) #endif /* CONFIG_SYS_FLASH_QUIET_TEST */ } #ifdef CONFIG_SYS_FLASH_PROTECTION - else if (strcmp(s, "yes") == 0) { + else if (env_get_yesno("unlock")) { /* * Only the U-Boot image and it's environment * is protected, all other sectors are diff --git a/drivers/mtd/nand/raw/rockchip_nfc.c b/drivers/mtd/nand/raw/rockchip_nfc.c index ea8e67d1a23..d23a651f369 100644 --- a/drivers/mtd/nand/raw/rockchip_nfc.c +++ b/drivers/mtd/nand/raw/rockchip_nfc.c @@ -440,7 +440,8 @@ static int rk_nfc_write_page_raw(struct mtd_info *mtd, int i, pages_per_blk; pages_per_blk = mtd->erasesize / mtd->writesize; - if ((page < (pages_per_blk * rknand->boot_blks)) && + if ((chip->options & NAND_IS_BOOT_MEDIUM) && + (page < (pages_per_blk * rknand->boot_blks)) && rknand->boot_ecc != ecc->strength) { /* * There's currently no method to notify the MTD framework that @@ -560,7 +561,8 @@ static int rk_nfc_write_page_hwecc(struct mtd_info *mtd, * * Configure the ECC algorithm supported by the boot ROM. */ - if (page < (pages_per_blk * rknand->boot_blks)) { + if ((page < (pages_per_blk * rknand->boot_blks)) && + (chip->options & NAND_IS_BOOT_MEDIUM)) { boot_rom_mode = 1; if (rknand->boot_ecc != ecc->strength) rk_nfc_hw_ecc_setup(chip, rknand->boot_ecc); @@ -624,8 +626,8 @@ static int rk_nfc_read_page_raw(struct mtd_info *mtd, int i, pages_per_blk; pages_per_blk = mtd->erasesize / mtd->writesize; - if ((page < (pages_per_blk * rknand->boot_blks)) && - nfc->selected_bank == 0 && + if ((chip->options & NAND_IS_BOOT_MEDIUM) && + (page < (pages_per_blk * rknand->boot_blks)) && rknand->boot_ecc != ecc->strength) { /* * There's currently no method to notify the MTD framework that @@ -700,8 +702,8 @@ static int rk_nfc_read_page_hwecc(struct mtd_info *mtd, * are used by the boot ROM. * Configure the ECC algorithm supported by the boot ROM. */ - if (page < (pages_per_blk * rknand->boot_blks) && - nfc->selected_bank == 0) { + if ((page < (pages_per_blk * rknand->boot_blks)) && + (chip->options & NAND_IS_BOOT_MEDIUM)) { boot_rom_mode = 1; if (rknand->boot_ecc != ecc->strength) rk_nfc_hw_ecc_setup(chip, rknand->boot_ecc); diff --git a/drivers/mtd/renesas_rpc_hf.c b/drivers/mtd/renesas_rpc_hf.c index 9390c9e9ab3..c94a25fe6a1 100644 --- a/drivers/mtd/renesas_rpc_hf.c +++ b/drivers/mtd/renesas_rpc_hf.c @@ -344,21 +344,21 @@ static int rpc_hf_bind(struct udevice *parent) static int rpc_hf_probe(struct udevice *dev) { - void *blob = (void *)gd->fdt_blob; - const fdt32_t *cell; - int node = dev_of_offset(dev); - int parent, addrc, sizec, len, ret; - struct clk clk; phys_addr_t flash_base; + struct clk clk; + int ret; - parent = fdt_parent_offset(blob, node); - fdt_support_default_count_cells(blob, parent, &addrc, &sizec); - cell = fdt_getprop(blob, node, "reg", &len); - if (!cell) - return -ENOENT; + rpc_base = dev_read_addr_name(dev, "regs"); + if (rpc_base == FDT_ADDR_T_NONE) { + dev_err(dev, "Failed to get RPC control registers\n"); + return -EINVAL; + } - if (addrc != 2 || sizec != 2) + flash_base = dev_read_addr_name(dev, "dirmap"); + if (flash_base == FDT_ADDR_T_NONE) { + dev_err(dev, "Failed to get RPC direct map registers\n"); return -EINVAL; + } ret = clk_get_by_index(dev, 0, &clk); if (ret < 0) { @@ -372,9 +372,6 @@ static int rpc_hf_probe(struct udevice *dev) return ret; } - rpc_base = fdt_translate_address(blob, node, cell); - flash_base = fdt_translate_address(blob, node, cell + addrc + sizec); - flash_info[0].dev = dev; flash_info[0].base = flash_base; cfi_flash_num_flash_banks = 1; @@ -387,6 +384,7 @@ static const struct udevice_id rpc_hf_ids[] = { { .compatible = "renesas,r7s72100-rpc-if" }, { .compatible = "renesas,rcar-gen3-rpc-if" }, { .compatible = "renesas,rcar-gen4-rpc-if" }, + { .compatible = "renesas,rcar-gen5-rpc-if" }, {} }; diff --git a/drivers/mtd/spi/Makefile b/drivers/mtd/spi/Makefile index 44e67cd913a..9a96be11e6d 100644 --- a/drivers/mtd/spi/Makefile +++ b/drivers/mtd/spi/Makefile @@ -8,14 +8,13 @@ spi-nor-y := sf_probe.o spi-nor-ids.o ifdef CONFIG_XPL_BUILD obj-$(CONFIG_SPL_SPI_BOOT) += fsl_espi_spl.o +endif + ifeq ($(CONFIG_$(PHASE_)SPI_FLASH_TINY),y) spi-nor-y += spi-nor-tiny.o else spi-nor-y += spi-nor-core.o endif -else -spi-nor-y += spi-nor-core.o -endif obj-$(CONFIG_SPI_FLASH) += spi-nor.o obj-$(CONFIG_SPI_FLASH_DATAFLASH) += sf_dataflash.o diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c index 7100b64bf22..dee03662d45 100644 --- a/drivers/mtd/spi/sf_probe.c +++ b/drivers/mtd/spi/sf_probe.c @@ -229,9 +229,11 @@ static int spi_flash_std_remove(struct udevice *dev) spi_mem_dirmap_destroy(flash->dirmap.rdesc); } - ret = spi_nor_remove(flash); - if (ret) - return ret; + if (CONFIG_IS_ENABLED(SPI_FLASH_SOFT_RESET)) { + ret = spi_nor_remove(flash); + if (ret) + return ret; + } if (CONFIG_IS_ENABLED(SPI_FLASH_MTD)) spi_flash_mtd_unregister(flash); diff --git a/drivers/mtd/ubi/part.c b/drivers/mtd/ubi/part.c index 6c017eb7299..aff0b109b70 100644 --- a/drivers/mtd/ubi/part.c +++ b/drivers/mtd/ubi/part.c @@ -49,7 +49,7 @@ static int __maybe_unused part_get_info_ubi(struct blk_desc *dev_desc, int part_ if (!vol) return -ENOENT; - snprintf(info->name, PART_NAME_LEN, vol->name); + snprintf(info->name, PART_NAME_LEN, "%s", vol->name); info->start = 0; info->size = (unsigned long)vol->used_bytes / dev_desc->blksz; |
