User Tools

Site Tools


u-boot_unused_configs

Overview

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

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

False positives

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.

Example

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.

Example: arch/arm

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
u-boot_unused_configs.txt · Last modified: 2019/04/13 11:29 by rpjday