diff options
author | Tom Rini <trini@konsulko.com> | 2019-12-04 17:13:35 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2019-12-04 17:13:35 -0500 |
commit | c1c6e4a9da674bce5980d82f8a70a56e023e58c3 (patch) | |
tree | 46548095b9e4baaa3a7de1d0ce8d07168ad3c01a /drivers | |
parent | 94d022bb400890f22fe35220d2519c3bce73f05e (diff) | |
parent | fb4384490df4e753dcac0478bdb5e912994ef9d6 (diff) | |
download | u-boot-c1c6e4a9da674bce5980d82f8a70a56e023e58c3.tar.gz |
Merge branch '2019-10-27-mtd-cleanup'
- Merge the series to clean up our MTD Kconfig and Makefile logic
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/Makefile | 7 | ||||
-rw-r--r-- | drivers/dfu/Kconfig | 3 | ||||
-rw-r--r-- | drivers/fastboot/Kconfig | 4 | ||||
-rw-r--r-- | drivers/mtd/Kconfig | 20 | ||||
-rw-r--r-- | drivers/mtd/Makefile | 52 | ||||
-rw-r--r-- | drivers/mtd/mtd_uboot.c | 96 | ||||
-rw-r--r-- | drivers/mtd/nand/Makefile | 5 | ||||
-rw-r--r-- | drivers/mtd/nand/bbt.c | 1 | ||||
-rw-r--r-- | drivers/mtd/nand/core.c | 1 | ||||
-rw-r--r-- | drivers/mtd/nand/raw/Kconfig | 10 | ||||
-rw-r--r-- | drivers/mtd/nand/raw/nand.c | 2 | ||||
-rw-r--r-- | drivers/mtd/nand/spi/Kconfig | 2 | ||||
-rw-r--r-- | drivers/mtd/onenand/onenand_uboot.c | 2 | ||||
-rw-r--r-- | drivers/mtd/spi/Kconfig | 2 |
14 files changed, 69 insertions, 138 deletions
diff --git a/drivers/Makefile b/drivers/Makefile index 0befeddfcb..0d1d6bd851 100644 --- a/drivers/Makefile +++ b/drivers/Makefile @@ -11,7 +11,7 @@ obj-$(CONFIG_$(SPL_TPL_)I2C_SUPPORT) += i2c/ obj-$(CONFIG_$(SPL_TPL_)INPUT) += input/ obj-$(CONFIG_$(SPL_TPL_)LED) += led/ obj-$(CONFIG_$(SPL_TPL_)MMC_SUPPORT) += mmc/ -obj-$(CONFIG_$(SPL_TPL_)NAND_SUPPORT) += mtd/nand/raw/ +obj-y += mtd/ obj-$(CONFIG_$(SPL_TPL_)PCH_SUPPORT) += pch/ obj-$(CONFIG_$(SPL_TPL_)PCI) += pci/ obj-$(CONFIG_$(SPL_TPL_)PHY) += phy/ @@ -19,7 +19,6 @@ obj-$(CONFIG_$(SPL_TPL_)PINCTRL) += pinctrl/ obj-$(CONFIG_$(SPL_TPL_)RAM) += ram/ obj-$(CONFIG_$(SPL_TPL_)RTC_SUPPORT) += rtc/ obj-$(CONFIG_$(SPL_TPL_)SERIAL_SUPPORT) += serial/ -obj-$(CONFIG_$(SPL_TPL_)SPI_FLASH_SUPPORT) += mtd/spi/ obj-$(CONFIG_$(SPL_TPL_)SPI_SUPPORT) += spi/ obj-$(CONFIG_$(SPL_TPL_)TIMER) += timer/ obj-$(CONFIG_$(SPL_TPL_)VIRTIO) += virtio/ @@ -42,9 +41,6 @@ obj-$(CONFIG_SPL_POWER_SUPPORT) += power/ power/pmic/ obj-$(CONFIG_SPL_POWER_SUPPORT) += power/regulator/ obj-$(CONFIG_SPL_POWER_DOMAIN) += power/domain/ obj-$(CONFIG_SPL_DM_RESET) += reset/ -obj-$(CONFIG_SPL_MTD_SUPPORT) += mtd/ -obj-$(CONFIG_SPL_ONENAND_SUPPORT) += mtd/onenand/ -obj-$(CONFIG_SPL_UBI) += mtd/ubispl/ obj-$(CONFIG_SPL_DMA_SUPPORT) += dma/ obj-$(CONFIG_SPL_ETH_SUPPORT) += net/ obj-$(CONFIG_SPL_ETH_SUPPORT) += net/phy/ @@ -102,6 +98,7 @@ obj-$(CONFIG_QE) += qe/ obj-$(CONFIG_U_QE) += qe/ obj-y += mailbox/ obj-y += memory/ +obj-y += mtd/ obj-y += pwm/ obj-y += reset/ obj-y += input/ diff --git a/drivers/dfu/Kconfig b/drivers/dfu/Kconfig index 9fe5bc0f58..75fe0a12c6 100644 --- a/drivers/dfu/Kconfig +++ b/drivers/dfu/Kconfig @@ -31,6 +31,7 @@ config DFU_MMC config DFU_NAND bool "NAND back end for DFU" depends on CMD_MTDPARTS + depends on MTD_RAW_NAND help This option enables using DFU to read and write to NAND based storage. @@ -56,7 +57,7 @@ config DFU_SF_PART config DFU_MTD bool "MTD back end for DFU" - depends on MTD + depends on DM_MTD help This option enables using DFU to read and write to on any MTD device. diff --git a/drivers/fastboot/Kconfig b/drivers/fastboot/Kconfig index 433ea0dc3b..9f85054bfb 100644 --- a/drivers/fastboot/Kconfig +++ b/drivers/fastboot/Kconfig @@ -65,7 +65,7 @@ config FASTBOOT_USB_DEV config FASTBOOT_FLASH bool "Enable FASTBOOT FLASH command" default y if ARCH_SUNXI || ARCH_ROCKCHIP - depends on MMC || (NAND && CMD_MTDPARTS) + depends on MMC || (MTD_RAW_NAND && CMD_MTDPARTS) select IMAGE_SPARSE help The fastboot protocol includes a "flash" command for writing @@ -82,7 +82,7 @@ config FASTBOOT_FLASH_MMC config FASTBOOT_FLASH_NAND bool "FASTBOOT on NAND" - depends on NAND && CMD_MTDPARTS + depends on MTD_RAW_NAND && CMD_MTDPARTS endchoice diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig index 37f379d478..5e7571cf3d 100644 --- a/drivers/mtd/Kconfig +++ b/drivers/mtd/Kconfig @@ -4,6 +4,12 @@ config MTD_PARTITIONS bool config MTD + bool "Enable MTD layer" + help + Enable the MTD stack, necessary to interract with NAND, NOR, + SPI-NOR, SPI-NAND, onenand, etc. + +config DM_MTD bool "Enable Driver Model for MTD drivers" depends on DM help @@ -16,12 +22,6 @@ config MTD_NOR_FLASH help Enable support for parallel NOR flash. -config MTD_DEVICE - bool "Enable MTD Device for NAND and ONENAND devices" - help - Adds the MTD device infrastructure from the Linux kernel. - Needed for mtdparts command support. - config FLASH_CFI_DRIVER bool "Enable CFI Flash driver" help @@ -34,7 +34,7 @@ config FLASH_CFI_DRIVER config CFI_FLASH bool "Enable Driver Model for CFI Flash driver" - depends on MTD + depends on DM_MTD help The Common Flash Interface specification was developed by Intel, AMD and other flash manufactures. It provides a universal method @@ -73,7 +73,7 @@ config SYS_FLASH_CFI config ALTERA_QSPI bool "Altera Generic Quad SPI Controller" - depends on MTD + depends on DM_MTD help This enables access to Altera EPCQ/EPCS flash chips using the Altera Generic Quad SPI Controller. The controller converts SPI @@ -82,14 +82,14 @@ config ALTERA_QSPI config FLASH_PIC32 bool "Microchip PIC32 Flash driver" - depends on MACH_PIC32 && MTD + depends on MACH_PIC32 && DM_MTD help This enables access to Microchip PIC32 internal non-CFI flash chips through PIC32 Non-Volatile-Memory Controller. config RENESAS_RPC_HF bool "Renesas RCar Gen3 RPC Hyperflash driver" - depends on RCAR_GEN3 && MTD + depends on RCAR_GEN3 && DM_MTD help This enables access to Hyperflash memory through the Renesas RCar Gen3 RPC controller. diff --git a/drivers/mtd/Makefile b/drivers/mtd/Makefile index 293079d709..318788c5e2 100644 --- a/drivers/mtd/Makefile +++ b/drivers/mtd/Makefile @@ -3,21 +3,41 @@ # (C) Copyright 2000-2007 # Wolfgang Denk, DENX Software Engineering, wd@denx.de. -ifneq (,$(findstring y,$(CONFIG_MTD_DEVICE)$(CONFIG_CMD_NAND)$(CONFIG_CMD_ONENAND)$(CONFIG_CMD_SF)$(CONFIG_CMD_MTD))) -obj-y += mtdcore.o mtd_uboot.o -endif -obj-$(CONFIG_MTD) += mtd-uclass.o -obj-$(CONFIG_MTD_PARTITIONS) += mtdpart.o -obj-$(CONFIG_MTD_CONCAT) += mtdconcat.o -obj-$(CONFIG_ALTERA_QSPI) += altera_qspi.o -obj-$(CONFIG_FLASH_CFI_DRIVER) += cfi_flash.o -obj-$(CONFIG_FLASH_CFI_MTD) += cfi_mtd.o -obj-$(CONFIG_FLASH_CFI_LEGACY) += jedec_flash.o -obj-$(CONFIG_MW_EEPROM) += mw_eeprom.o -obj-$(CONFIG_FLASH_PIC32) += pic32_flash.o -obj-$(CONFIG_ST_SMI) += st_smi.o -obj-$(CONFIG_STM32_FLASH) += stm32_flash.o -obj-$(CONFIG_RENESAS_RPC_HF) += renesas_rpc_hf.o -obj-$(CONFIG_HBMC_AM654) += hbmc-am654.o +mtd-$(CONFIG_MTD) += mtdcore.o mtd_uboot.o +mtd-$(CONFIG_DM_MTD) += mtd-uclass.o +mtd-$(CONFIG_MTD_PARTITIONS) += mtdpart.o +mtd-$(CONFIG_MTD_CONCAT) += mtdconcat.o +mtd-$(CONFIG_ALTERA_QSPI) += altera_qspi.o +mtd-$(CONFIG_FLASH_CFI_DRIVER) += cfi_flash.o +mtd-$(CONFIG_FLASH_CFI_MTD) += cfi_mtd.o +mtd-$(CONFIG_FLASH_CFI_LEGACY) += jedec_flash.o +mtd-$(CONFIG_MW_EEPROM) += mw_eeprom.o +mtd-$(CONFIG_FLASH_PIC32) += pic32_flash.o +mtd-$(CONFIG_ST_SMI) += st_smi.o +mtd-$(CONFIG_STM32_FLASH) += stm32_flash.o +mtd-$(CONFIG_RENESAS_RPC_HF) += renesas_rpc_hf.o +mtd-$(CONFIG_HBMC_AM654) += hbmc-am654.o + +# U-Boot build +ifeq ($(CONFIG_SPL_BUILD)$(CONFIG_TPL_BUILD),) +ifneq ($(mtd-y),) +obj-y += mtd.o +endif obj-y += nand/ +obj-y += onenand/ +obj-y += spi/ +obj-$(CONFIG_MTD_UBI) += ubi/ + +#SPL/TPL build +else + +ifneq ($(mtd-y),) +obj-$(CONFIG_SPL_MTD_SUPPORT) += mtd.o +endif +obj-$(CONFIG_$(SPL_TPL_)NAND_SUPPORT) += nand/ +obj-$(CONFIG_SPL_ONENAND_SUPPORT) += onenand/ +obj-$(CONFIG_$(SPL_TPL_)SPI_FLASH_SUPPORT) += spi/ +obj-$(CONFIG_SPL_UBI) += ubispl/ + +endif diff --git a/drivers/mtd/mtd_uboot.c b/drivers/mtd/mtd_uboot.c index 5574227598..8aeccb016d 100644 --- a/drivers/mtd/mtd_uboot.c +++ b/drivers/mtd/mtd_uboot.c @@ -7,7 +7,6 @@ #include <env.h> #include <dm/device.h> #include <dm/uclass-internal.h> -#include <jffs2/jffs2.h> /* LEGACY */ #include <linux/mtd/mtd.h> #include <linux/mtd/partitions.h> #include <mtd.h> @@ -99,7 +98,7 @@ int mtd_search_alternate_name(const char *mtdname, char *altname, return -EINVAL; } -#if IS_ENABLED(CONFIG_MTD) +#if IS_ENABLED(CONFIG_DM_MTD) static void mtd_probe_uclass_mtd_devs(void) { struct udevice *dev; @@ -356,96 +355,3 @@ int mtd_probe_devices(void) return 0; } #endif /* defined(CONFIG_MTD_PARTITIONS) */ - -/* Legacy */ - -static int get_part(const char *partname, int *idx, loff_t *off, loff_t *size, - loff_t *maxsize, int devtype) -{ -#ifdef CONFIG_CMD_MTDPARTS - struct mtd_device *dev; - struct part_info *part; - u8 pnum; - int ret; - - ret = mtdparts_init(); - if (ret) - return ret; - - ret = find_dev_and_part(partname, &dev, &pnum, &part); - if (ret) - return ret; - - if (dev->id->type != devtype) { - printf("not same typ %d != %d\n", dev->id->type, devtype); - return -1; - } - - *off = part->offset; - *size = part->size; - *maxsize = part->size; - *idx = dev->id->num; - - return 0; -#else - puts("mtdparts support missing.\n"); - return -1; -#endif -} - -int mtd_arg_off(const char *arg, int *idx, loff_t *off, loff_t *size, - loff_t *maxsize, int devtype, uint64_t chipsize) -{ - if (!str2off(arg, off)) - return get_part(arg, idx, off, size, maxsize, devtype); - - if (*off >= chipsize) { - puts("Offset exceeds device limit\n"); - return -1; - } - - *maxsize = chipsize - *off; - *size = *maxsize; - return 0; -} - -int mtd_arg_off_size(int argc, char *const argv[], int *idx, loff_t *off, - loff_t *size, loff_t *maxsize, int devtype, - uint64_t chipsize) -{ - int ret; - - if (argc == 0) { - *off = 0; - *size = chipsize; - *maxsize = *size; - goto print; - } - - ret = mtd_arg_off(argv[0], idx, off, size, maxsize, devtype, - chipsize); - if (ret) - return ret; - - if (argc == 1) - goto print; - - if (!str2off(argv[1], size)) { - printf("'%s' is not a number\n", argv[1]); - return -1; - } - - if (*size > *maxsize) { - puts("Size exceeds partition or device limit\n"); - return -1; - } - -print: - printf("device %d ", *idx); - if (*size == chipsize) - puts("whole chip\n"); - else - printf("offset 0x%llx, size 0x%llx\n", - (unsigned long long)*off, (unsigned long long)*size); - return 0; -} diff --git a/drivers/mtd/nand/Makefile b/drivers/mtd/nand/Makefile index a358bc680e..96e186600a 100644 --- a/drivers/mtd/nand/Makefile +++ b/drivers/mtd/nand/Makefile @@ -1,5 +1,10 @@ # SPDX-License-Identifier: GPL-2.0+ +ifeq ($(CONFIG_SPL_BUILD)$(CONFIG_TPL_BUILD),) nandcore-objs := core.o bbt.o obj-$(CONFIG_MTD_NAND_CORE) += nandcore.o +obj-$(CONFIG_MTD_RAW_NAND) += raw/ obj-$(CONFIG_MTD_SPI_NAND) += spi/ +else +obj-$(CONFIG_$(SPL_TPL_)NAND_SUPPORT) += raw/ +endif diff --git a/drivers/mtd/nand/bbt.c b/drivers/mtd/nand/bbt.c index 7e0ad3190c..f3d05e6757 100644 --- a/drivers/mtd/nand/bbt.c +++ b/drivers/mtd/nand/bbt.c @@ -9,6 +9,7 @@ #define pr_fmt(fmt) "nand-bbt: " fmt +#include <common.h> #include <linux/mtd/nand.h> #ifndef __UBOOT__ #include <linux/slab.h> diff --git a/drivers/mtd/nand/core.c b/drivers/mtd/nand/core.c index 0b793695cc..3abaef23c5 100644 --- a/drivers/mtd/nand/core.c +++ b/drivers/mtd/nand/core.c @@ -9,6 +9,7 @@ #define pr_fmt(fmt) "nand: " fmt +#include <common.h> #ifndef __UBOOT__ #include <linux/module.h> #endif diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig index 2000826c79..16165f8839 100644 --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig @@ -1,7 +1,7 @@ -menuconfig NAND +menuconfig MTD_RAW_NAND bool "Raw NAND Device Support" -if NAND +if MTD_RAW_NAND config SYS_NAND_SELF_INIT bool @@ -67,7 +67,7 @@ endif config NAND_BRCMNAND bool "Support Broadcom NAND controller" - depends on OF_CONTROL && DM && MTD + depends on OF_CONTROL && DM && DM_MTD help Enable the driver for NAND flash on platforms using a Broadcom NAND controller. @@ -173,7 +173,7 @@ if NAND_VF610_NFC config NAND_VF610_NFC_DT bool "Support Vybrid's vf610 NAND controller as a DT device" - depends on OF_CONTROL && MTD + depends on OF_CONTROL && DM_MTD help Enable the driver for Vybrid's vf610 NAND flash on platforms using device tree. @@ -266,7 +266,7 @@ if NAND_MXS config NAND_MXS_DT bool "Support MXS NAND controller as a DT device" - depends on OF_CONTROL && MTD + depends on OF_CONTROL && DM_MTD help Enable the driver for MXS NAND flash on platforms using device tree. diff --git a/drivers/mtd/nand/raw/nand.c b/drivers/mtd/nand/raw/nand.c index bca51ffbf2..026419e4e6 100644 --- a/drivers/mtd/nand/raw/nand.c +++ b/drivers/mtd/nand/raw/nand.c @@ -59,7 +59,7 @@ int nand_register(int devnum, struct mtd_info *mtd) sprintf(dev_name[devnum], "nand%d", devnum); mtd->name = dev_name[devnum]; -#ifdef CONFIG_MTD_DEVICE +#ifdef CONFIG_MTD /* * Add MTD device so that we can reference it later * via the mtdcore infrastructure (e.g. ubi). diff --git a/drivers/mtd/nand/spi/Kconfig b/drivers/mtd/nand/spi/Kconfig index 2197cb531f..0777dfdf0a 100644 --- a/drivers/mtd/nand/spi/Kconfig +++ b/drivers/mtd/nand/spi/Kconfig @@ -1,6 +1,6 @@ menuconfig MTD_SPI_NAND bool "SPI NAND device Support" - depends on MTD && DM_SPI + depends on DM_MTD && DM_SPI select MTD_NAND_CORE select SPI_MEM help diff --git a/drivers/mtd/onenand/onenand_uboot.c b/drivers/mtd/onenand/onenand_uboot.c index c15ec9df07..6893394e08 100644 --- a/drivers/mtd/onenand/onenand_uboot.c +++ b/drivers/mtd/onenand/onenand_uboot.c @@ -43,7 +43,7 @@ void onenand_init(void) puts("Flex-"); puts("OneNAND: "); -#ifdef CONFIG_MTD_DEVICE +#ifdef CONFIG_MTD /* * Add MTD device so that we can reference it later * via the mtdcore infrastructure (e.g. ubi). diff --git a/drivers/mtd/spi/Kconfig b/drivers/mtd/spi/Kconfig index d77f818505..018e8c597e 100644 --- a/drivers/mtd/spi/Kconfig +++ b/drivers/mtd/spi/Kconfig @@ -186,7 +186,7 @@ config SPI_FLASH_DATAFLASH config SPI_FLASH_MTD bool "SPI Flash MTD support" - depends on SPI_FLASH + depends on SPI_FLASH && MTD help Enable the MTD support for spi flash layer, this adapter is for translating mtd_read/mtd_write commands into spi_flash_read/write |