[PATCH 0/9] Incorrect Kconfig dependencies

Hi,
I wanted to take a look at running randconfig and I found that there are a lot of issues in connection to setting up right dependencies. This is visible when you run make randconfig and going through reported issues. I have created several patches to fix them. I am not quite sure if it is more recommended to use more depends on instead of selecting missing options. Please let me know what's the preferred way.
Thanks, Michal
Michal Simek (9): pci: kconfig: Setup proper dependency for PCIE_ROCKCHIP cmd: Kconfig: Add missing dependency for cmd gpt cmd: Kconfig: Change dependency for CMD_ADC nand: Kconfig: Change dependency for NAND_ARASAN cmd: Kconfig: Change dependency of CMD_USB_SDP arc: Kconfig: Add missing DM dependency ARM: zynqmp: Fix SPL_DM_SPI dependencies cmd: Kconfig: Fix dependencies for CMD_USB_MASS_STORAGE env: Kconfig: Add missing dependency for ENV_IS_IN_EXT4
arch/Kconfig | 1 + arch/arm/Kconfig | 3 ++- cmd/Kconfig | 7 ++++--- drivers/mtd/nand/raw/Kconfig | 2 +- drivers/pci/Kconfig | 1 + env/Kconfig | 1 + 6 files changed, 10 insertions(+), 5 deletions(-)

There is missing dependency for PCIE_ROCKCHIP which selects PHY_ROCKCHIP_PCIE which directly depends on ARCH_ROCKCHIP.
WARNING: unmet direct dependencies detected for PHY_ROCKCHIP_PCIE Depends on [n]: ARCH_ROCKCHIP [=n] Selected by [y]: - PCIE_ROCKCHIP [=y] && PCI [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com ---
Got this issue via randconfig --- drivers/pci/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig index 5e0a39396bb0..cb41c4f55bba 100644 --- a/drivers/pci/Kconfig +++ b/drivers/pci/Kconfig @@ -223,6 +223,7 @@ config PCIE_MEDIATEK
config PCIE_ROCKCHIP bool "Enable Rockchip PCIe driver" + depends on ARCH_ROCKCHIP select DM_PCI select PHY_ROCKCHIP_PCIE default y if ROCKCHIP_RK3399

On Wed, Aug 19, 2020 at 10:44:15AM +0200, Michal Simek wrote:
There is missing dependency for PCIE_ROCKCHIP which selects PHY_ROCKCHIP_PCIE which directly depends on ARCH_ROCKCHIP.
WARNING: unmet direct dependencies detected for PHY_ROCKCHIP_PCIE Depends on [n]: ARCH_ROCKCHIP [=n] Selected by [y]:
- PCIE_ROCKCHIP [=y] && PCI [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com
Got this issue via randconfig
drivers/pci/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig index 5e0a39396bb0..cb41c4f55bba 100644 --- a/drivers/pci/Kconfig +++ b/drivers/pci/Kconfig @@ -223,6 +223,7 @@ config PCIE_MEDIATEK
config PCIE_ROCKCHIP bool "Enable Rockchip PCIe driver"
- depends on ARCH_ROCKCHIP select DM_PCI select PHY_ROCKCHIP_PCIE default y if ROCKCHIP_RK3399
Since we probably can't enable this on sandbox, this is probably right.
Reviewed-by: Tom Rini trini@konsulko.com

On Wed, Aug 19, 2020 at 10:44:15AM +0200, Michal Simek wrote:
There is missing dependency for PCIE_ROCKCHIP which selects PHY_ROCKCHIP_PCIE which directly depends on ARCH_ROCKCHIP.
WARNING: unmet direct dependencies detected for PHY_ROCKCHIP_PCIE Depends on [n]: ARCH_ROCKCHIP [=n] Selected by [y]:
- PCIE_ROCKCHIP [=y] && PCI [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com Reviewed-by: Tom Rini trini@konsulko.com
Applied to u-boot/master, thanks!

Command gpt select PARTITION_UUIDS which depends on PARTITIONS which is doesn't need to be enabled.
Kconfig reports it like this.
WARNING: unmet direct dependencies detected for PARTITION_UUIDS Depends on [n]: PARTITIONS [=n] Selected by [y]: - CMD_GPT [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com ---
cmd/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/cmd/Kconfig b/cmd/Kconfig index 9ad511aa176f..692fae5b8e89 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1012,6 +1012,7 @@ config CMD_GPT bool "GPT (GUID Partition Table) command" select EFI_PARTITION select HAVE_BLOCK_DEVICE + select PARTITIONS select PARTITION_UUIDS imply RANDOM_UUID help

On 19.08.20 10:44, Michal Simek wrote:
Command gpt select PARTITION_UUIDS which depends on PARTITIONS which is doesn't need to be enabled.
Kconfig reports it like this.
WARNING: unmet direct dependencies detected for PARTITION_UUIDS Depends on [n]: PARTITIONS [=n] Selected by [y]:
- CMD_GPT [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com
cmd/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/cmd/Kconfig b/cmd/Kconfig index 9ad511aa176f..692fae5b8e89 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1012,6 +1012,7 @@ config CMD_GPT bool "GPT (GUID Partition Table) command" select EFI_PARTITION select HAVE_BLOCK_DEVICE
- select PARTITIONS select PARTITION_UUIDS
It would be preferable to use "depends" instead of "select".
You don't want anybody to select this command on a device that does not even have block devices.
Best regards
Heinrich
imply RANDOM_UUID help

On 19. 08. 20 10:46, Heinrich Schuchardt wrote:
On 19.08.20 10:44, Michal Simek wrote:
Command gpt select PARTITION_UUIDS which depends on PARTITIONS which is doesn't need to be enabled.
Kconfig reports it like this.
WARNING: unmet direct dependencies detected for PARTITION_UUIDS Depends on [n]: PARTITIONS [=n] Selected by [y]:
- CMD_GPT [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com
cmd/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/cmd/Kconfig b/cmd/Kconfig index 9ad511aa176f..692fae5b8e89 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1012,6 +1012,7 @@ config CMD_GPT bool "GPT (GUID Partition Table) command" select EFI_PARTITION select HAVE_BLOCK_DEVICE
- select PARTITIONS select PARTITION_UUIDS
It would be preferable to use "depends" instead of "select".
You don't want anybody to select this command on a device that does not even have block devices.
Do we have any doc which is talking about preferred ways?
If you look at all patches I have used mostly depends on instead of select with 2 exception. This patch and then last one 9/9.
In this case I use select because as you use there is already a lot of other selection for EFI, BLOCK_DEVICE and UUIDS.
Thanks, Michal

On 19.08.20 10:51, Michal Simek wrote:
On 19. 08. 20 10:46, Heinrich Schuchardt wrote:
On 19.08.20 10:44, Michal Simek wrote:
Command gpt select PARTITION_UUIDS which depends on PARTITIONS which is doesn't need to be enabled.
Kconfig reports it like this.
WARNING: unmet direct dependencies detected for PARTITION_UUIDS Depends on [n]: PARTITIONS [=n] Selected by [y]:
- CMD_GPT [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com
cmd/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/cmd/Kconfig b/cmd/Kconfig index 9ad511aa176f..692fae5b8e89 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1012,6 +1012,7 @@ config CMD_GPT bool "GPT (GUID Partition Table) command" select EFI_PARTITION select HAVE_BLOCK_DEVICE
- select PARTITIONS select PARTITION_UUIDS
It would be preferable to use "depends" instead of "select".
You don't want anybody to select this command on a device that does not even have block devices.
Do we have any doc which is talking about preferred ways?
If you look at all patches I have used mostly depends on instead of select with 2 exception. This patch and then last one 9/9.
In this case I use select because as you use there is already a lot of other selection for EFI, BLOCK_DEVICE and UUIDS.
Select allows you to set something whose own dependencies are not fulfilled. So depends is preferable.
Best regards
Heinrich

On Wed, Aug 19, 2020 at 10:51:51AM +0200, Michal Simek wrote:
On 19. 08. 20 10:46, Heinrich Schuchardt wrote:
On 19.08.20 10:44, Michal Simek wrote:
Command gpt select PARTITION_UUIDS which depends on PARTITIONS which is doesn't need to be enabled.
Kconfig reports it like this.
WARNING: unmet direct dependencies detected for PARTITION_UUIDS Depends on [n]: PARTITIONS [=n] Selected by [y]:
- CMD_GPT [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com
cmd/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/cmd/Kconfig b/cmd/Kconfig index 9ad511aa176f..692fae5b8e89 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1012,6 +1012,7 @@ config CMD_GPT bool "GPT (GUID Partition Table) command" select EFI_PARTITION select HAVE_BLOCK_DEVICE
- select PARTITIONS select PARTITION_UUIDS
It would be preferable to use "depends" instead of "select".
You don't want anybody to select this command on a device that does not even have block devices.
Do we have any doc which is talking about preferred ways?
If you look at all patches I have used mostly depends on instead of select with 2 exception. This patch and then last one 9/9.
In this case I use select because as you use there is already a lot of other selection for EFI, BLOCK_DEVICE and UUIDS.
We don't have a preferred way to solve these problems because it depends on what the problem even is to start with. Library type functionality should be select'd while configurable functionality should be depend'd on.
In this case, PARTITION_UUIDS enables code in disk/part_dos.c and disk/part_efi.c to get and store UUID information from the existing table (and cmd/gpt.c is setting/etc those UUIDs).
So I suspect audit'ing these symbols down further to see what the code usage of them requires is and going back up to the Kconfig logic is what's needed here.

CMD_ADC selected DM_REGULATOR unconditionally without enabling DM. That's why change select to depends on to cover it.
Kconfig is showing this issue as: WARNING: unmet direct dependencies detected for REGMAP Depends on [n]: DM [=n] Selected by [y]: - DM_REGULATOR_PBIAS [=y] && DM_REGULATOR [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com ---
cmd/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cmd/Kconfig b/cmd/Kconfig index 692fae5b8e89..bd3559ae6c12 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -854,7 +854,7 @@ config CMD_ARMFLASH config CMD_ADC bool "adc - Access Analog to Digital Converters info and data" select ADC - select DM_REGULATOR + depends on DM_REGULATOR help Shows ADC device info and permit printing one-shot analog converted data from a named Analog to Digital Converter.

On Wed, Aug 19, 2020 at 10:44:17AM +0200, Michal Simek wrote:
CMD_ADC selected DM_REGULATOR unconditionally without enabling DM. That's why change select to depends on to cover it.
Kconfig is showing this issue as: WARNING: unmet direct dependencies detected for REGMAP Depends on [n]: DM [=n] Selected by [y]:
- DM_REGULATOR_PBIAS [=y] && DM_REGULATOR [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com
Reviewed-by: Tom Rini trini@konsulko.com

On Wed, Aug 19, 2020 at 10:44:17AM +0200, Michal Simek wrote:
CMD_ADC selected DM_REGULATOR unconditionally without enabling DM. That's why change select to depends on to cover it.
Kconfig is showing this issue as: WARNING: unmet direct dependencies detected for REGMAP Depends on [n]: DM [=n] Selected by [y]:
- DM_REGULATOR_PBIAS [=y] && DM_REGULATOR [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com Reviewed-by: Tom Rini trini@konsulko.com
Applied to u-boot/master, thanks!

NAND_ARASAN selecting DM_MTD uunconditionally. Driver can be enabled with !DM that's why Kconfig it showing it as error:
WARNING: unmet direct dependencies detected for DM_MTD Depends on [n]: DM [=n] Selected by [y]: - NAND_ARASAN [=y] && MTD_RAW_NAND [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com ---
drivers/mtd/nand/raw/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig index 06b2ff972cad..df4cbd52cf5c 100644 --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig @@ -233,7 +233,7 @@ endif config NAND_ARASAN bool "Configure Arasan Nand" select SYS_NAND_SELF_INIT - select DM_MTD + depends on DM_MTD imply CMD_NAND help This enables Nand driver support for Arasan nand flash

On Wed, Aug 19, 2020 at 10:44:18AM +0200, Michal Simek wrote:
NAND_ARASAN selecting DM_MTD uunconditionally. Driver can be enabled with !DM that's why Kconfig it showing it as error:
WARNING: unmet direct dependencies detected for DM_MTD Depends on [n]: DM [=n] Selected by [y]:
- NAND_ARASAN [=y] && MTD_RAW_NAND [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com
drivers/mtd/nand/raw/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig index 06b2ff972cad..df4cbd52cf5c 100644 --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig @@ -233,7 +233,7 @@ endif config NAND_ARASAN bool "Configure Arasan Nand" select SYS_NAND_SELF_INIT
- select DM_MTD
- depends on DM_MTD imply CMD_NAND help This enables Nand driver support for Arasan nand flash
If we can use the driver without DM then we can't depend nor select DM_MTD. Is someone using the driver still without DM_MTD?

On 19. 08. 20 14:31, Tom Rini wrote:
On Wed, Aug 19, 2020 at 10:44:18AM +0200, Michal Simek wrote:
NAND_ARASAN selecting DM_MTD uunconditionally. Driver can be enabled with !DM that's why Kconfig it showing it as error:
WARNING: unmet direct dependencies detected for DM_MTD Depends on [n]: DM [=n] Selected by [y]:
- NAND_ARASAN [=y] && MTD_RAW_NAND [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com
drivers/mtd/nand/raw/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig index 06b2ff972cad..df4cbd52cf5c 100644 --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig @@ -233,7 +233,7 @@ endif config NAND_ARASAN bool "Configure Arasan Nand" select SYS_NAND_SELF_INIT
- select DM_MTD
- depends on DM_MTD imply CMD_NAND help This enables Nand driver support for Arasan nand flash
If we can use the driver without DM then we can't depend nor select DM_MTD. Is someone using the driver still without DM_MTD?
Driver has been converted to DM already. It is used by ZynqMP platforms. And it can't be used without DM_MTD.
commit b014b833bd627d27542b50e71df9cf0628f241e7 Author: Ashok Reddy Soma ashok.reddy.soma@xilinx.com AuthorDate: Thu Dec 19 02:27:42 2019 -0700 Commit: Michal Simek michal.simek@xilinx.com CommitDate: Tue Jan 14 09:05:52 2020 +0100
mtd: nand: Move arasan nand driver to driver model
Make changes to arasan nand driver to move it to driver model. Select DM_MTD if arasan nand driver is selected.
Signed-off-by: Ashok Reddy Soma ashok.reddy.soma@xilinx.com Signed-off-by: Michal Simek michal.simek@xilinx.com
Thanks, Michal

On Wed, Aug 19, 2020 at 02:36:20PM +0200, Michal Simek wrote:
On 19. 08. 20 14:31, Tom Rini wrote:
On Wed, Aug 19, 2020 at 10:44:18AM +0200, Michal Simek wrote:
NAND_ARASAN selecting DM_MTD uunconditionally. Driver can be enabled with !DM that's why Kconfig it showing it as error:
WARNING: unmet direct dependencies detected for DM_MTD Depends on [n]: DM [=n] Selected by [y]:
- NAND_ARASAN [=y] && MTD_RAW_NAND [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com
drivers/mtd/nand/raw/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig index 06b2ff972cad..df4cbd52cf5c 100644 --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig @@ -233,7 +233,7 @@ endif config NAND_ARASAN bool "Configure Arasan Nand" select SYS_NAND_SELF_INIT
- select DM_MTD
- depends on DM_MTD imply CMD_NAND help This enables Nand driver support for Arasan nand flash
If we can use the driver without DM then we can't depend nor select DM_MTD. Is someone using the driver still without DM_MTD?
Driver has been converted to DM already. It is used by ZynqMP platforms. And it can't be used without DM_MTD.
commit b014b833bd627d27542b50e71df9cf0628f241e7 Author: Ashok Reddy Soma ashok.reddy.soma@xilinx.com AuthorDate: Thu Dec 19 02:27:42 2019 -0700 Commit: Michal Simek michal.simek@xilinx.com CommitDate: Tue Jan 14 09:05:52 2020 +0100
mtd: nand: Move arasan nand driver to driver model Make changes to arasan nand driver to move it to driver model. Select DM_MTD if arasan nand driver is selected. Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Ah, I misunderstood the comment, sorry. Yes, this is right then, thanks.
Reviewed-by: Tom Rini trini@konsulko.com

On 19. 08. 20 14:43, Tom Rini wrote:
On Wed, Aug 19, 2020 at 02:36:20PM +0200, Michal Simek wrote:
On 19. 08. 20 14:31, Tom Rini wrote:
On Wed, Aug 19, 2020 at 10:44:18AM +0200, Michal Simek wrote:
NAND_ARASAN selecting DM_MTD uunconditionally. Driver can be enabled with !DM that's why Kconfig it showing it as error:
WARNING: unmet direct dependencies detected for DM_MTD Depends on [n]: DM [=n] Selected by [y]:
- NAND_ARASAN [=y] && MTD_RAW_NAND [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com
drivers/mtd/nand/raw/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig index 06b2ff972cad..df4cbd52cf5c 100644 --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig @@ -233,7 +233,7 @@ endif config NAND_ARASAN bool "Configure Arasan Nand" select SYS_NAND_SELF_INIT
- select DM_MTD
- depends on DM_MTD imply CMD_NAND help This enables Nand driver support for Arasan nand flash
If we can use the driver without DM then we can't depend nor select DM_MTD. Is someone using the driver still without DM_MTD?
Driver has been converted to DM already. It is used by ZynqMP platforms. And it can't be used without DM_MTD.
commit b014b833bd627d27542b50e71df9cf0628f241e7 Author: Ashok Reddy Soma ashok.reddy.soma@xilinx.com AuthorDate: Thu Dec 19 02:27:42 2019 -0700 Commit: Michal Simek michal.simek@xilinx.com CommitDate: Tue Jan 14 09:05:52 2020 +0100
mtd: nand: Move arasan nand driver to driver model Make changes to arasan nand driver to move it to driver model. Select DM_MTD if arasan nand driver is selected. Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Ah, I misunderstood the comment, sorry. Yes, this is right then, thanks.
Reviewed-by: Tom Rini trini@konsulko.com
ok. I just need to enable this symbol for zynqmp platforms.
Thanks, Michal

On Wed, Aug 19, 2020 at 02:52:11PM +0200, Michal Simek wrote:
On 19. 08. 20 14:43, Tom Rini wrote:
On Wed, Aug 19, 2020 at 02:36:20PM +0200, Michal Simek wrote:
On 19. 08. 20 14:31, Tom Rini wrote:
On Wed, Aug 19, 2020 at 10:44:18AM +0200, Michal Simek wrote:
NAND_ARASAN selecting DM_MTD uunconditionally. Driver can be enabled with !DM that's why Kconfig it showing it as error:
WARNING: unmet direct dependencies detected for DM_MTD Depends on [n]: DM [=n] Selected by [y]:
- NAND_ARASAN [=y] && MTD_RAW_NAND [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com
drivers/mtd/nand/raw/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig index 06b2ff972cad..df4cbd52cf5c 100644 --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig @@ -233,7 +233,7 @@ endif config NAND_ARASAN bool "Configure Arasan Nand" select SYS_NAND_SELF_INIT
- select DM_MTD
- depends on DM_MTD imply CMD_NAND help This enables Nand driver support for Arasan nand flash
If we can use the driver without DM then we can't depend nor select DM_MTD. Is someone using the driver still without DM_MTD?
Driver has been converted to DM already. It is used by ZynqMP platforms. And it can't be used without DM_MTD.
commit b014b833bd627d27542b50e71df9cf0628f241e7 Author: Ashok Reddy Soma ashok.reddy.soma@xilinx.com AuthorDate: Thu Dec 19 02:27:42 2019 -0700 Commit: Michal Simek michal.simek@xilinx.com CommitDate: Tue Jan 14 09:05:52 2020 +0100
mtd: nand: Move arasan nand driver to driver model Make changes to arasan nand driver to move it to driver model. Select DM_MTD if arasan nand driver is selected. Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Ah, I misunderstood the comment, sorry. Yes, this is right then, thanks.
Reviewed-by: Tom Rini trini@konsulko.com
ok. I just need to enable this symbol for zynqmp platforms.
That is the hard part about all of these patches, when you go from "select X" to "depends on X", you also need to run a script and make sure that every config that enables the main symbol (NAND_ARASAN) also enables the now depended on symbol (DM_MTD) and sync the configs after the change.

On 19. 08. 20 15:15, Tom Rini wrote:
On Wed, Aug 19, 2020 at 02:52:11PM +0200, Michal Simek wrote:
On 19. 08. 20 14:43, Tom Rini wrote:
On Wed, Aug 19, 2020 at 02:36:20PM +0200, Michal Simek wrote:
On 19. 08. 20 14:31, Tom Rini wrote:
On Wed, Aug 19, 2020 at 10:44:18AM +0200, Michal Simek wrote:
NAND_ARASAN selecting DM_MTD uunconditionally. Driver can be enabled with !DM that's why Kconfig it showing it as error:
WARNING: unmet direct dependencies detected for DM_MTD Depends on [n]: DM [=n] Selected by [y]:
- NAND_ARASAN [=y] && MTD_RAW_NAND [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com
drivers/mtd/nand/raw/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig index 06b2ff972cad..df4cbd52cf5c 100644 --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig @@ -233,7 +233,7 @@ endif config NAND_ARASAN bool "Configure Arasan Nand" select SYS_NAND_SELF_INIT
- select DM_MTD
- depends on DM_MTD imply CMD_NAND help This enables Nand driver support for Arasan nand flash
If we can use the driver without DM then we can't depend nor select DM_MTD. Is someone using the driver still without DM_MTD?
Driver has been converted to DM already. It is used by ZynqMP platforms. And it can't be used without DM_MTD.
commit b014b833bd627d27542b50e71df9cf0628f241e7 Author: Ashok Reddy Soma ashok.reddy.soma@xilinx.com AuthorDate: Thu Dec 19 02:27:42 2019 -0700 Commit: Michal Simek michal.simek@xilinx.com CommitDate: Tue Jan 14 09:05:52 2020 +0100
mtd: nand: Move arasan nand driver to driver model Make changes to arasan nand driver to move it to driver model. Select DM_MTD if arasan nand driver is selected. Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Ah, I misunderstood the comment, sorry. Yes, this is right then, thanks.
Reviewed-by: Tom Rini trini@konsulko.com
ok. I just need to enable this symbol for zynqmp platforms.
That is the hard part about all of these patches, when you go from "select X" to "depends on X", you also need to run a script and make sure that every config that enables the main symbol (NAND_ARASAN) also enables the now depended on symbol (DM_MTD) and sync the configs after the change.
This one is easy but others can be problematic. But there is serious issue with these symbols. When you run make randconfig you see unfortunately a lot of issues reported.
Do you use any tool/script for defconfig update when Kconfig layout has changed?
Thanks, Michal

st 19. 8. 2020 v 10:44 odesílatel Michal Simek michal.simek@xilinx.com napsal:
NAND_ARASAN selecting DM_MTD uunconditionally. Driver can be enabled with !DM that's why Kconfig it showing it as error:
WARNING: unmet direct dependencies detected for DM_MTD Depends on [n]: DM [=n] Selected by [y]:
- NAND_ARASAN [=y] && MTD_RAW_NAND [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com
drivers/mtd/nand/raw/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig index 06b2ff972cad..df4cbd52cf5c 100644 --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig @@ -233,7 +233,7 @@ endif config NAND_ARASAN bool "Configure Arasan Nand" select SYS_NAND_SELF_INIT
select DM_MTD
depends on DM_MTD imply CMD_NAND help This enables Nand driver support for Arasan nand flash
-- 2.28.0
Applied just this one patch with defconfig sync. M

USB_FUNCTION_SDP depends on USB_GADGET_DOWNLOAD to be enabled which is not reflect in Kconfig. Fix it by changing select to depends on for CMD_USB_SDP command. Kconfig is reporting it as: WARNING: unmet direct dependencies detected for USB_FUNCTION_SDP Depends on [n]: USB [=n] && USB_GADGET [=n] && USB_GADGET_DOWNLOAD [=n] Selected by [y]: - CMD_USB_SDP [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com ---
cmd/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cmd/Kconfig b/cmd/Kconfig index bd3559ae6c12..f291c8cbf423 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1351,7 +1351,7 @@ config CMD_USB
config CMD_USB_SDP bool "sdp" - select USB_FUNCTION_SDP + depends on USB_FUNCTION_SDP help Enables the command "sdp" which is used to have U-Boot emulating the Serial Download Protocol (SDP) via USB.

On Wed, Aug 19, 2020 at 10:44:19AM +0200, Michal Simek wrote:
USB_FUNCTION_SDP depends on USB_GADGET_DOWNLOAD to be enabled which is not reflect in Kconfig. Fix it by changing select to depends on for CMD_USB_SDP command. Kconfig is reporting it as: WARNING: unmet direct dependencies detected for USB_FUNCTION_SDP Depends on [n]: USB [=n] && USB_GADGET [=n] && USB_GADGET_DOWNLOAD [=n] Selected by [y]:
- CMD_USB_SDP [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com
cmd/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cmd/Kconfig b/cmd/Kconfig index bd3559ae6c12..f291c8cbf423 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1351,7 +1351,7 @@ config CMD_USB
config CMD_USB_SDP bool "sdp"
- select USB_FUNCTION_SDP
- depends on USB_FUNCTION_SDP help Enables the command "sdp" which is used to have U-Boot emulating the Serial Download Protocol (SDP) via USB.
Based on usage, USB_FUNCTION_SDP looks to really be a library type function. Adding some iMX folks as it's used there, and Lokesh since the K2G platforms enable the library side, but I don't think use it?

ARC is selecting TIMER which depends on DM but DM is not selected and doesn't need to be enabled. Fix it by selecting DM for ARC architecture.
Kconfig is showing this missing dependency by: WARNING: unmet direct dependencies detected for TIMER Depends on [n]: DM [=n] Selected by [y]: - ARC [=y] && <choice>
Signed-off-by: Michal Simek michal.simek@xilinx.com ---
arch/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/arch/Kconfig b/arch/Kconfig index e4a0a0230c1f..683e38431906 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -12,6 +12,7 @@ config ARC bool "ARC architecture" select ARC_TIMER select CLK + select DM select HAVE_PRIVATE_LIBGCC select SUPPORT_OF_CONTROL select TIMER

On Wed, 19 Aug 2020 at 02:44, Michal Simek michal.simek@xilinx.com wrote:
ARC is selecting TIMER which depends on DM but DM is not selected and doesn't need to be enabled. Fix it by selecting DM for ARC architecture.
Kconfig is showing this missing dependency by: WARNING: unmet direct dependencies detected for TIMER Depends on [n]: DM [=n] Selected by [y]:
- ARC [=y] && <choice>
Signed-off-by: Michal Simek michal.simek@xilinx.com
arch/Kconfig | 1 + 1 file changed, 1 insertion(+)
Reviewed-by: Simon Glass sjg@chromium.org

On Wed, Aug 19, 2020 at 10:44:20AM +0200, Michal Simek wrote:
ARC is selecting TIMER which depends on DM but DM is not selected and doesn't need to be enabled. Fix it by selecting DM for ARC architecture.
Kconfig is showing this missing dependency by: WARNING: unmet direct dependencies detected for TIMER Depends on [n]: DM [=n] Selected by [y]:
- ARC [=y] && <choice>
Signed-off-by: Michal Simek michal.simek@xilinx.com Reviewed-by: Simon Glass sjg@chromium.org
Applied to u-boot/master, thanks!

Add missing dependencies for DM_SPI_FLASH. Kconfig reports it as: WARNING: unmet direct dependencies detected for SPL_DM_SPI_FLASH Depends on [n]: SPL [=n] && SPL_DM [=n] Selected by [y]: - ARCH_ZYNQMP [=y] && <choice> && SPL_DM_SPI [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com ---
arch/arm/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index bb71b1647650..1d8e6975fe57 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1153,7 +1153,8 @@ config ARCH_ZYNQMP select OF_CONTROL select SPL_BOARD_INIT if SPL select SPL_CLK if SPL - select SPL_DM_SPI if SPI + select SPL_DM if SPL + select SPL_DM_SPI if SPI && SPL_DM select SPL_DM_SPI_FLASH if SPL_DM_SPI select SPL_DM_MAILBOX if SPL select SPL_FIRMWARE if SPL

st 19. 8. 2020 v 10:44 odesílatel Michal Simek michal.simek@xilinx.com napsal:
Add missing dependencies for DM_SPI_FLASH. Kconfig reports it as: WARNING: unmet direct dependencies detected for SPL_DM_SPI_FLASH Depends on [n]: SPL [=n] && SPL_DM [=n] Selected by [y]:
- ARCH_ZYNQMP [=y] && <choice> && SPL_DM_SPI [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com
arch/arm/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index bb71b1647650..1d8e6975fe57 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1153,7 +1153,8 @@ config ARCH_ZYNQMP select OF_CONTROL select SPL_BOARD_INIT if SPL select SPL_CLK if SPL
select SPL_DM_SPI if SPI
select SPL_DM if SPL
select SPL_DM_SPI if SPI && SPL_DM select SPL_DM_SPI_FLASH if SPL_DM_SPI select SPL_DM_MAILBOX if SPL select SPL_FIRMWARE if SPL
-- 2.28.0
Applied just this one. M

There are missing dependencies for selecting USB_FUNCTION_MASS_STORAGE. Change select to depends on instead of selecting all required options. Kconfig reports this issue as: WARNING: unmet direct dependencies detected for USB_FUNCTION_MASS_STORAGE Depends on [n]: USB [=n] && USB_GADGET [=n] && USB_GADGET_DOWNLOAD [=n] Selected by [y]: - CMD_USB_MASS_STORAGE [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com ---
cmd/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cmd/Kconfig b/cmd/Kconfig index f291c8cbf423..eebaaa420bf1 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1367,7 +1367,7 @@ config CMD_ROCKUSB
config CMD_USB_MASS_STORAGE bool "UMS usb mass storage" - select USB_FUNCTION_MASS_STORAGE + depends on USB_FUNCTION_MASS_STORAGE help USB mass storage support

On Wed, Aug 19, 2020 at 10:44:22AM +0200, Michal Simek wrote:
There are missing dependencies for selecting USB_FUNCTION_MASS_STORAGE. Change select to depends on instead of selecting all required options. Kconfig reports this issue as: WARNING: unmet direct dependencies detected for USB_FUNCTION_MASS_STORAGE Depends on [n]: USB [=n] && USB_GADGET [=n] && USB_GADGET_DOWNLOAD [=n] Selected by [y]:
- CMD_USB_MASS_STORAGE [=y]
Signed-off-by: Michal Simek michal.simek@xilinx.com
cmd/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cmd/Kconfig b/cmd/Kconfig index f291c8cbf423..eebaaa420bf1 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1367,7 +1367,7 @@ config CMD_ROCKUSB
config CMD_USB_MASS_STORAGE bool "UMS usb mass storage"
- select USB_FUNCTION_MASS_STORAGE
- depends on USB_FUNCTION_MASS_STORAGE help USB mass storage support
Similar to the SDP issue, perhaps we have USB symbols that in turn need to be select'ing other library functions they use?

ENV_IS_IN_EXT4 also need to enable FS_EXT4 which is not covered in Kconfig. Kconfig reports this as: WARNING: unmet direct dependencies detected for EXT4_WRITE Depends on [n]: FS_EXT4 [=n] Selected by [y]: - ENV_IS_IN_EXT4 [=y] && !CHAIN_OF_TRUST [=n]
Signed-off-by: Michal Simek michal.simek@xilinx.com ---
env/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/env/Kconfig b/env/Kconfig index af4d9cbaa4d8..b59ba310ec3d 100644 --- a/env/Kconfig +++ b/env/Kconfig @@ -72,6 +72,7 @@ config ENV_IS_IN_FAT config ENV_IS_IN_EXT4 bool "Environment is in a EXT4 filesystem" depends on !CHAIN_OF_TRUST + select FS_EXT4 select EXT4_WRITE help Define this if you want to use the EXT4 file system for the environment.

On Wed, Aug 19, 2020 at 10:44:23AM +0200, Michal Simek wrote:
ENV_IS_IN_EXT4 also need to enable FS_EXT4 which is not covered in Kconfig. Kconfig reports this as: WARNING: unmet direct dependencies detected for EXT4_WRITE Depends on [n]: FS_EXT4 [=n] Selected by [y]:
- ENV_IS_IN_EXT4 [=y] && !CHAIN_OF_TRUST [=n]
Signed-off-by: Michal Simek michal.simek@xilinx.com
Reviewed-by: Tom Rini trini@konsulko.com

On Wed, Aug 19, 2020 at 10:44:23AM +0200, Michal Simek wrote:
ENV_IS_IN_EXT4 also need to enable FS_EXT4 which is not covered in Kconfig. Kconfig reports this as: WARNING: unmet direct dependencies detected for EXT4_WRITE Depends on [n]: FS_EXT4 [=n] Selected by [y]:
- ENV_IS_IN_EXT4 [=y] && !CHAIN_OF_TRUST [=n]
Signed-off-by: Michal Simek michal.simek@xilinx.com Reviewed-by: Tom Rini trini@konsulko.com
Applied to u-boot/master, thanks!
participants (5)
-
Heinrich Schuchardt
-
Michal Simek
-
Michal Simek
-
Simon Glass
-
Tom Rini