Hi Tom, I think I figured out what was wrong with the test. It seems to depend on the number of CPUs used to run them. I got a passing run here:
https://travis-ci.org/github/sjg20/u-boot/builds/711807208 The following changes since commit ada61f1ee2a4eaa1b29d699b5ba940483171df8a: Merge https://gitlab.denx.de/u-boot/custodians/u-boot-riscv (2020-07-24 08:43:08 -0400) are available in the Git repository at: git://git.denx.de/u-boot-dm.git tags/dm-pull-20jul20-take2a for you to fetch changes up to 347e0f00e850028b4595287d5158c5a8f36ba910: binman: Re-enable concurrent tests (2020-07-26 19:59:57 -0600) ---------------------------------------------------------------- binman support for FIT new UCLASS_SOC patman switch 'test' command minor fdt fixes patman usability improvements ---------------------------------------------------------------- Dave Gerlach (9): doc: Add new doc for soc ID driver model dm: soc: Introduce UCLASS_SOC for SOC ID and attribute matching test: Add tests for SOC uclass dm: soc: Introduce soc_ti_k3 driver for TI K3 SoCs arm: dts: k3-am65-wakeup: Introduce chipid node arm: dts: k3-j721e-mcu-wakeup: Introduce chipid node configs: am65x_evm: Enable CONFIG_SOC_DEVICE and CONFIG_SOC_DEVICE_TI_K3 configs: j721e_evm: Enable CONFIG_SOC_DEVICE and CONFIG_SOC_DEVICE_TI_K3 arm: mach-k3: Use SOC driver for device identification Heinrich Schuchardt (1): test/dm: check if devices exist Masahiro Yamada (6): fdt_support: add static to fdt_node_set_part_info() fdt_support: call mtdparts_init() after finding MTD node to fix up fdt_support: skip MTD node with "disabled" in fdt_fixup_mtdparts() treewide: convert (void *)devfdt_get_addr() to dev_read_addr_ptr() treewide: remove (phys_addr_t) casts from devfdt_get_addr() treewide: convert devfdt_get_addr() to dev_read_addr() Michal Simek (3): ARM: rmobile: Switch back to fdtdec_setup_memory/banksize_fdt() Revert "lib: fdt: Split fdtdec_setup_memory_banksize()" Revert "lib: fdt: Split fdtdec_setup_mem_size_base()" Nicolas Boichat (2): patman: Make sure sendemail.suppresscc is (un)set correctly patman: When no tracking branch is provided, tell the user Patrick Delaunay (2): patman: Detect unexpected END Add information for skipped commit options Philippe Reynes (1): lib: libfdt: fdt_region: avoid NULL pointer access Simon Glass (35): patman: Use test_util to show test results patman: Move main code out to a control module patman: Add a test that uses gitpython patman: Allow creating patches for another branch patman: Allow skipping patches at the end patman: Convert to ArgumentParser patman: Allow different commands patman: Add a 'test' subcommand patman: Allow disabling 'bright' mode with Print output patman: Support collecting response tags in Patchstream patman: Add a -D option to enable debugging dm: core Fix long line in device_bind_common() .gitignore: Ignore Python 3 cache directories binman: Output errors to stderr binman: cbfs: Fix IFWI typo binman: Correct the search patch for pylibfdt binman: Specify the toolpath when running test coverage binman: Set a default toolpath binman: Add support for calling mkimage binman: Fix a few typos in the entry docs binman: Adjust pylibfdt for incremental build binman: Use super() instead of specifying parent type binman: Add an etype for external binary blobs binman: Convert existing binary blobs to blob_ext binman: Allow external binaries to be missing patman: Update errors and warnings to use stderr binman: Detect when valid images are not produced binman: Allow missing Intel blobs binman: Allow zero-length entries to overlap mkimage: Allow updating the FIT timestamp dtoc: Allow adding variable-sized data to a dtb binman: Add support for generating a FIT cpu: Convert the methods to use a const udevice * binman: Don't change the descriptor in tests binman: Re-enable concurrent tests .azure-pipelines.yml | 2 +- .gitignore | 3 + .gitlab-ci.yml | 2 +- .travis.yml | 2 +- arch/arm/dts/k3-am65-wakeup.dtsi | 5 + arch/arm/dts/k3-am654-base-board-u-boot.dtsi | 4 + arch/arm/dts/k3-j721e-common-proc-board-u-boot.dtsi | 4 + arch/arm/dts/k3-j721e-mcu-wakeup.dtsi | 5 + arch/arm/mach-k3/common.c | 48 +++--- arch/arm/mach-k3/common.h | 6 - arch/arm/mach-k3/include/mach/hardware.h | 1 - arch/arm/mach-snapdragon/clock-snapdragon.c | 2 +- arch/arm/mach-snapdragon/pinctrl-snapdragon.c | 2 +- arch/nios2/cpu/cpu.c | 8 +- arch/sandbox/dts/test.dts | 4 + arch/x86/cpu/apollolake/cpu.c | 2 +- arch/x86/cpu/baytrail/cpu.c | 4 +- arch/x86/cpu/broadwell/cpu_full.c | 4 +- arch/x86/cpu/cpu_x86.c | 6 +- arch/x86/cpu/ivybridge/model_206ax.c | 5 +- arch/x86/cpu/qemu/cpu.c | 4 +- arch/x86/include/asm/cpu_x86.h | 6 +- board/renesas/rcar-common/common.c | 4 +- common/fdt_region.c | 2 + common/fdt_support.c | 32 ++-- configs/am65x_evm_a53_defconfig | 2 + configs/am65x_evm_r5_defconfig | 2 + configs/am65x_hs_evm_a53_defconfig | 2 + configs/am65x_hs_evm_r5_defconfig | 2 + configs/j721e_evm_a72_defconfig | 2 + configs/j721e_evm_r5_defconfig | 2 + configs/j721e_hs_evm_a72_defconfig | 2 + configs/j721e_hs_evm_r5_defconfig | 2 + configs/sandbox64_defconfig | 1 + configs/sandbox_defconfig | 1 + configs/sandbox_flattree_defconfig | 1 + configs/sandbox_spl_defconfig | 1 + doc/driver-model/index.rst | 1 + doc/driver-model/soc-framework.rst | 68 +++++++++ doc/mkimage.1 | 9 ++ drivers/adc/exynos-adc.c | 2 +- drivers/ata/dwc_ahci.c | 2 +- drivers/clk/altera/clk-agilex.c | 2 +- drivers/clk/altera/clk-arria10.c | 2 +- drivers/clk/exynos/clk-exynos7420.c | 4 +- drivers/clk/renesas/clk-rcar-gen2.c | 2 +- drivers/clk/renesas/clk-rcar-gen3.c | 2 +- drivers/clk/uniphier/clk-uniphier-core.c | 2 +- drivers/core/device.c | 3 +- drivers/cpu/bmips_cpu.c | 8 +- drivers/cpu/cpu-uclass.c | 8 +- drivers/cpu/cpu_sandbox.c | 8 +- drivers/cpu/imx8_cpu.c | 8 +- drivers/cpu/mpc83xx_cpu.c | 26 ++-- drivers/cpu/riscv_cpu.c | 8 +- drivers/dma/ti-edma3.c | 2 +- drivers/gpio/altera_pio.c | 2 +- drivers/gpio/atmel_pio4.c | 2 +- drivers/gpio/bcm2835_gpio.c | 2 +- drivers/gpio/da8xx_gpio.c | 2 +- drivers/gpio/gpio-rcar.c | 2 +- drivers/gpio/gpio-rza1.c | 2 +- drivers/gpio/gpio-uniphier.c | 2 +- drivers/gpio/msm_gpio.c | 2 +- drivers/gpio/mvebu_gpio.c | 2 +- drivers/gpio/mxc_gpio.c | 2 +- drivers/gpio/mxs_gpio.c | 2 +- drivers/gpio/omap_gpio.c | 4 +- drivers/gpio/pm8916_gpio.c | 2 +- drivers/gpio/s5p_gpio.c | 4 +- drivers/gpio/sifive-gpio.c | 2 +- drivers/gpio/sunxi_gpio.c | 2 +- drivers/gpio/vybrid_gpio.c | 2 +- drivers/i2c/at91_i2c.c | 2 +- drivers/i2c/davinci_i2c.c | 2 +- drivers/i2c/exynos_hs_i2c.c | 2 +- drivers/i2c/i2c-uniphier-f.c | 2 +- drivers/i2c/i2c-uniphier.c | 2 +- drivers/i2c/imx_lpi2c.c | 2 +- drivers/i2c/iproc_i2c.c | 2 +- drivers/i2c/mxc_i2c.c | 2 +- drivers/i2c/omap24xx_i2c.c | 2 +- drivers/i2c/s3c24x0_i2c.c | 2 +- drivers/input/tegra-kbc.c | 2 +- drivers/mailbox/tegra-hsp.c | 2 +- drivers/misc/altera_sysid.c | 2 +- drivers/misc/imx8/scu.c | 2 +- drivers/misc/microchip_flexcom.c | 2 +- drivers/mmc/aspeed_sdhci.c | 2 +- drivers/mmc/atmel_sdhci.c | 2 +- drivers/mmc/bcm2835_sdhci.c | 2 +- drivers/mmc/bcm2835_sdhost.c | 2 +- drivers/mmc/bcmstb_sdhci.c | 2 +- drivers/mmc/ftsdc010_mci.c | 2 +- drivers/mmc/hi6220_dw_mmc.c | 2 +- drivers/mmc/iproc_sdhci.c | 2 +- drivers/mmc/jz_mmc.c | 2 +- drivers/mmc/meson_gx_mmc.c | 2 +- drivers/mmc/msm_sdhci.c | 2 +- drivers/mmc/mv_sdhci.c | 2 +- drivers/mmc/omap_hsmmc.c | 4 +- drivers/mmc/sdhci-cadence.c | 2 +- drivers/mmc/sh_mmcif.c | 2 +- drivers/mmc/sh_sdhi.c | 2 +- drivers/mmc/socfpga_dw_mmc.c | 2 +- drivers/mmc/sti_sdhci.c | 2 +- drivers/mmc/tangier_sdhci.c | 2 +- drivers/mmc/tmio-common.c | 2 +- drivers/mmc/xenon_sdhci.c | 2 +- drivers/net/ag7xxx.c | 2 +- drivers/net/dwc_eth_qos.c | 4 +- drivers/net/ethoc.c | 2 +- drivers/net/fec_mxc.c | 2 +- drivers/net/fsl_mcdmafec.c | 2 +- drivers/net/ftgmac100.c | 2 +- drivers/net/ftmac100.c | 2 +- drivers/net/ks8851_mll.c | 2 +- drivers/net/mcffec.c | 2 +- drivers/net/mtk_eth.c | 2 +- drivers/net/mvgbe.c | 2 +- drivers/net/mvneta.c | 2 +- drivers/net/ravb.c | 2 +- drivers/net/sh_eth.c | 2 +- drivers/net/smc911x.c | 2 +- drivers/net/sni_ave.c | 2 +- drivers/net/sun8i_emac.c | 2 +- drivers/net/sunxi_emac.c | 2 +- drivers/net/ti/keystone_net.c | 2 +- drivers/net/xilinx_axi_emac.c | 2 +- drivers/net/xilinx_emaclite.c | 2 +- drivers/pci_endpoint/pcie-cadence-ep.c | 2 +- drivers/pinctrl/ath79/pinctrl_ar933x.c | 2 +- drivers/pinctrl/ath79/pinctrl_qca953x.c | 2 +- drivers/pinctrl/exynos/pinctrl-exynos.c | 2 +- drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 2 +- drivers/pinctrl/pinctrl-at91-pio4.c | 2 +- drivers/pinctrl/renesas/pfc-r7s72100.c | 2 +- drivers/pinctrl/renesas/pfc.c | 2 +- drivers/pinctrl/uniphier/pinctrl-uniphier-core.c | 2 +- drivers/pwm/exynos_pwm.c | 2 +- drivers/pwm/pwm-imx.c | 2 +- drivers/pwm/pwm-mtk.c | 2 +- drivers/pwm/sunxi_pwm.c | 2 +- drivers/reset/reset-uniphier.c | 2 +- drivers/rtc/mvrtc.c | 2 +- drivers/serial/altera_jtag_uart.c | 2 +- drivers/serial/altera_uart.c | 2 +- drivers/serial/atmel_usart.c | 2 +- drivers/serial/serial_ar933x.c | 2 +- drivers/serial/serial_arc.c | 2 +- drivers/serial/serial_bcm283x_mu.c | 2 +- drivers/serial/serial_lpuart.c | 2 +- drivers/serial/serial_mcf.c | 2 +- drivers/serial/serial_meson.c | 2 +- drivers/serial/serial_msm.c | 2 +- drivers/serial/serial_mxc.c | 2 +- drivers/serial/serial_pl01x.c | 2 +- drivers/serial/serial_s5p.c | 2 +- drivers/serial/serial_sh.c | 2 +- drivers/serial/serial_sti_asc.c | 2 +- drivers/serial/serial_stm32.c | 2 +- drivers/serial/serial_uniphier.c | 2 +- drivers/serial/serial_xuartlite.c | 2 +- drivers/soc/Kconfig | 16 ++ drivers/soc/Makefile | 3 + drivers/soc/soc-uclass.c | 102 +++++++++++++ drivers/soc/soc_sandbox.c | 56 +++++++ drivers/soc/soc_ti_k3.c | 124 ++++++++++++++++ drivers/spi/altera_spi.c | 2 +- drivers/spi/atcspi200_spi.c | 2 +- drivers/spi/ath79_spi.c | 2 +- drivers/spi/atmel_spi.c | 2 +- drivers/spi/cf_spi.c | 2 +- drivers/spi/davinci_spi.c | 2 +- drivers/spi/designware_spi.c | 2 +- drivers/spi/exynos_spi.c | 2 +- drivers/spi/fsl_dspi.c | 2 +- drivers/spi/kirkwood_spi.c | 2 +- drivers/spi/mtk_snfi_spi.c | 2 +- drivers/spi/mvebu_a3700_spi.c | 2 +- drivers/spi/mxc_spi.c | 2 +- drivers/spi/omap3_spi.c | 2 +- drivers/spi/spi-sunxi.c | 2 +- drivers/spi/tegra20_sflash.c | 2 +- drivers/spi/tegra20_slink.c | 2 +- drivers/spi/ti_qspi.c | 2 +- drivers/spi/zynq_spi.c | 2 +- drivers/spi/zynqmp_gqspi.c | 4 +- drivers/spmi/spmi-msm.c | 2 +- drivers/timer/ag101p_timer.c | 2 +- drivers/timer/altera_timer.c | 2 +- drivers/timer/atcpit100_timer.c | 2 +- drivers/timer/omap-timer.c | 2 +- drivers/usb/dwc3/dwc3-uniphier.c | 2 +- drivers/usb/host/ehci-atmel.c | 2 +- drivers/usb/host/ehci-exynos.c | 2 +- drivers/usb/host/ehci-fsl.c | 2 +- drivers/usb/host/ehci-marvell.c | 2 +- drivers/usb/host/ehci-mx5.c | 2 +- drivers/usb/host/ehci-mx6.c | 4 +- drivers/usb/host/ehci-omap.c | 2 +- drivers/usb/host/ehci-vf.c | 2 +- drivers/usb/host/ohci-da8xx.c | 2 +- drivers/usb/host/ohci-generic.c | 2 +- drivers/usb/host/xhci-exynos5.c | 2 +- drivers/usb/host/xhci-fsl.c | 2 +- drivers/usb/host/xhci-mvebu.c | 2 +- drivers/usb/host/xhci-rcar.c | 2 +- drivers/video/atmel_hlcdfb.c | 2 +- drivers/video/exynos/exynos_dp.c | 2 +- drivers/video/exynos/exynos_fb.c | 2 +- drivers/video/tegra.c | 2 +- drivers/w1/mxc_w1.c | 2 +- drivers/watchdog/omap_wdt.c | 2 +- drivers/watchdog/stm32mp_wdt.c | 2 +- include/cpu.h | 16 +- include/dm/uclass-id.h | 1 + include/fdtdec.h | 39 ----- include/soc.h | 145 ++++++++++++++++++ lib/fdtdec.c | 29 ++-- scripts/dtc/pylibfdt/Makefile | 3 + test/dm/Makefile | 1 + test/dm/acpi.c | 3 + test/dm/core.c | 10 +- test/dm/devres.c | 1 + test/dm/soc.c | 120 +++++++++++++++ test/dm/test-fdt.c | 2 + test/dm/virtio.c | 7 + test/run | 2 +- tools/binman/README.entries | 76 ++++++++++ tools/binman/cmdline.py | 2 + tools/binman/control.py | 19 ++- tools/binman/entry.py | 21 +++ tools/binman/etype/_testing.py | 9 +- tools/binman/etype/blob.py | 2 +- tools/binman/etype/blob_dtb.py | 6 +- tools/binman/etype/blob_ext.py | 39 +++++ tools/binman/etype/blob_named_by_arg.py | 2 +- tools/binman/etype/cbfs.py | 16 +- tools/binman/etype/cros_ec_rw.py | 4 +- tools/binman/etype/fdtmap.py | 2 +- tools/binman/etype/files.py | 2 +- tools/binman/etype/fill.py | 4 +- tools/binman/etype/fit.py | 164 +++++++++++++++++++++ tools/binman/etype/fmap.py | 2 +- tools/binman/etype/gbb.py | 2 +- tools/binman/etype/image_header.py | 4 +- tools/binman/etype/intel_cmc.py | 7 +- tools/binman/etype/intel_descriptor.py | 15 +- tools/binman/etype/intel_fit.py | 8 +- tools/binman/etype/intel_fit_ptr.py | 8 +- tools/binman/etype/intel_fsp.py | 7 +- tools/binman/etype/intel_fsp_m.py | 7 +- tools/binman/etype/intel_fsp_s.py | 7 +- tools/binman/etype/intel_fsp_t.py | 7 +- tools/binman/etype/intel_ifwi.py | 25 +++- tools/binman/etype/intel_me.py | 9 +- tools/binman/etype/intel_mrc.py | 7 +- tools/binman/etype/intel_refcode.py | 7 +- tools/binman/etype/intel_vbt.py | 7 +- tools/binman/etype/intel_vga.py | 7 +- tools/binman/etype/mkimage.py | 62 ++++++++ tools/binman/etype/powerpc_mpc85xx_bootpg_resetvec.py | 5 +- tools/binman/etype/section.py | 58 ++++++-- tools/binman/etype/text.py | 2 +- tools/binman/etype/u_boot.py | 2 +- tools/binman/etype/u_boot_dtb.py | 2 +- tools/binman/etype/u_boot_dtb_with_ucode.py | 4 +- tools/binman/etype/u_boot_elf.py | 4 +- tools/binman/etype/u_boot_img.py | 2 +- tools/binman/etype/u_boot_nodtb.py | 2 +- tools/binman/etype/u_boot_spl.py | 2 +- tools/binman/etype/u_boot_spl_bss_pad.py | 2 +- tools/binman/etype/u_boot_spl_dtb.py | 2 +- tools/binman/etype/u_boot_spl_elf.py | 2 +- tools/binman/etype/u_boot_spl_nodtb.py | 2 +- tools/binman/etype/u_boot_spl_with_ucode_ptr.py | 2 +- tools/binman/etype/u_boot_tpl.py | 2 +- tools/binman/etype/u_boot_tpl_dtb.py | 2 +- tools/binman/etype/u_boot_tpl_dtb_with_ucode.py | 2 +- tools/binman/etype/u_boot_tpl_elf.py | 2 +- tools/binman/etype/u_boot_tpl_with_ucode_ptr.py | 2 +- tools/binman/etype/u_boot_ucode.py | 2 +- tools/binman/etype/u_boot_with_ucode_ptr.py | 2 +- tools/binman/etype/vblock.py | 2 +- tools/binman/etype/x86_reset16.py | 2 +- tools/binman/etype/x86_reset16_spl.py | 2 +- tools/binman/etype/x86_reset16_tpl.py | 2 +- tools/binman/etype/x86_start16.py | 2 +- tools/binman/etype/x86_start16_spl.py | 2 +- tools/binman/etype/x86_start16_tpl.py | 2 +- tools/binman/ftest.py | 138 +++++++++++++++-- tools/binman/image.py | 12 +- tools/binman/main.py | 18 ++- tools/binman/test/156_mkimage.dts | 23 +++ tools/binman/test/157_blob_ext.dts | 14 ++ tools/binman/test/158_blob_ext_missing.dts | 16 ++ tools/binman/test/159_blob_ext_missing_sect.dts | 23 +++ tools/binman/test/160_pack_overlap_zero.dts | 18 +++ tools/binman/test/161_fit.dts | 62 ++++++++ tools/binman/test/162_fit_external.dts | 64 ++++++++ tools/binman/test/163_x86_rom_me_empty.dts | 22 +++ tools/binman/test/164_x86_rom_me_missing.dts | 22 +++ tools/dtoc/fdt.py | 17 ++- tools/dtoc/test_fdt.py | 4 + tools/fit_image.c | 2 +- tools/imagetool.h | 1 + tools/mkimage.c | 5 +- tools/patman/checkpatch.py | 6 + tools/patman/commit.py | 14 ++ tools/patman/control.py | 178 ++++++++++++++++++++++ tools/patman/func_test.py | 169 ++++++++++++++++++++- tools/patman/gitutil.py | 48 +++++- tools/patman/main.py | 196 ++++++++++--------------- tools/patman/patchstream.py | 36 ++++- tools/patman/series.py | 2 +- tools/patman/settings.py | 10 +- tools/patman/terminal.py | 4 +- tools/patman/test_util.py | 21 ++- tools/patman/tools.py | 12 +- tools/patman/tout.py | 6 +- 321 files changed, 2548 insertions(+), 656 deletions(-) create mode 100644 doc/driver-model/soc-framework.rst create mode 100644 drivers/soc/soc-uclass.c create mode 100644 drivers/soc/soc_sandbox.c create mode 100644 drivers/soc/soc_ti_k3.c create mode 100644 include/soc.h create mode 100644 test/dm/soc.c create mode 100644 tools/binman/etype/blob_ext.py create mode 100644 tools/binman/etype/fit.py create mode 100644 tools/binman/etype/mkimage.py create mode 100644 tools/binman/test/156_mkimage.dts create mode 100644 tools/binman/test/157_blob_ext.dts create mode 100644 tools/binman/test/158_blob_ext_missing.dts create mode 100644 tools/binman/test/159_blob_ext_missing_sect.dts create mode 100644 tools/binman/test/160_pack_overlap_zero.dts create mode 100644 tools/binman/test/161_fit.dts create mode 100644 tools/binman/test/162_fit_external.dts create mode 100644 tools/binman/test/163_x86_rom_me_empty.dts create mode 100644 tools/binman/test/164_x86_rom_me_missing.dts create mode 100644 tools/patman/control.py Regards, Simon