[U-Boot] [GIT PULL] u-boot-sunxi/master

Hi Tom,
Here is a pull request for the sunxi related changes for the next U-Boot version.
The diffstat is a bit scary, but mostly because of the Kconfig migration of the USB ethernet related options, which were enabled by a big number of boards. The fastboot options simplification is also one of the offenders.
This is my first pull request ever, so I might have done something wrong, let me know if it's the case.
Thanks! Maxime
The following changes since commit 9241265f29f3670e380a9859a343ddc14873c46f:
Merge git://www.denx.de/git/u-boot-cfi-flash (2017-09-26 19:38:04 -0400)
are available in the git repository at:
git://git.denx.de/u-boot-sunxi master
for you to fetch changes up to ab922c5e83e9ed780aeaef9dd9da0224f9356245:
sunxi: Enable EMAC on the Bananapi M3 (2017-09-27 12:17:05 +0200)
---------------------------------------------------------------- Chen-Yu Tsai (4): sunxi: rename Bananapi M3 dts file name sunxi: Enable eMMC on Cubietruck Plus sunxi: Enable EMAC on the Cubietruck Plus sunxi: Enable EMAC on the Bananapi M3
Icenowy Zheng (1): sunxi: defaultly enable SPL for Lichee Pi Zero
Jagan Teki (1): sun7i: a20: Add Bananapi M1 Plus support
Maxime Ripard (21): usb: gadget: Move USBNET_DEVADDR option out of g_dnl usb: gadget: Document USBNET_DEVADDR usb: gadget: Move USBNET_HOST_ADDR to Kconfig usb: gadget: Convert USB_ETHER to Kconfig usb: gadget: usb_ether: Move the interfaces to Kconfig usb: gadget: Make g_dnl USB settings common usb: gadget: usb_ether: Move settings to common sunxi: provide default USB gadget setup sunxi: imply USB_GADGET cmd: fastboot: Rework fastboot dependency musb: sunxi: switch to the device model sunxi: Register usb_ether sunxi: Imply USB_ETHER sunxi: sina33: Sync the device tree with the kernel cmd: Move CONFIG_RANDOM_UUID to Kconfig sunxi: Enable CMD_GPT by default arm: sunxi: Move spl_boot_device in a separate function sunxi: Use sunxi_get_boot_device sunxi: Remove the MMC index hack sunxi: Fix USB_GADGET implication sunxi: usb_phy: invert the USB phy_ctl condition
Stefan Mavrodiev (1): sunxi: Add support for A20-OLinuXino-MICRO-eMMC
arch/arm/Kconfig | 5 +- arch/arm/dts/Makefile | 4 +- arch/arm/dts/axp223.dtsi | 58 +++ arch/arm/dts/axp22x.dtsi | 10 + arch/arm/dts/sun7i-a20-bananapi-m1-plus.dts | 91 +++- arch/arm/dts/sun7i-a20-olinuxino-micro-emmc.dts | 70 +++ arch/arm/dts/sun8i-a23-a33.dtsi | 446 +++++++++---------- arch/arm/dts/sun8i-a33-sinlinx-sina33.dts | 43 ++ arch/arm/dts/sun8i-a33.dtsi | 477 +++++++++++++++++---- arch/arm/dts/sun8i-a83t-bananapi-m3-u-boot.dtsi | 41 ++ ...ovoip-bpi-m3.dts => sun8i-a83t-bananapi-m3.dts} | 0 .../arm/dts/sun8i-a83t-cubietruck-plus-u-boot.dtsi | 39 ++ arch/arm/include/asm/arch-sunxi/spl.h | 2 + arch/arm/include/asm/arch-sunxi/usb_phy.h | 7 - arch/arm/mach-sunxi/board.c | 11 +- arch/arm/mach-sunxi/usb_phy.c | 14 +- board/samsung/common/gadget.c | 4 +- board/siemens/common/factoryset.c | 4 +- board/sunxi/MAINTAINERS | 5 + board/sunxi/board.c | 29 +- cmd/Kconfig | 7 + cmd/fastboot/Kconfig | 6 + configs/A13-OLinuXino_defconfig | 5 - configs/A20-OLinuXino-Lime2-eMMC_defconfig | 6 - configs/A20-OLinuXino-Lime2_defconfig | 5 - configs/A20-OLinuXino_MICRO-eMMC_defconfig | 27 ++ configs/CHIP_defconfig | 5 - configs/CHIP_pro_defconfig | 5 - configs/Cubietruck_defconfig | 5 - configs/Cubietruck_plus_defconfig | 2 + configs/LicheePi_Zero_defconfig | 4 + configs/Nintendo_NES_Classic_Edition_defconfig | 5 - configs/Sinlinx_SinA33_defconfig | 6 - configs/Sinovoip_BPI_M3_defconfig | 3 +- configs/am335x_baltos_defconfig | 8 +- configs/am335x_boneblack_defconfig | 10 +- configs/am335x_boneblack_vboot_defconfig | 9 +- configs/am335x_evm_defconfig | 9 +- configs/am335x_evm_nor_defconfig | 9 +- configs/am335x_evm_norboot_defconfig | 10 +- configs/am335x_evm_spiboot_defconfig | 9 +- configs/am335x_evm_usbspl_defconfig | 9 +- configs/am335x_hs_evm_defconfig | 7 +- configs/am43xx_evm_defconfig | 6 +- configs/am43xx_evm_ethboot_defconfig | 6 +- configs/am43xx_evm_qspiboot_defconfig | 6 +- configs/am43xx_evm_usbhost_boot_defconfig | 6 +- configs/am43xx_hs_evm_defconfig | 6 +- configs/am57xx_evm_defconfig | 8 +- configs/am57xx_evm_nodt_defconfig | 9 +- configs/am57xx_hs_evm_defconfig | 8 +- configs/apalis-tk1_defconfig | 6 +- configs/apalis_imx6_defconfig | 6 +- configs/apalis_imx6_nospl_com_defconfig | 6 +- configs/apalis_imx6_nospl_it_defconfig | 6 +- configs/apalis_t30_defconfig | 6 +- configs/bananapi_m1_plus_defconfig | 24 ++ configs/bcm11130_defconfig | 6 +- configs/bcm11130_nand_defconfig | 6 +- configs/bcm23550_w1d_defconfig | 9 +- configs/bcm28155_ap_defconfig | 9 +- configs/bcm28155_w1d_defconfig | 6 +- configs/beaver_defconfig | 6 +- configs/birdland_bav335a_defconfig | 9 +- configs/birdland_bav335b_defconfig | 9 +- configs/cei-tk1-som_defconfig | 6 +- configs/cgtqmx6eval_defconfig | 9 +- configs/chromebit_mickey_defconfig | 7 +- configs/chromebook_jerry_defconfig | 7 +- configs/chromebook_minnie_defconfig | 7 +- configs/colibri_imx6_defconfig | 6 +- configs/colibri_imx6_nospl_defconfig | 6 +- configs/colibri_imx7_defconfig | 6 +- configs/colibri_t20_defconfig | 6 +- configs/colibri_t30_defconfig | 6 +- configs/colibri_vf_defconfig | 6 +- configs/corvus_defconfig | 6 +- configs/dalmore_defconfig | 6 +- configs/dms-ba16-1g_defconfig | 6 +- configs/dms-ba16_defconfig | 6 +- configs/dra7xx_evm_defconfig | 8 +- configs/dra7xx_hs_evm_defconfig | 8 +- configs/draco_defconfig | 7 +- configs/e2220-1170_defconfig | 6 +- configs/edison_defconfig | 6 +- configs/etamin_defconfig | 7 +- configs/evb-rk3036_defconfig | 7 +- configs/evb-rk3229_defconfig | 7 +- configs/evb-rk3288_defconfig | 7 +- configs/evb-rk3328_defconfig | 6 +- configs/evb-rv1108_defconfig | 1 + configs/fennec-rk3288_defconfig | 7 +- configs/firefly-rk3288_defconfig | 7 +- configs/gwventana_emmc_defconfig | 8 +- configs/gwventana_gw5904_defconfig | 8 +- configs/gwventana_nand_defconfig | 8 +- configs/jetson-tk1_defconfig | 6 +- configs/kc1_defconfig | 9 +- configs/kylin-rk3036_defconfig | 7 +- configs/ma5d4evk_defconfig | 7 +- configs/miqi-rk3288_defconfig | 7 +- configs/mx6qsabrelite_defconfig | 11 +- configs/mx6sabreauto_defconfig | 6 +- configs/mx6sabresd_defconfig | 6 +- configs/mx7dsabresd_defconfig | 6 +- configs/mx7dsabresd_secure_defconfig | 6 +- configs/nitrogen6dl2g_defconfig | 11 +- configs/nitrogen6dl_defconfig | 11 +- configs/nitrogen6q2g_defconfig | 11 +- configs/nitrogen6q_defconfig | 11 +- configs/nitrogen6s1g_defconfig | 11 +- configs/nitrogen6s_defconfig | 11 +- configs/novena_defconfig | 2 + configs/nyan-big_defconfig | 6 +- configs/odroid-xu3_defconfig | 6 +- configs/odroid_defconfig | 6 +- configs/omap3_beagle_defconfig | 10 +- configs/omap3_evm_defconfig | 7 +- configs/omap3_logic_defconfig | 9 +- configs/omap5_uevm_defconfig | 6 +- configs/opos6uldev_defconfig | 6 +- configs/origen_defconfig | 6 +- configs/p2371-0000_defconfig | 6 +- configs/p2371-2180_defconfig | 6 +- configs/p2571_defconfig | 6 +- configs/parrot_r16_defconfig | 6 - configs/pcm051_rev1_defconfig | 1 + configs/pcm051_rev3_defconfig | 1 + configs/phycore-rk3288_defconfig | 7 +- configs/pico-imx6ul_defconfig | 6 +- configs/pico-imx7d_defconfig | 6 +- configs/popmetal-rk3288_defconfig | 7 +- configs/pxm2_defconfig | 8 +- configs/rastaban_defconfig | 8 +- configs/rock2_defconfig | 7 +- configs/rock_defconfig | 1 + configs/rut_defconfig | 7 +- configs/s5p_goni_defconfig | 6 +- configs/s5pc210_universal_defconfig | 6 +- configs/sama5d2_ptc_nandflash_defconfig | 2 + configs/sama5d2_ptc_spiflash_defconfig | 2 + configs/sansa_fuze_plus_defconfig | 2 + configs/smartweb_defconfig | 6 +- configs/sniper_defconfig | 9 +- configs/socfpga_arria5_defconfig | 6 +- configs/socfpga_cyclone5_defconfig | 6 +- configs/socfpga_de0_nano_soc_defconfig | 6 +- configs/socfpga_de10_nano_defconfig | 6 +- configs/socfpga_mcvevk_defconfig | 6 +- configs/socfpga_sockit_defconfig | 6 +- configs/socfpga_socrates_defconfig | 6 +- configs/socfpga_vining_fpga_defconfig | 6 +- configs/taurus_defconfig | 6 +- configs/tbs2910_defconfig | 6 +- configs/thuban_defconfig | 7 +- configs/tinker-rk3288_defconfig | 7 +- configs/topic_miami_defconfig | 6 +- configs/topic_miamilite_defconfig | 6 +- configs/topic_miamiplus_defconfig | 6 +- configs/trats2_defconfig | 6 +- configs/trats_defconfig | 6 +- configs/venice2_defconfig | 6 +- configs/vinco_defconfig | 2 + configs/warp7_defconfig | 9 +- configs/warp7_secure_defconfig | 9 +- configs/warp_defconfig | 6 +- configs/xfi3_defconfig | 2 + configs/xilinx_zynqmp_ep_defconfig | 6 +- configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig | 6 +- configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig | 6 +- configs/xilinx_zynqmp_zcu102_revA_defconfig | 6 +- configs/xilinx_zynqmp_zcu102_revB_defconfig | 6 +- configs/zynq_microzed_defconfig | 6 +- configs/zynq_picozed_defconfig | 6 +- configs/zynq_z_turn_defconfig | 6 +- configs/zynq_zc702_defconfig | 6 +- configs/zynq_zc706_defconfig | 6 +- configs/zynq_zed_defconfig | 6 +- configs/zynq_zybo_defconfig | 6 +- doc/README.android-fastboot | 8 +- drivers/usb/gadget/Kconfig | 78 +++- drivers/usb/gadget/ether.c | 16 +- drivers/usb/gadget/g_dnl.c | 12 +- drivers/usb/musb-new/sunxi.c | 56 ++- include/configs/am335x_evm.h | 6 - include/configs/am3517_evm.h | 5 - include/configs/am43xx_evm.h | 6 +- include/configs/am57xx_evm.h | 1 - include/configs/baltos.h | 6 - include/configs/dra7xx_evm.h | 1 - include/configs/edison.h | 1 - include/configs/gw_ventana.h | 2 - include/configs/h2200.h | 2 - include/configs/ma5d4evk.h | 3 - include/configs/nitrogen6x.h | 2 - include/configs/novena.h | 2 - include/configs/odroid.h | 1 - include/configs/odroid_xu3.h | 2 +- include/configs/omap3_beagle.h | 1 - include/configs/omap3_evm.h | 1 - include/configs/omap3_logic.h | 1 - include/configs/pcm051.h | 5 - include/configs/rockchip-common.h | 2 - include/configs/sama5d2_ptc.h | 3 - include/configs/sansa_fuze_plus.h | 2 - include/configs/siemens-am33x-common.h | 6 - include/configs/sunxi-common.h | 30 +- include/configs/tao3530.h | 2 - include/configs/trats.h | 1 - include/configs/trats2.h | 1 - include/configs/vinco.h | 4 - include/configs/warp7.h | 4 - include/configs/xfi3.h | 2 - include/configs/xilinx_zynqmp.h | 1 - include/dt-bindings/clock/sun8i-a23-a33-ccu.h | 127 ++++++ include/dt-bindings/reset/sun8i-a23-a33-ccu.h | 87 ++++ scripts/config_whitelist.txt | 6 - 217 files changed, 1860 insertions(+), 1067 deletions(-) create mode 100644 arch/arm/dts/axp223.dtsi create mode 100644 arch/arm/dts/sun7i-a20-olinuxino-micro-emmc.dts create mode 100644 arch/arm/dts/sun8i-a83t-bananapi-m3-u-boot.dtsi rename arch/arm/dts/{sun8i-a83t-sinovoip-bpi-m3.dts => sun8i-a83t-bananapi-m3.dts} (100%) create mode 100644 arch/arm/dts/sun8i-a83t-cubietruck-plus-u-boot.dtsi create mode 100644 configs/A20-OLinuXino_MICRO-eMMC_defconfig create mode 100644 configs/bananapi_m1_plus_defconfig create mode 100644 include/dt-bindings/clock/sun8i-a23-a33-ccu.h create mode 100644 include/dt-bindings/reset/sun8i-a23-a33-ccu.h

On Wed, Sep 27, 2017 at 12:31:16PM +0200, Maxime Ripard wrote:
Hi Tom,
Here is a pull request for the sunxi related changes for the next U-Boot version.
The diffstat is a bit scary, but mostly because of the Kconfig migration of the USB ethernet related options, which were enabled by a big number of boards. The fastboot options simplification is also one of the offenders.
This is my first pull request ever, so I might have done something wrong, let me know if it's the case.
Sorry, this is pretty broken: $ make O=/tmp/T sandbox_config make[1]: Entering directory `/tmp/T' GEN ./Makefile drivers/usb/Kconfig:1:error: recursive dependency detected! For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" drivers/usb/Kconfig:1: symbol USB is selected by ARCH_SUNXI For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" arch/arm/Kconfig:674: symbol ARCH_SUNXI is part of choice <choice> For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" arch/arm/Kconfig:291: choice <choice> contains symbol ARCH_SUNXI For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" arch/arm/Kconfig:674: symbol ARCH_SUNXI depends on USB_MUSB_GADGET For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" drivers/usb/musb-new/Kconfig:11: symbol USB_MUSB_GADGET depends on USB

On Wed, Sep 27, 2017 at 12:33:06PM +0000, Tom Rini wrote:
On Wed, Sep 27, 2017 at 12:31:16PM +0200, Maxime Ripard wrote:
Hi Tom,
Here is a pull request for the sunxi related changes for the next U-Boot version.
The diffstat is a bit scary, but mostly because of the Kconfig migration of the USB ethernet related options, which were enabled by a big number of boards. The fastboot options simplification is also one of the offenders.
This is my first pull request ever, so I might have done something wrong, let me know if it's the case.
Sorry, this is pretty broken: $ make O=/tmp/T sandbox_config make[1]: Entering directory `/tmp/T' GEN ./Makefile drivers/usb/Kconfig:1:error: recursive dependency detected! For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" drivers/usb/Kconfig:1: symbol USB is selected by ARCH_SUNXI For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" arch/arm/Kconfig:674: symbol ARCH_SUNXI is part of choice <choice> For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" arch/arm/Kconfig:291: choice <choice> contains symbol ARCH_SUNXI For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" arch/arm/Kconfig:674: symbol ARCH_SUNXI depends on USB_MUSB_GADGET For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" drivers/usb/musb-new/Kconfig:11: symbol USB_MUSB_GADGET depends on USB
Gah. Sorry for that. So much for slipping in a fix without testing it...
I wonder why it's considered a recursive dependency though.
The situation seems to be:
selects depends ARCH_SUNXI --------> USB <--------- USB_MUSB_GADGET | +-------> USB_ETHER implies
USB_ETHER is implied only if USB_MUSB_GADGET is set, but that looks like a directed graph without any loop, right?
Or am I missing something?
Maxime

On Wed, Sep 27, 2017 at 05:34:04PM +0200, Maxime Ripard wrote:
On Wed, Sep 27, 2017 at 12:33:06PM +0000, Tom Rini wrote:
On Wed, Sep 27, 2017 at 12:31:16PM +0200, Maxime Ripard wrote:
Hi Tom,
Here is a pull request for the sunxi related changes for the next U-Boot version.
The diffstat is a bit scary, but mostly because of the Kconfig migration of the USB ethernet related options, which were enabled by a big number of boards. The fastboot options simplification is also one of the offenders.
This is my first pull request ever, so I might have done something wrong, let me know if it's the case.
Sorry, this is pretty broken: $ make O=/tmp/T sandbox_config make[1]: Entering directory `/tmp/T' GEN ./Makefile drivers/usb/Kconfig:1:error: recursive dependency detected! For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" drivers/usb/Kconfig:1: symbol USB is selected by ARCH_SUNXI For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" arch/arm/Kconfig:674: symbol ARCH_SUNXI is part of choice <choice> For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" arch/arm/Kconfig:291: choice <choice> contains symbol ARCH_SUNXI For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" arch/arm/Kconfig:674: symbol ARCH_SUNXI depends on USB_MUSB_GADGET For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" drivers/usb/musb-new/Kconfig:11: symbol USB_MUSB_GADGET depends on USB
Gah. Sorry for that. So much for slipping in a fix without testing it...
I wonder why it's considered a recursive dependency though.
The situation seems to be:
selects depends
ARCH_SUNXI --------> USB <--------- USB_MUSB_GADGET | +-------> USB_ETHER implies
USB_ETHER is implied only if USB_MUSB_GADGET is set, but that looks like a directed graph without any loop, right?
Or am I missing something?
implies is tricky, and I think it comes down to ARCH_SUNXI being under a choice. What I think we generally need to do here is use 'default y if ...' under things like USB_MUSB_GADGET instead of imply X if Y, under the ARCH_xxx choice and similar. An alternative that may, or may not, make sense would be mirroring TI_COMMON_CMD_OPTIONS from board/ti/common/Kconfig, where the intent there is that that TI-the-vendor wants a consistent experience on their various EVMs so that gets set to enable X/Y/Z, but a custom board based on a TI SoC might not want to enable all of that since it's not an EVM that wants the kitchen sink, so to speak.

Hi,
On Wed, Sep 27, 2017 at 03:45:20PM +0000, Tom Rini wrote:
On Wed, Sep 27, 2017 at 05:34:04PM +0200, Maxime Ripard wrote:
On Wed, Sep 27, 2017 at 12:33:06PM +0000, Tom Rini wrote:
On Wed, Sep 27, 2017 at 12:31:16PM +0200, Maxime Ripard wrote:
Hi Tom,
Here is a pull request for the sunxi related changes for the next U-Boot version.
The diffstat is a bit scary, but mostly because of the Kconfig migration of the USB ethernet related options, which were enabled by a big number of boards. The fastboot options simplification is also one of the offenders.
This is my first pull request ever, so I might have done something wrong, let me know if it's the case.
Sorry, this is pretty broken: $ make O=/tmp/T sandbox_config make[1]: Entering directory `/tmp/T' GEN ./Makefile drivers/usb/Kconfig:1:error: recursive dependency detected! For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" drivers/usb/Kconfig:1: symbol USB is selected by ARCH_SUNXI For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" arch/arm/Kconfig:674: symbol ARCH_SUNXI is part of choice <choice> For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" arch/arm/Kconfig:291: choice <choice> contains symbol ARCH_SUNXI For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" arch/arm/Kconfig:674: symbol ARCH_SUNXI depends on USB_MUSB_GADGET For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" drivers/usb/musb-new/Kconfig:11: symbol USB_MUSB_GADGET depends on USB
Gah. Sorry for that. So much for slipping in a fix without testing it...
I wonder why it's considered a recursive dependency though.
The situation seems to be:
selects depends
ARCH_SUNXI --------> USB <--------- USB_MUSB_GADGET | +-------> USB_ETHER implies
USB_ETHER is implied only if USB_MUSB_GADGET is set, but that looks like a directed graph without any loop, right?
Or am I missing something?
implies is tricky, and I think it comes down to ARCH_SUNXI being under a choice. What I think we generally need to do here is use 'default y if ...' under things like USB_MUSB_GADGET instead of imply X if Y, under the ARCH_xxx choice and similar.
Yeah, I tested a similar option in parallel, and putting a default y if ARCH_SUNXI && USB_MUSB_GADGET under USB_ETHER work fine.
Would that work for you? I'll respin the pull request with this change if so.
An alternative that may, or may not, make sense would be mirroring TI_COMMON_CMD_OPTIONS from board/ti/common/Kconfig, where the intent there is that that TI-the-vendor wants a consistent experience on their various EVMs so that gets set to enable X/Y/Z, but a custom board based on a TI SoC might not want to enable all of that since it's not an EVM that wants the kitchen sink, so to speak.
Yeah, we were also starting to think about it (mostly for tablets vs dev boards uses), but the discussion didn't really settle yet.
Thanks! Maxime

On Wed, Sep 27, 2017 at 05:55:31PM +0200, Maxime Ripard wrote:
Hi,
On Wed, Sep 27, 2017 at 03:45:20PM +0000, Tom Rini wrote:
On Wed, Sep 27, 2017 at 05:34:04PM +0200, Maxime Ripard wrote:
On Wed, Sep 27, 2017 at 12:33:06PM +0000, Tom Rini wrote:
On Wed, Sep 27, 2017 at 12:31:16PM +0200, Maxime Ripard wrote:
Hi Tom,
Here is a pull request for the sunxi related changes for the next U-Boot version.
The diffstat is a bit scary, but mostly because of the Kconfig migration of the USB ethernet related options, which were enabled by a big number of boards. The fastboot options simplification is also one of the offenders.
This is my first pull request ever, so I might have done something wrong, let me know if it's the case.
Sorry, this is pretty broken: $ make O=/tmp/T sandbox_config make[1]: Entering directory `/tmp/T' GEN ./Makefile drivers/usb/Kconfig:1:error: recursive dependency detected! For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" drivers/usb/Kconfig:1: symbol USB is selected by ARCH_SUNXI For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" arch/arm/Kconfig:674: symbol ARCH_SUNXI is part of choice <choice> For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" arch/arm/Kconfig:291: choice <choice> contains symbol ARCH_SUNXI For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" arch/arm/Kconfig:674: symbol ARCH_SUNXI depends on USB_MUSB_GADGET For a resolution refer to Documentation/kbuild/kconfig-language.txt subsection "Kconfig recursive dependency limitations" drivers/usb/musb-new/Kconfig:11: symbol USB_MUSB_GADGET depends on USB
Gah. Sorry for that. So much for slipping in a fix without testing it...
I wonder why it's considered a recursive dependency though.
The situation seems to be:
selects depends
ARCH_SUNXI --------> USB <--------- USB_MUSB_GADGET | +-------> USB_ETHER implies
USB_ETHER is implied only if USB_MUSB_GADGET is set, but that looks like a directed graph without any loop, right?
Or am I missing something?
implies is tricky, and I think it comes down to ARCH_SUNXI being under a choice. What I think we generally need to do here is use 'default y if ...' under things like USB_MUSB_GADGET instead of imply X if Y, under the ARCH_xxx choice and similar.
Yeah, I tested a similar option in parallel, and putting a default y if ARCH_SUNXI && USB_MUSB_GADGET under USB_ETHER work fine.
Would that work for you? I'll respin the pull request with this change if so.
That's fine, thanks!
An alternative that may, or may not, make sense would be mirroring TI_COMMON_CMD_OPTIONS from board/ti/common/Kconfig, where the intent there is that that TI-the-vendor wants a consistent experience on their various EVMs so that gets set to enable X/Y/Z, but a custom board based on a TI SoC might not want to enable all of that since it's not an EVM that wants the kitchen sink, so to speak.
Yeah, we were also starting to think about it (mostly for tablets vs dev boards uses), but the discussion didn't really settle yet.
OK.
participants (2)
-
Maxime Ripard
-
Tom Rini