Script that scans a Kbuild-based code base to identify CONFIG_ options that are defined in Kconfig files but that appear to be unused/untested in the code base.
Please do not make fun of the coding style of the script; I wrote it many, many years ago, and it would probably be far better written in Python.
The script takes, as an optional argument, the specific directory you want to examine, and you're encouraged to be specific as the full output will be immense.
#!/bin/sh # Uncomment whatever debugging you want to see. SCAN_DIR=${1-*} # Collect config variables from Kconfig* files of interest. SELECTED_KCONFIG_FILES=$(find ${SCAN_DIR} -name "Kconfig*") if [ "${SELECTED_KCONFIG_FILES}" = "" ] ; then echo "No kconfig files, exiting." exit 1 fi ALL_KCONFIG_FILES=$(find * -name "Kconfig*") # echo SELECTED_KCONFIG_FILES = "${SELECTED_KCONFIG_FILES}" # echo ALL_KCONFIG_FILES = "${ALL_KCONFIG_FILES}" KCONFIG_VARS1=$(grep ^config ${SELECTED_KCONFIG_FILES} | awk '{print $2}' | sort -u) KCONFIG_VARS2=$(grep ^menuconfig ${SELECTED_KCONFIG_FILES} | awk '{print $2}' | sort -u) # echo KCONFIG_VARS1 = "${KCONFIG_VARS1}" # echo KCONFIG_VARS2 = "${KCONFIG_VARS2}" for kv in ${KCONFIG_VARS1} ${KCONFIG_VARS2} ; do # echo "Checking ${kv} ..." grep -q "depends on.*${kv}" ${ALL_KCONFIG_FILES} || grep -q "if.*${kv}" ${ALL_KCONFIG_FILES} || grep -q "default.*${kv}" ${ALL_KCONFIG_FILES} || grep -r -w -q --exclude="*defconfig" "CONFIG_${kv}" * || { echo ">>>>> ${kv}" grep -rwn ${kv} * | grep -v defconfig } done
This script will almost certainly generate false positives as the test is whether there is a Kbuild directive of the form “config X” with no subsequent reference anywhere to “CONFIG_X”; I failed to take into account the possible test of the form:
#if CONFIG_IS_ENABLED(X)
so I can clearly improve the script.
Also, I forgot to take into account that one could “select” a Kconfig option, whereupon that Kconfig option could then select further options, without ever testing the option itself. Here's an example:
>>>>> TEGRA_COMMON arch/arm/mach-tegra/Kconfig:23:config TEGRA_COMMON arch/arm/mach-tegra/Kconfig:58: select TEGRA_COMMON arch/arm/mach-tegra/Kconfig:66: select TEGRA_COMMON
My script flags that because there is no occurrence of “CONFIG_TEGRA_COMMON” but, of course, in this case, there doesn't have to be. Another improvement to be made.
Here's a single example of running the script on the directory drivers/mmc
, which generates some of the very false positives I just warned about, but also displays actual unused configs.
$ find_unused_configs.sh drivers/mmc
>>>>> MMC_HS200_SUPPORT drivers/mmc/Kconfig:116: select MMC_HS200_SUPPORT drivers/mmc/Kconfig:127:config MMC_HS200_SUPPORT drivers/mmc/renesas-sdhi.c:21: CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) || \ drivers/mmc/renesas-sdhi.c:372: CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) || \ drivers/mmc/renesas-sdhi.c:413: CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) || \ drivers/mmc/renesas-sdhi.c:528: CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) || \ drivers/mmc/mmc-uclass.c:372: CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) || \ drivers/mmc/mmc-uclass.c:399: CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) || \ drivers/mmc/mmc.c:782:#if CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) drivers/mmc/mmc.c:804:#if CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) || \ drivers/mmc/mmc.c:856:#if CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) drivers/mmc/mmc.c:908:#if CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) drivers/mmc/mmc.c:1830:#if CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) drivers/mmc/mmc.c:1949:#if CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) || \ drivers/mmc/mmc.c:2784: CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) || \ include/mmc.h:17:#if CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) include/mmc.h:694: CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) || \ >>>>> MMC_HS400_SUPPORT drivers/mmc/Kconfig:114:config MMC_HS400_SUPPORT drivers/mmc/renesas-sdhi.c:22: CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) drivers/mmc/renesas-sdhi.c:373: CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) drivers/mmc/renesas-sdhi.c:414: CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) drivers/mmc/renesas-sdhi.c:529: CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) drivers/mmc/mmc-uclass.c:373: CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) drivers/mmc/mmc-uclass.c:400: CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) drivers/mmc/mmc.c:787:#if CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) drivers/mmc/mmc.c:805: CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) drivers/mmc/mmc.c:862:#if CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) drivers/mmc/mmc.c:1823:#if CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) drivers/mmc/mmc.c:1873:#if CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) drivers/mmc/mmc.c:1950: CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) drivers/mmc/mmc.c:2785: CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) include/mmc.h:543:#if CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) include/mmc.h:695: CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) >>>>> MMC_UHS_SUPPORT drivers/mmc/omap_hsmmc.c:433:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) drivers/mmc/omap_hsmmc.c:1526:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) drivers/mmc/Kconfig:98:config MMC_UHS_SUPPORT drivers/mmc/renesas-sdhi.c:20:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) || \ drivers/mmc/renesas-sdhi.c:371:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) || \ drivers/mmc/renesas-sdhi.c:386:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) drivers/mmc/renesas-sdhi.c:412:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) || \ drivers/mmc/renesas-sdhi.c:417:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) drivers/mmc/renesas-sdhi.c:527:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) || \ drivers/mmc/mmc-uclass.c:63:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) drivers/mmc/mmc-uclass.c:371:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) || \ drivers/mmc/mmc-uclass.c:398:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) || \ drivers/mmc/mmc.c:32:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) drivers/mmc/mmc.c:475:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) drivers/mmc/mmc.c:602:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) drivers/mmc/mmc.c:1207:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) drivers/mmc/mmc.c:1291:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) drivers/mmc/mmc.c:1330:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) drivers/mmc/mmc.c:1615:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) drivers/mmc/mmc.c:1640:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) drivers/mmc/mmc.c:1663:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) drivers/mmc/mmc.c:2783:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) || \ include/mmc.h:20:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) include/mmc.h:452:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) include/mmc.h:539:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) include/mmc.h:557:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) include/mmc.h:693:#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) || \ >>>>> SPL_MMC_HS200_SUPPORT drivers/mmc/Kconfig:134:config SPL_MMC_HS200_SUPPORT >>>>> SPL_MMC_HS400_SUPPORT drivers/mmc/Kconfig:121:config SPL_MMC_HS400_SUPPORT >>>>> SPL_MMC_TINY drivers/mmc/Kconfig:155:config SPL_MMC_TINY >>>>> SPL_MMC_UHS_SUPPORT drivers/mmc/Kconfig:106:config SPL_MMC_UHS_SUPPORT
As you can see, most of that represent false positives, but the last few lines do in fact show Kbuild options that are unreferenced anywhere in the code base.
As a second example, I listed all apparently unused Kbuild options under arch/arm
. Note how, mixed in with each example is a tree-wide scan for that symbol.
>>>>> 98DX3236 arch/arm/dts/armada-xp-98dx3236.dtsi:17: model = "Marvell 98DX3236 SoC"; arch/arm/dts/armada-xp-98dx3236.dtsi:55: * 98DX3236 has 1 x1 PCIe unit Gen2.0 arch/arm/mach-mvebu/Kconfig:78:config 98DX3236 arch/arm/mach-mvebu/cpu.c:231: puts("98DX3236-"); >>>>> 98DX3336 arch/arm/dts/armada-xp-98dx3336.dtsi:14: model = "Marvell 98DX3336 SoC"; arch/arm/mach-mvebu/Kconfig:74:config 98DX3336 arch/arm/mach-mvebu/Kconfig:157: select 98DX3336 arch/arm/mach-mvebu/cpu.c:234: puts("98DX3336-"); >>>>> 98DX4251 arch/arm/dts/armada-xp-98dx4251.dtsi:14: model = "Marvell 98DX4251 SoC"; arch/arm/mach-mvebu/Kconfig:70:config 98DX4251 arch/arm/mach-mvebu/cpu.c:237: puts("98DX4251-"); >>>>> ARMADA_32BIT arch/arm/mach-mvebu/Kconfig:7:config ARMADA_32BIT arch/arm/mach-mvebu/Kconfig:25: select ARMADA_32BIT arch/arm/mach-mvebu/Kconfig:29: select ARMADA_32BIT arch/arm/mach-mvebu/Kconfig:34: select ARMADA_32BIT arch/arm/mach-mvebu/Kconfig:68: select ARMADA_32BIT >>>>> ARMADA_64BIT arch/arm/mach-mvebu/Kconfig:18:config ARMADA_64BIT >>>>> BCM2836 arch/arm/mach-bcm283x/Kconfig:6:config BCM2836 arch/arm/mach-bcm283x/Kconfig:7: bool "Broadcom BCM2836 SoC support" arch/arm/mach-bcm283x/Kconfig:41: support BCM2836/BCM2837-based Raspberry Pis such as the RPi 2 and arch/arm/mach-bcm283x/Kconfig:66: Support for all BCM2836-based Raspberry Pi variants, such as arch/arm/mach-bcm283x/Kconfig:84: select BCM2836 >>>>> BCM2837 arch/arm/mach-bcm283x/Kconfig:12:config BCM2837 arch/arm/mach-bcm283x/Kconfig:13: bool "Broadcom BCM2837 SoC support" arch/arm/mach-bcm283x/Kconfig:17: bool "Broadcom BCM2837 SoC 32-bit support" arch/arm/mach-bcm283x/Kconfig:19: select BCM2837 arch/arm/mach-bcm283x/Kconfig:24: bool "Broadcom BCM2837 SoC 64-bit support" arch/arm/mach-bcm283x/Kconfig:26: select BCM2837 arch/arm/mach-bcm283x/Kconfig:41: support BCM2836/BCM2837-based Raspberry Pis such as the RPi 2 and arch/arm/mach-bcm283x/Kconfig:69: This option also supports BCM2837-based variants such as the RPi 3 arch/arm/mach-bcm283x/Kconfig:89: Support for all BCM2837-based Raspberry Pi variants, such as arch/arm/mach-bcm283x/Kconfig:105: Support for all BCM2837-based Raspberry Pi variants, such as >>>>> BCM2837_32B arch/arm/mach-bcm283x/Kconfig:16:config BCM2837_32B arch/arm/mach-bcm283x/Kconfig:100: select BCM2837_32B >>>>> BCM2837_64B arch/arm/mach-bcm283x/Kconfig:23:config BCM2837_64B arch/arm/mach-bcm283x/Kconfig:128: select BCM2837_64B >>>>> CM1136 arch/arm/mach-integrator/Kconfig:40:config CM1136 include/armcoremodule.h:35: /* CM1136-EJ-S */ tools/buildman/board.py:85: options: board-specific options (e.g. integratorcp:CM1136) >>>>> CM720T arch/arm/mach-integrator/Kconfig:24:config CM720T board/armltd/integrator/README:71:ap720t_config ** CM720T >>>>> CM946ES arch/arm/mach-integrator/Kconfig:36:config CM946ES >>>>> DRA7_DSPEVE_OPP_NOM arch/arm/mach-omap2/omap5/Kconfig:94:config DRA7_DSPEVE_OPP_NOM >>>>> DRA7_GPU_OPP_NOM arch/arm/mach-omap2/omap5/Kconfig:142:config DRA7_GPU_OPP_NOM >>>>> DRA7_IVA_OPP_NOM arch/arm/mach-omap2/omap5/Kconfig:118:config DRA7_IVA_OPP_NOM >>>>> MESON64_COMMON arch/arm/mach-meson/Kconfig:3:config MESON64_COMMON arch/arm/mach-meson/Kconfig:16: select MESON64_COMMON arch/arm/mach-meson/Kconfig:42: select MESON64_COMMON >>>>> MULTI_DTB_FIT_UNCOMPRESS_SZ arch/arm/mach-rmobile/Kconfig.64:92:config MULTI_DTB_FIT_UNCOMPRESS_SZ dts/Kconfig:174:config MULTI_DTB_FIT_UNCOMPRESS_SZ lib/fdtdec.c:1185: size_t sz_out = CONFIG_VAL(MULTI_DTB_FIT_UNCOMPRESS_SZ); >>>>> MULTI_DTB_FIT_USER_DEF_ADDR arch/arm/mach-rmobile/Kconfig.64:96:config MULTI_DTB_FIT_USER_DEF_ADDR dts/Kconfig:183:config MULTI_DTB_FIT_USER_DEF_ADDR lib/fdtdec.c:1210: dst = (void *)CONFIG_VAL(MULTI_DTB_FIT_USER_DEF_ADDR); >>>>> MV78460 arch/arm/dts/armada-xp-mv78460.dtsi:9: * Contains definitions specific to the Armada XP MV78460 SoC that are not arch/arm/dts/armada-xp-mv78460.dtsi:16: model = "Marvell Armada XP MV78460 SoC"; arch/arm/dts/armada-xp-mv78460.dtsi:66: * MV78460 has 4 PCIe units Gen2.0: Two units can be arch/arm/mach-mvebu/Kconfig:62:config MV78460 arch/arm/mach-mvebu/Kconfig:131: select MV78460 arch/arm/mach-mvebu/Kconfig:139: select MV78460 arch/arm/mach-mvebu/serdes/axp/high_speed_env_lib.c:153: * Right now only MV78460 is supported. Other SoC's might need arch/arm/mach-mvebu/serdes/axp/high_speed_env_lib.c:163: * Right now only MV78460 is supported. Other SoC's might need arch/arm/mach-mvebu/cpu.c:216: puts("MV78460-"); >>>>> MX6_SMP arch/arm/mach-imx/mx6/Kconfig:3:config MX6_SMP arch/arm/mach-imx/mx6/Kconfig:21: select MX6_SMP arch/arm/mach-imx/mx6/Kconfig:26: select MX6_SMP arch/arm/mach-imx/mx6/Kconfig:31: select MX6_SMP arch/arm/mach-imx/mx6/Kconfig:36: select MX6_SMP >>>>> PUB_ROM_DATA_SIZE arch/arm/mach-omap2/am33xx/Kconfig:284:config PUB_ROM_DATA_SIZE >>>>> R8A7795 arch/arm/dts/r8a7795-u-boot.dtsi:3: * Device Tree Source extras for U-Boot on RCar R8A7795 SoC arch/arm/mach-rmobile/Kconfig.64:5:config R8A7795 arch/arm/mach-rmobile/Kconfig.64:6: bool "Renesas SoC R8A7795" arch/arm/mach-rmobile/Kconfig.64:61: imply R8A7795 arch/arm/mach-rmobile/Kconfig.64:72: imply R8A7795 arch/arm/mach-rmobile/cpu_info.c:62: { RMOBILE_CPU_TYPE_R8A7795, "R8A7795" }, doc/README.rmobile:29:| R8A7795 H3 | Renesas Electronics ULCB ES2.0+ | r8a7795_ulcb drivers/pinctrl/renesas/Kconfig:60: bool "Renesas RCar Gen3 R8A7795 pin control driver" drivers/pinctrl/renesas/Kconfig:63: Support pin multiplexing control on Renesas RCar Gen3 R8A7795 SoCs. drivers/pinctrl/renesas/pfc-r8a7795.c:3: * R8A7795 ES2.0+ processor support - PFC hardware block. drivers/pinctrl/renesas/pfc-r8a7795.c:1513: * R8A7795 has 8 banks with 32 GPIOs in each => 256 GPIOs. drivers/clk/renesas/Kconfig:52: bool "Renesas R8A7795 clock driver" drivers/clk/renesas/Kconfig:55: Enable this to support the clocks on Renesas R8A7795 SoC. >>>>> R8A7796 arch/arm/dts/r8a7796-u-boot.dtsi:3: * Device Tree Source extras for U-Boot on RCar R8A7796 SoC arch/arm/mach-rmobile/Kconfig.64:10:config R8A7796 arch/arm/mach-rmobile/Kconfig.64:11: bool "Renesas SoC R8A7796" arch/arm/mach-rmobile/Kconfig.64:62: imply R8A7796 arch/arm/mach-rmobile/Kconfig.64:73: imply R8A7796 arch/arm/mach-rmobile/cpu_info.c:63: { RMOBILE_CPU_TYPE_R8A7796, "R8A7796" }, doc/README.rmobile:32:| R8A7796 M3-W | Renesas Electronics ULCB | r8a7796_ulcb drivers/pinctrl/renesas/Kconfig:70: bool "Renesas RCar Gen3 R8A7796 pin control driver" drivers/pinctrl/renesas/Kconfig:73: Support pin multiplexing control on Renesas RCar Gen3 R8A7796 SoCs. drivers/pinctrl/renesas/pfc-r8a7796.c:3: * R8A7796 processor support - PFC hardware block. drivers/pinctrl/renesas/pfc-r8a7796.c:1523: * R8A7796 has 8 banks with 32 GPIOs in each => 256 GPIOs. drivers/pinctrl/renesas/pfc-r8a77990.c:9: * R8A7796 processor support - PFC hardware block. drivers/clk/renesas/r8a7796-cpg-mssr.c:3: * Renesas R8A7796 CPG MSSR driver drivers/clk/renesas/Kconfig:58: bool "Renesas R8A7796 clock driver" drivers/clk/renesas/Kconfig:61: Enable this to support the clocks on Renesas R8A7796 SoC. >>>>> R8A77965 arch/arm/dts/r8a77965.dtsi:3: * Device Tree Source for the R-Car M3-N (R8A77965) SoC arch/arm/dts/r8a77965-u-boot.dtsi:3: * Device Tree Source extras for U-Boot on RCar R8A77965 SoC arch/arm/mach-rmobile/Kconfig.64:15:config R8A77965 arch/arm/mach-rmobile/Kconfig.64:16: bool "Renesas SoC R8A77965" arch/arm/mach-rmobile/Kconfig.64:63: imply R8A77965 arch/arm/mach-rmobile/Kconfig.64:74: imply R8A77965 arch/arm/mach-rmobile/cpu_info.c:64: { RMOBILE_CPU_TYPE_R8A77965, "R8A77965" }, doc/README.rmobile:35:| R8A77965 M3-N | Renesas Electronics ULCB | r8a77965_ulcb drivers/pinctrl/renesas/Kconfig:80: bool "Renesas RCar Gen3 R8A77965 pin control driver" drivers/pinctrl/renesas/Kconfig:83: Support pin multiplexing control on Renesas RCar Gen3 R8A77965 SoCs. drivers/pinctrl/renesas/pfc-r8a77965.c:3: * R8A77965 processor support - PFC hardware block. drivers/pinctrl/renesas/pfc-r8a77965.c:1518: * R8A77965 has 8 banks with 32 GPIOs in each => 256 GPIOs. drivers/clk/renesas/Kconfig:64: bool "Renesas R8A77965 clock driver" drivers/clk/renesas/Kconfig:67: Enable this to support the clocks on Renesas R8A77965 SoC. >>>>> R8A77970 arch/arm/dts/r8a77970.dtsi:3: * Device Tree Source for the R-Car V3M (R8A77970) SoC arch/arm/dts/r8a77970-u-boot.dtsi:3: * Device Tree Source extras for U-Boot on RCar R8A77970 SoC arch/arm/mach-rmobile/Kconfig.64:20:config R8A77970 arch/arm/mach-rmobile/Kconfig.64:21: bool "Renesas SoC R8A77970" arch/arm/mach-rmobile/Kconfig.64:49: imply R8A77970 arch/arm/mach-rmobile/cpu_info.c:65: { RMOBILE_CPU_TYPE_R8A77970, "R8A77970" }, drivers/pinctrl/renesas/Kconfig:90: bool "Renesas RCar Gen3 R8A77970 pin control driver" drivers/pinctrl/renesas/Kconfig:93: Support pin multiplexing control on Renesas RCar Gen3 R8A77970 SoCs. drivers/pinctrl/renesas/pfc-r8a77970.c:3: * R8A77970 processor support - PFC hardware block. drivers/clk/renesas/Kconfig:70: bool "Renesas R8A77970 clock driver" drivers/clk/renesas/Kconfig:73: Enable this to support the clocks on Renesas R8A77970 SoC. drivers/clk/renesas/r8a77970-cpg-mssr.c:3: * Renesas R8A77970 CPG MSSR driver >>>>> R8A77990 arch/arm/dts/r8a77990-u-boot.dtsi:3: * Device Tree Source extras for U-Boot on RCar R8A77990 SoC arch/arm/dts/r8a77990.dtsi:3: * Device Tree Source for the R-Car E3 (R8A77990) SoC arch/arm/mach-rmobile/Kconfig.64:25:config R8A77990 arch/arm/mach-rmobile/Kconfig.64:26: bool "Renesas SoC R8A77990" arch/arm/mach-rmobile/Kconfig.64:55: imply R8A77990 arch/arm/mach-rmobile/cpu_info.c:66: { RMOBILE_CPU_TYPE_R8A77990, "R8A77990" }, drivers/pinctrl/renesas/Kconfig:100: bool "Renesas RCar Gen3 R8A77990 pin control driver" drivers/pinctrl/renesas/Kconfig:103: Support pin multiplexing control on Renesas RCar Gen3 R8A77990 SoCs. drivers/pinctrl/renesas/pfc-r8a77990.c:3: * R8A77990 processor support - PFC hardware block. drivers/pinctrl/renesas/pfc-r8a77990.c:1285: * R8A77990 has 7 banks with 32 GPIOs in each => 224 GPIOs. drivers/pinctrl/renesas/pfc-r8a77990.c:1299: * The pin positions are different between different R8A77990 drivers/pinctrl/renesas/pfc-r8a77990.c:1302: * R8A77990 to calculate a unique number for each pin. drivers/clk/renesas/Kconfig:76: bool "Renesas R8A77990 clock driver" drivers/clk/renesas/Kconfig:79: Enable this to support the clocks on Renesas R8A77990 SoC. >>>>> R8A77995 arch/arm/dts/r8a77995.dtsi:3: * Device Tree Source for the R-Car D3 (R8A77995) SoC arch/arm/dts/r8a77995-u-boot.dtsi:3: * Device Tree Source extras for U-Boot on RCar R8A77995 SoC arch/arm/mach-rmobile/Kconfig.64:30:config R8A77995 arch/arm/mach-rmobile/Kconfig.64:31: bool "Renesas SoC R8A77995" arch/arm/mach-rmobile/Kconfig.64:43: imply R8A77995 arch/arm/mach-rmobile/cpu_info.c:67: { RMOBILE_CPU_TYPE_R8A77995, "R8A77995" }, drivers/pinctrl/renesas/pfc-r8a77995.c:3: * R8A77995 processor support - PFC hardware block. drivers/pinctrl/renesas/Kconfig:110: bool "Renesas RCar Gen3 R8A77995 pin control driver" drivers/pinctrl/renesas/Kconfig:113: Support pin multiplexing control on Renesas RCar Gen3 R8A77995 SoCs. drivers/clk/renesas/Kconfig:82: bool "Renesas R8A77995 clock driver" drivers/clk/renesas/Kconfig:85: Enable this to support the clocks on Renesas R8A77995 SoC. >>>>> SPL_ROCKCHIP_EARLYRETURN_TO_BROM arch/arm/mach-rockchip/Kconfig:36: select SPL_ROCKCHIP_EARLYRETURN_TO_BROM arch/arm/mach-rockchip/Kconfig:209:config SPL_ROCKCHIP_EARLYRETURN_TO_BROM >>>>> SPL_SYS_THUMB_BUILD arch/arm/Kconfig:331:config SPL_SYS_THUMB_BUILD arch/arm/Kconfig:868: select SPL_SYS_THUMB_BUILD if !ARM64 >>>>> SPL_ZYNQMP_TWO_SDHCI arch/arm/mach-zynqmp/Kconfig:102:config SPL_ZYNQMP_TWO_SDHCI arch/arm/mach-zynqmp/spl.c:88:#if defined(SPL_ZYNQMP_TWO_SDHCI) >>>>> SYS_FSL_ERRATUM_A008407 arch/arm/cpu/armv7/ls102xa/Kconfig:6: select SYS_FSL_ERRATUM_A008407 arch/arm/cpu/armv7/ls102xa/Kconfig:112:config SYS_FSL_ERRATUM_A008407 >>>>> SYS_K3_MCU_SCRATCHPAD_SIZE arch/arm/mach-k3/Kconfig:37:config SYS_K3_MCU_SCRATCHPAD_SIZE >>>>> TARGET_RPI arch/arm/mach-bcm283x/Kconfig:36:config TARGET_RPI >>>>> TARGET_RPI_0_W arch/arm/mach-bcm283x/Kconfig:47:config TARGET_RPI_0_W >>>>> TARGET_RPI_3 arch/arm/mach-bcm283x/Kconfig:102:config TARGET_RPI_3 >>>>> TARGET_VEXPRESS64_AEMV8A arch/arm/Kconfig:975:config TARGET_VEXPRESS64_AEMV8A >>>>> TEGRA_ARMV7_COMMON arch/arm/mach-tegra/Kconfig:52:config TEGRA_ARMV7_COMMON arch/arm/mach-tegra/Kconfig:82: select TEGRA_ARMV7_COMMON arch/arm/mach-tegra/Kconfig:88: select TEGRA_ARMV7_COMMON arch/arm/mach-tegra/Kconfig:92: select TEGRA_ARMV7_COMMON arch/arm/mach-tegra/Kconfig:96: select TEGRA_ARMV7_COMMON >>>>> TEGRA_COMMON arch/arm/mach-tegra/Kconfig:23:config TEGRA_COMMON arch/arm/mach-tegra/Kconfig:58: select TEGRA_COMMON arch/arm/mach-tegra/Kconfig:66: select TEGRA_COMMON >>>>> TPL_MAX_SIZE arch/arm/mach-rockchip/Kconfig:80:config TPL_MAX_SIZE arch/arm/mach-rockchip/Kconfig:122:config TPL_MAX_SIZE common/spl/Kconfig:986:config TPL_MAX_SIZE >>>>> TPL_ROCKCHIP_BACK_TO_BROM arch/arm/mach-rockchip/Kconfig:174:config TPL_ROCKCHIP_BACK_TO_BROM >>>>> TPL_ROCKCHIP_EARLYRETURN_TO_BROM arch/arm/mach-rockchip/Kconfig:223:config TPL_ROCKCHIP_EARLYRETURN_TO_BROM >>>>> VIDEO_LCD_PANEL_HITACHI_TX18D42VM arch/arm/mach-sunxi/Kconfig:946:config VIDEO_LCD_PANEL_HITACHI_TX18D42VM >>>>> VIDEO_LCD_PANEL_LVDS arch/arm/mach-sunxi/Kconfig:926:config VIDEO_LCD_PANEL_LVDS >>>>> VIDEO_LCD_PANEL_PARALLEL arch/arm/mach-sunxi/Kconfig:922:config VIDEO_LCD_PANEL_PARALLEL