All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/15] tools: Support uploading tools to PyPi for use with pip
@ 2023-02-19 14:51 Simon Glass
  2023-02-19 14:51 ` [PATCH 01/15] binman: Avoid unwanted output in testFitFirmwareLoadables() Simon Glass
                   ` (14 more replies)
  0 siblings, 15 replies; 20+ messages in thread
From: Simon Glass @ 2023-02-19 14:51 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Heinrich Schuchardt, Alper Nebi Yasak, Neha Malcom Francis,
	Stefan Herbrechtsmeier, Philippe Reynes, Peng Fan, Simon Glass,
	Douglas Anderson, Jan Kiszka, Joel Stanley, Jonas Karlman,
	Marek Behún, Maxim Cournoyer, Michal Suchanek,
	Pali Rohár, Quentin Schulz, Rick Chen, Roger Quadros,
	Samuel Holland, Sean Anderson

Some of the tools in U-Boot are useful beyond just U-Boot. For example,
patman can be used to work with Linux and other projects which use
mailing lists (and patchwork) for patch submissions. Binman can be used
to package firmware for any project, even though it is heavily slanted
towards U-Boot so far.

While patman has a setup script which is easy to use, binman is a little
more complicated, since it has dependencies, in particular pylibfdt

It would be better if we could put all the tools on PyPi.

This series adds a script for uploading tools. It makes it easier to
update PyPi from time to time, when new features appear.

U-Boot uses tools/patman as a common library of Python functions. For
this to work with PyPi it is easier to split these into a separate
library, used by patman as well. This series creates a new
'u_boot_pylib' package for this purpose.

Unfortunately, some compromises have been made:

- The U-Boot version of concurrencytest has some local patches. To avoid
  dependency issues it seems better to revert these and rely on the
  upstream package[1], although note that it is not actually installed.

- There is an existing 'patman' package, the same 'patmanu' has been
  chosen. This is fairly easy to say. In any case the command-line tool
  name remains as 'patman' and a symlink should ease things for existing
  U-Boot users

- Similarly with binman, the package name chosen is 'binmanu'.

[1] Which unfortunately may be dead but perhaps we could request a new
    maintainer?



Simon Glass (15):
  binman: Avoid unwanted output in testFitFirmwareLoadables()
  Revert "patman: test_util: Print test stdout/stderr within test
    summaries"
  Remove concurrencytest
  patman: Move library functions into a library directory
  script: Add a script to build a PyPi package
  patman: Add support for building a u_boot_tools PyPi package
  patman: Rename directory to patmanu
  patman: Add support for building a patmanu PyPi package
  buildman: Add support for building a buildman PyPi package
  dtoc: Add support for building a dtoc PyPi package
  binman: Rename directory to binmanu
  binman: Add support for building a binmanu PyPi package
  test: Add concurrencytest to the requirements
  doc: Add notes on how to install patman and binman
  CI: Add a check for building tools for PyPi

 .azure-pipelines.yml                          |  10 +
 .gitlab-ci.yml                                |   6 +
 Makefile                                      |  22 +-
 scripts/event_dump.py                         |   4 +-
 scripts/make_pip.sh                           | 113 ++++++
 test/py/requirements.txt                      |   1 +
 test/run                                      |   1 +
 tools/binman                                  |   1 +
 tools/{binman => binmanu}/.gitignore          |   0
 tools/{binman => binmanu}/README.rst          |   0
 tools/{binman => binmanu}/__init__.py         |   0
 tools/{binman => binmanu}/binman              |   0
 tools/{binman => binmanu}/binman.rst          |  14 +
 tools/{binman => binmanu}/bintool.py          |  12 +-
 tools/{binman => binmanu}/bintool_test.py     |  14 +-
 tools/{binman => binmanu}/bintools.rst        |   0
 tools/{binman => binmanu}/btool/_testing.py   |   2 +-
 tools/{binman => binmanu}/btool/btool_gzip.py |   2 +-
 tools/{binman => binmanu}/btool/bzip2.py      |   2 +-
 tools/{binman => binmanu}/btool/cbfstool.py   |   2 +-
 tools/{binman => binmanu}/btool/fiptool.py    |   2 +-
 tools/{binman => binmanu}/btool/futility.py   |   2 +-
 tools/{binman => binmanu}/btool/ifwitool.py   |   2 +-
 tools/{binman => binmanu}/btool/lz4.py        |   4 +-
 tools/{binman => binmanu}/btool/lzma_alone.py |   4 +-
 tools/{binman => binmanu}/btool/lzop.py       |   2 +-
 tools/{binman => binmanu}/btool/mkimage.py    |   2 +-
 tools/{binman => binmanu}/btool/xz.py         |   2 +-
 tools/{binman => binmanu}/btool/zstd.py       |   2 +-
 tools/{binman => binmanu}/cbfs_util.py        |   8 +-
 tools/{binman => binmanu}/cbfs_util_test.py   |  12 +-
 tools/{binman => binmanu}/cmdline.py          |   2 +-
 tools/{binman => binmanu}/control.py          |  22 +-
 tools/{binman => binmanu}/elf.py              |   8 +-
 tools/{binman => binmanu}/elf_test.py         |  10 +-
 tools/{binman => binmanu}/entries.rst         |   0
 tools/{binman => binmanu}/entry.py            |  14 +-
 tools/{binman => binmanu}/entry_test.py       |  10 +-
 tools/{binman => binmanu}/etype/_testing.py   |   4 +-
 tools/{binman => binmanu}/etype/atf_bl31.py   |   2 +-
 tools/{binman => binmanu}/etype/atf_fip.py    |  10 +-
 tools/{binman => binmanu}/etype/blob.py       |   8 +-
 tools/{binman => binmanu}/etype/blob_dtb.py   |   6 +-
 tools/{binman => binmanu}/etype/blob_ext.py   |   6 +-
 .../etype/blob_ext_list.py                    |   6 +-
 .../etype/blob_named_by_arg.py                |   4 +-
 tools/{binman => binmanu}/etype/blob_phase.py |   4 +-
 tools/{binman => binmanu}/etype/cbfs.py       |   8 +-
 tools/{binman => binmanu}/etype/collection.py |   2 +-
 tools/{binman => binmanu}/etype/cros_ec_rw.py |   2 +-
 tools/{binman => binmanu}/etype/fdtmap.py     |   8 +-
 tools/{binman => binmanu}/etype/files.py      |   6 +-
 tools/{binman => binmanu}/etype/fill.py       |   4 +-
 tools/{binman => binmanu}/etype/fit.py        |   8 +-
 tools/{binman => binmanu}/etype/fmap.py       |  10 +-
 tools/{binman => binmanu}/etype/gbb.py        |   6 +-
 .../{binman => binmanu}/etype/image_header.py |   2 +-
 tools/{binman => binmanu}/etype/intel_cmc.py  |   2 +-
 .../etype/intel_descriptor.py                 |   4 +-
 tools/{binman => binmanu}/etype/intel_fit.py  |   2 +-
 .../etype/intel_fit_ptr.py                    |   2 +-
 tools/{binman => binmanu}/etype/intel_fsp.py  |   2 +-
 .../{binman => binmanu}/etype/intel_fsp_m.py  |   2 +-
 .../{binman => binmanu}/etype/intel_fsp_s.py  |   2 +-
 .../{binman => binmanu}/etype/intel_fsp_t.py  |   2 +-
 tools/{binman => binmanu}/etype/intel_ifwi.py |   6 +-
 tools/{binman => binmanu}/etype/intel_me.py   |   2 +-
 tools/{binman => binmanu}/etype/intel_mrc.py  |   2 +-
 .../etype/intel_refcode.py                    |   2 +-
 tools/{binman => binmanu}/etype/intel_vbt.py  |   2 +-
 tools/{binman => binmanu}/etype/intel_vga.py  |   2 +-
 tools/{binman => binmanu}/etype/mkimage.py    |   4 +-
 tools/{binman => binmanu}/etype/null.py       |   4 +-
 tools/{binman => binmanu}/etype/opensbi.py    |   2 +-
 .../etype/powerpc_mpc85xx_bootpg_resetvec.py  |   2 +-
 tools/{binman => binmanu}/etype/pre_load.py   |   8 +-
 tools/{binman => binmanu}/etype/scp.py        |   2 +-
 tools/{binman => binmanu}/etype/section.py    |  10 +-
 tools/{binman => binmanu}/etype/tee_os.py     |   4 +-
 tools/{binman => binmanu}/etype/text.py       |   4 +-
 tools/{binman => binmanu}/etype/u_boot.py     |   4 +-
 tools/{binman => binmanu}/etype/u_boot_dtb.py |   4 +-
 .../etype/u_boot_dtb_with_ucode.py            |   8 +-
 tools/{binman => binmanu}/etype/u_boot_elf.py |   6 +-
 tools/{binman => binmanu}/etype/u_boot_env.py |   4 +-
 .../etype/u_boot_expanded.py                  |   2 +-
 tools/{binman => binmanu}/etype/u_boot_img.py |   4 +-
 .../{binman => binmanu}/etype/u_boot_nodtb.py |   4 +-
 tools/{binman => binmanu}/etype/u_boot_spl.py |   4 +-
 .../etype/u_boot_spl_bss_pad.py               |   8 +-
 .../etype/u_boot_spl_dtb.py                   |   4 +-
 .../etype/u_boot_spl_elf.py                   |   4 +-
 .../etype/u_boot_spl_expanded.py              |   6 +-
 .../etype/u_boot_spl_nodtb.py                 |   4 +-
 .../etype/u_boot_spl_with_ucode_ptr.py        |   2 +-
 tools/{binman => binmanu}/etype/u_boot_tpl.py |   4 +-
 .../etype/u_boot_tpl_bss_pad.py               |   8 +-
 .../etype/u_boot_tpl_dtb.py                   |   4 +-
 .../etype/u_boot_tpl_dtb_with_ucode.py        |   2 +-
 .../etype/u_boot_tpl_elf.py                   |   4 +-
 .../etype/u_boot_tpl_expanded.py              |   6 +-
 .../etype/u_boot_tpl_nodtb.py                 |   4 +-
 .../etype/u_boot_tpl_with_ucode_ptr.py        |  10 +-
 .../{binman => binmanu}/etype/u_boot_ucode.py |   6 +-
 tools/{binman => binmanu}/etype/u_boot_vpl.py |   4 +-
 .../etype/u_boot_vpl_bss_pad.py               |   8 +-
 .../etype/u_boot_vpl_dtb.py                   |   4 +-
 .../etype/u_boot_vpl_elf.py                   |   4 +-
 .../etype/u_boot_vpl_expanded.py              |   6 +-
 .../etype/u_boot_vpl_nodtb.py                 |   4 +-
 .../etype/u_boot_with_ucode_ptr.py            |  10 +-
 tools/{binman => binmanu}/etype/vblock.py     |   6 +-
 .../{binman => binmanu}/etype/x86_reset16.py  |   4 +-
 .../etype/x86_reset16_spl.py                  |   4 +-
 .../etype/x86_reset16_tpl.py                  |   4 +-
 .../{binman => binmanu}/etype/x86_start16.py  |   4 +-
 .../etype/x86_start16_spl.py                  |   4 +-
 .../etype/x86_start16_tpl.py                  |   4 +-
 tools/{binman => binmanu}/fdt_test.py         |   2 +-
 tools/{binman => binmanu}/fip_util.py         |   4 +-
 tools/{binman => binmanu}/fip_util_test.py    |   8 +-
 tools/{binman => binmanu}/fmap_util.py        |   2 +-
 tools/{binman => binmanu}/ftest.py            |  49 +--
 tools/{binman => binmanu}/image.py            |  12 +-
 tools/{binman => binmanu}/image_test.py       |   4 +-
 tools/{binman => binmanu}/index.rst           |   0
 tools/{binman => binmanu}/main.py             |  43 ++-
 tools/{binman => binmanu}/missing-blob-help   |   0
 tools/binmanu/pyproject.toml                  |  31 ++
 tools/{binman => binmanu}/setup.py            |   0
 tools/{binman => binmanu}/state.py            |   4 +-
 .../{binman => binmanu}/test/001_invalid.dts  |   0
 .../test/002_missing_node.dts                 |   0
 tools/{binman => binmanu}/test/003_empty.dts  |   0
 .../test/004_invalid_entry.dts                |   0
 tools/{binman => binmanu}/test/005_simple.dts |   0
 .../test/006_dual_image.dts                   |   0
 .../test/007_bad_align.dts                    |   0
 tools/{binman => binmanu}/test/008_pack.dts   |   0
 .../test/009_pack_extra.dts                   |   0
 .../test/010_pack_align_power2.dts            |   0
 .../test/011_pack_align_size_power2.dts       |   0
 .../test/012_pack_inv_align.dts               |   0
 .../test/013_pack_inv_size_align.dts          |   0
 .../test/014_pack_overlap.dts                 |   0
 .../test/015_pack_overflow.dts                |   0
 .../test/016_pack_image_overflow.dts          |   0
 .../test/017_pack_image_size.dts              |   0
 .../test/018_pack_image_align.dts             |   0
 .../test/019_pack_inv_image_align.dts         |   0
 .../test/020_pack_inv_image_align_power2.dts  |   0
 .../test/021_image_pad.dts                    |   0
 .../test/022_image_name.dts                   |   0
 tools/{binman => binmanu}/test/023_blob.dts   |   0
 tools/{binman => binmanu}/test/024_sorted.dts |   0
 .../test/025_pack_zero_size.dts               |   0
 .../test/026_pack_u_boot_dtb.dts              |   0
 .../test/027_pack_4gb_no_size.dts             |   0
 .../test/028_pack_4gb_outside.dts             |   0
 .../{binman => binmanu}/test/029_x86_rom.dts  |   0
 .../test/030_x86_rom_me_no_desc.dts           |   0
 .../test/031_x86_rom_me.dts                   |   0
 .../test/032_intel_vga.dts                    |   0
 .../test/033_x86_start16.dts                  |   0
 .../test/034_x86_ucode.dts                    |   0
 .../test/035_x86_single_ucode.dts             |   0
 .../test/036_u_boot_img.dts                   |   0
 .../test/037_x86_no_ucode.dts                 |   0
 .../test/038_x86_ucode_missing_node.dts       |   0
 .../test/039_x86_ucode_missing_node2.dts      |   0
 .../test/040_x86_ucode_not_in_image.dts       |   0
 .../test/041_unknown_pos_size.dts             |   0
 .../test/042_intel_fsp.dts                    |   0
 .../test/043_intel_cmc.dts                    |   0
 .../test/044_x86_optional_ucode.dts           |   0
 .../test/045_prop_test.dts                    |   0
 .../test/046_intel_vbt.dts                    |   0
 .../test/047_spl_bss_pad.dts                  |   0
 .../test/048_x86_start16_spl.dts              |   0
 .../test/049_x86_ucode_spl.dts                |   0
 .../test/050_intel_mrc.dts                    |   0
 .../test/051_u_boot_spl_dtb.dts               |   0
 .../test/052_u_boot_spl_nodtb.dts             |   0
 .../{binman => binmanu}/test/053_symbols.dts  |   0
 .../test/054_unit_address.dts                 |   0
 .../{binman => binmanu}/test/055_sections.dts |   0
 .../test/056_name_prefix.dts                  |   0
 .../test/057_unknown_contents.dts             |   0
 .../test/058_x86_ucode_spl_needs_retry.dts    |   0
 .../test/059_change_size.dts                  |   0
 .../test/060_fdt_update.dts                   |   0
 .../test/061_fdt_update_bad.dts               |   0
 .../test/062_entry_args.dts                   |   0
 .../test/063_entry_args_missing.dts           |   0
 .../test/064_entry_args_required.dts          |   0
 .../test/065_entry_args_unknown_datatype.dts  |   0
 tools/{binman => binmanu}/test/066_text.dts   |   0
 tools/{binman => binmanu}/test/067_fmap.dts   |   0
 .../test/068_blob_named_by_arg.dts            |   0
 tools/{binman => binmanu}/test/069_fill.dts   |   0
 .../test/070_fill_no_size.dts                 |   0
 tools/{binman => binmanu}/test/071_gbb.dts    |   0
 .../test/072_gbb_too_small.dts                |   0
 .../test/073_gbb_no_size.dts                  |   0
 tools/{binman => binmanu}/test/074_vblock.dts |   0
 .../test/075_vblock_no_content.dts            |   0
 .../test/076_vblock_bad_phandle.dts           |   0
 .../test/077_vblock_bad_entry.dts             |   0
 .../test/078_u_boot_tpl.dts                   |   0
 .../{binman => binmanu}/test/079_uses_pos.dts |   0
 .../test/080_fill_empty.dts                   |   0
 .../test/081_x86_start16_tpl.dts              |   0
 .../test/082_fdt_update_all.dts               |   0
 .../{binman => binmanu}/test/083_compress.dts |   0
 tools/{binman => binmanu}/test/084_files.dts  |   0
 .../test/085_files_compress.dts               |   0
 .../test/086_files_none.dts                   |   0
 .../test/087_files_no_pattern.dts             |   0
 .../test/088_extend_size.dts                  |   0
 .../test/089_extend_size_bad.dts              |   0
 tools/{binman => binmanu}/test/090_hash.dts   |   0
 .../test/091_hash_no_algo.dts                 |   0
 .../test/092_hash_bad_algo.dts                |   0
 .../test/093_x86_tpl_ucode.dts                |   0
 .../{binman => binmanu}/test/094_fmap_x86.dts |   0
 .../test/095_fmap_x86_section.dts             |   0
 tools/{binman => binmanu}/test/096_elf.dts    |   0
 .../test/097_elf_strip.dts                    |   0
 .../098_4gb_and_skip_at_start_together.dts    |   0
 .../test/099_hash_section.dts                 |   0
 .../test/100_intel_refcode.dts                |   0
 .../test/101_sections_offset.dts              |   0
 .../{binman => binmanu}/test/102_cbfs_raw.dts |   0
 .../test/103_cbfs_raw_ppc.dts                 |   0
 .../test/104_cbfs_stage.dts                   |   0
 .../test/105_cbfs_raw_compress.dts            |   0
 .../test/106_cbfs_bad_arch.dts                |   0
 .../test/107_cbfs_no_size.dts                 |   0
 .../test/108_cbfs_no_contents.dts             |   0
 .../test/109_cbfs_bad_compress.dts            |   0
 .../test/110_cbfs_name.dts                    |   0
 .../test/111_x86_rom_ifwi.dts                 |   0
 .../test/112_x86_rom_ifwi_nodesc.dts          |   0
 .../test/113_x86_rom_ifwi_nodata.dts          |   0
 .../test/114_cbfs_offset.dts                  |   0
 tools/{binman => binmanu}/test/115_fdtmap.dts |   0
 .../test/116_fdtmap_hdr.dts                   |   0
 .../test/117_fdtmap_hdr_start.dts             |   0
 .../test/118_fdtmap_hdr_pos.dts               |   0
 .../test/119_fdtmap_hdr_missing.dts           |   0
 .../test/120_hdr_no_location.dts              |   0
 .../test/121_entry_extend.dts                 |   0
 .../test/122_entry_extend_twice.dts           |   0
 .../test/123_entry_extend_section.dts         |   0
 .../test/124_compress_dtb.dts                 |   0
 .../test/125_cbfs_update.dts                  |   0
 .../test/126_cbfs_bad_type.dts                |   0
 tools/{binman => binmanu}/test/127_list.dts   |   0
 .../test/128_decode_image.dts                 |   0
 .../test/129_decode_image_nohdr.dts           |   0
 .../test/130_list_fdtmap.dts                  |   0
 .../test/131_pack_align_section.dts           |   0
 .../{binman => binmanu}/test/132_replace.dts  |   0
 .../test/133_replace_multi.dts                |   0
 .../test/134_fdt_update_all_repack.dts        |   0
 .../test/135_fdtmap_hdr_middle.dts            |   0
 .../test/136_fdtmap_hdr_startbad.dts          |   0
 .../test/137_fdtmap_hdr_endbad.dts            |   0
 .../test/138_fdtmap_hdr_nosize.dts            |   0
 .../test/139_replace_repack.dts               |   0
 .../test/140_entry_shrink.dts                 |   0
 .../test/141_descriptor_offset.dts            |   0
 .../test/142_replace_cbfs.dts                 |   0
 .../test/143_replace_all.dts                  |   0
 .../test/144_x86_reset16.dts                  |   0
 .../test/145_x86_reset16_spl.dts              |   0
 .../test/146_x86_reset16_tpl.dts              |   0
 .../test/147_intel_fit.dts                    |   0
 .../test/148_intel_fit_missing.dts            |   0
 .../test/149_symbols_tpl.dts                  |   0
 .../150_powerpc_mpc85xx_bootpg_resetvec.dts   |   0
 .../test/151_x86_rom_ifwi_section.dts         |   0
 .../test/152_intel_fsp_m.dts                  |   0
 .../test/153_intel_fsp_s.dts                  |   0
 .../test/154_intel_fsp_t.dts                  |   0
 .../test/155_symbols_tpl_x86.dts              |   0
 .../{binman => binmanu}/test/156_mkimage.dts  |   0
 .../{binman => binmanu}/test/157_blob_ext.dts |   0
 .../test/158_blob_ext_missing.dts             |   0
 .../test/159_blob_ext_missing_sect.dts        |   0
 .../test/160_pack_overlap_zero.dts            |   0
 tools/{binman => binmanu}/test/161_fit.dts    |   0
 .../test/162_fit_external.dts                 |   0
 .../test/163_x86_rom_me_empty.dts             |   0
 .../test/164_x86_rom_me_missing.dts           |   0
 .../165_section_ignore_hash_signature.dts     |   0
 .../test/166_pad_in_sections.dts              |   0
 .../test/167_fit_image_subentry_alignment.dts |   0
 .../test/168_fit_missing_blob.dts             |   0
 .../{binman => binmanu}/test/169_atf_bl31.dts |   0
 .../{binman => binmanu}/test/170_fit_fdt.dts  |   0
 .../test/171_fit_fdt_missing_prop.dts         |   0
 tools/{binman => binmanu}/test/172_scp.dts    |   0
 .../test/173_missing_blob.dts                 |   0
 tools/{binman => binmanu}/test/174_env.dts    |   0
 .../test/175_env_no_size.dts                  |   0
 .../test/176_env_too_small.dts                |   0
 .../test/177_skip_at_start.dts                |   0
 .../test/178_skip_at_start_pad.dts            |   0
 .../test/179_skip_at_start_section_pad.dts    |   0
 .../test/180_section_pad.dts                  |   0
 .../test/181_section_align.dts                |   0
 .../test/182_compress_image.dts               |   0
 .../test/183_compress_image_less.dts          |   0
 .../test/184_compress_section_size.dts        |   0
 .../test/185_compress_section.dts             |   0
 .../test/186_compress_extra.dts               |   0
 .../test/187_symbols_sub.dts                  |   0
 .../test/188_image_entryarg.dts               |   0
 .../test/189_vblock_content.dts               |   0
 .../test/190_files_align.dts                  |   0
 .../test/191_read_image_skip.dts              |   0
 .../test/192_u_boot_tpl_nodtb.dts             |   0
 .../test/193_tpl_bss_pad.dts                  |   0
 .../{binman => binmanu}/test/194_fdt_incl.dts |   0
 .../test/195_fdt_incl_tpl.dts                 |   0
 .../test/196_symbols_nodtb.dts                |   0
 .../test/197_symbols_expand.dts               |   0
 .../test/198_collection.dts                   |   0
 .../test/199_collection_section.dts           |   0
 .../test/200_align_default.dts                |   0
 .../{binman => binmanu}/test/201_opensbi.dts  |   0
 .../test/202_section_timeout.dts              |   0
 tools/{binman => binmanu}/test/203_fip.dts    |   0
 .../test/204_fip_other.dts                    |   0
 .../test/205_fip_no_type.dts                  |   0
 .../{binman => binmanu}/test/206_fip_uuid.dts |   0
 tools/{binman => binmanu}/test/207_fip_ls.dts |   0
 .../test/208_fip_replace.dts                  |   0
 .../test/209_fip_missing.dts                  |   0
 .../{binman => binmanu}/test/210_fip_size.dts |   0
 .../test/211_fip_bad_align.dts                |   0
 .../test/212_fip_collection.dts               |   0
 .../test/213_fdtmap_alt_format.dts            |   0
 .../test/214_no_alt_format.dts                |   0
 .../test/215_blob_ext_list.dts                |   0
 .../test/216_blob_ext_list_missing.dts        |   0
 .../test/217_fake_blob.dts                    |   0
 .../test/218_blob_ext_list_fake.dts           |   0
 .../test/219_fit_gennode.dts                  |   0
 .../test/220_fit_subentry_bintool.dts         |   0
 .../test/221_fit_subentry_hash.dts            |   0
 tools/{binman => binmanu}/test/222_tee_os.dts |   0
 .../test/223_fit_fdt_oper.dts                 |   0
 .../test/224_fit_bad_oper.dts                 |   0
 .../test/225_expand_size_bad.dts              |   0
 .../test/226_fit_split_elf.dts                |   0
 .../test/227_fit_bad_dir.dts                  |   0
 .../test/228_fit_bad_dir_config.dts           |   0
 .../test/229_mkimage_missing.dts              |   0
 tools/{binman => binmanu}/test/230_dev.key    |   0
 .../{binman => binmanu}/test/230_pre_load.dts |   2 +-
 .../test/231_pre_load_pkcs.dts                |   2 +-
 .../test/232_pre_load_pss.dts                 |   2 +-
 .../test/233_pre_load_invalid_padding.dts     |   2 +-
 .../test/234_pre_load_invalid_sha.dts         |   2 +-
 .../test/235_pre_load_invalid_algo.dts        |   2 +-
 .../test/236_pre_load_invalid_key.dts         |   2 +-
 .../test/237_unique_names.dts                 |   0
 .../test/238_unique_names_multi.dts           |   0
 .../test/239_replace_with_bintool.dts         |   0
 .../test/240_fit_extract_replace.dts          |   0
 .../test/241_replace_section_simple.dts       |   0
 .../test/242_mkimage_name.dts                 |   0
 .../test/243_mkimage_image.dts                |   0
 .../test/244_mkimage_image_no_content.dts     |   0
 .../test/245_mkimage_image_bad.dts            |   0
 .../test/246_collection_other.dts             |   0
 .../test/247_mkimage_coll.dts                 |   0
 .../test/248_compress_dtb_prepend_invalid.dts |   0
 .../test/249_compress_dtb_prepend_length.dts  |   0
 .../test/250_compress_dtb_invalid.dts         |   0
 .../test/251_compress_dtb_zstd.dts            |   0
 .../test/252_mkimage_mult_data.dts            |   0
 .../test/253_mkimage_mult_no_content.dts      |   0
 .../test/254_mkimage_filename.dts             |   0
 .../test/255_u_boot_vpl.dts                   |   0
 .../test/256_u_boot_vpl_nodtb.dts             |   0
 .../test/257_fdt_incl_vpl.dts                 |   0
 .../test/258_vpl_bss_pad.dts                  |   0
 .../{binman => binmanu}/test/259_symlink.dts  |   0
 .../test/260_symbols_elf.dts                  |   0
 .../test/261_section_fname.dts                |   0
 tools/{binman => binmanu}/test/262_absent.dts |   0
 .../test/263_tee_os_opt.dts                   |   0
 .../test/264_tee_os_opt_fit.dts               |   0
 .../test/265_tee_os_opt_fit_bad.dts           |   0
 .../test/266_blob_ext_opt.dts                 |   0
 .../test/267_section_inner.dts                |   0
 tools/{binman => binmanu}/test/268_null.dts   |   0
 .../{binman => binmanu}/test/269_overlap.dts  |   0
 .../test/270_overlap_null.dts                 |   0
 .../test/271_overlap_bad.dts                  |   0
 .../test/272_overlap_no_size.dts              |   0
 .../test/273_blob_symbol.dts                  |   0
 .../test/274_offset_from_elf.dts              |   0
 .../test/275_fit_align.dts                    |   0
 .../test/276_fit_firmware_loadables.dts       |   0
 tools/{binman => binmanu}/test/Makefile       |   0
 tools/{binman => binmanu}/test/blob_syms.c    |   0
 tools/{binman => binmanu}/test/blob_syms.lds  |   0
 tools/{binman => binmanu}/test/bss_data.c     |   0
 tools/{binman => binmanu}/test/bss_data.lds   |   0
 tools/{binman => binmanu}/test/descriptor.bin | Bin
 tools/{binman => binmanu}/test/elf_sections.c |   0
 .../{binman => binmanu}/test/elf_sections.lds |   0
 tools/{binman => binmanu}/test/embed_data.c   |   0
 tools/{binman => binmanu}/test/embed_data.lds |   0
 tools/{binman => binmanu}/test/files/1.dat    |   0
 tools/{binman => binmanu}/test/files/2.dat    |   0
 .../test/files/ignored_dir.dat/ignore         |   0
 .../test/files/not-this-one                   |   0
 .../{binman => binmanu}/test/fitimage.bin.gz  | Bin
 .../test/generated/autoconf.h                 |   0
 tools/{binman => binmanu}/test/ifwi.bin.gz    | Bin
 .../test/u_boot_binman_embed.c                |   0
 .../test/u_boot_binman_embed.lds              |   0
 .../test/u_boot_binman_embed_sm.c             |   0
 .../test/u_boot_binman_syms.c                 |   0
 .../test/u_boot_binman_syms.lds               |   0
 .../test/u_boot_binman_syms_bad.c             |   0
 .../test/u_boot_binman_syms_bad.lds           |   0
 .../test/u_boot_binman_syms_size.c            |   0
 .../test/u_boot_binman_syms_x86.c             |   0
 .../test/u_boot_binman_syms_x86.lds           |   0
 .../test/u_boot_no_ucode_ptr.c                |   0
 .../test/u_boot_ucode_ptr.c                   |   0
 .../test/u_boot_ucode_ptr.lds                 |   0
 tools/buildman/builder.py                     |   8 +-
 tools/buildman/builderthread.py               |   4 +-
 tools/buildman/cfgutil.py                     |   2 +-
 tools/buildman/control.py                     |  12 +-
 tools/buildman/func_test.py                   |  10 +-
 tools/buildman/main.py                        |  35 +-
 tools/buildman/pyproject.toml                 |  29 ++
 tools/buildman/test.py                        |  10 +-
 tools/buildman/toolchain.py                   |   6 +-
 tools/concurrencytest/README.md               |  74 ----
 tools/concurrencytest/__init__.py             |   0
 tools/concurrencytest/concurrencytest.py      | 221 ------------
 tools/dtoc/README.rst                         |  15 +
 tools/dtoc/fdt.py                             |   2 +-
 tools/dtoc/fdt_util.py                        |   4 +-
 tools/dtoc/main.py                            | 104 +++---
 tools/dtoc/pyproject.toml                     |  26 ++
 tools/dtoc/test_dtoc.py                       |   4 +-
 tools/dtoc/test_fdt.py                        |   7 +-
 tools/dtoc/test_src_scan.py                   |   4 +-
 tools/patman                                  |   1 +
 tools/patman/.gitignore                       |   1 -
 tools/patman/__init__.py                      |   6 -
 tools/{patman => patmanu}/.checkpatch.conf    |   0
 tools/{concurrencytest => patmanu}/.gitignore |   0
 tools/{patman => patmanu}/README.rst          |   0
 tools/patmanu/__init__.py                     |   8 +
 tools/{patman => patmanu}/__main__.py         |  24 +-
 tools/{patman => patmanu}/checkpatch.py       |   6 +-
 tools/{patman => patmanu}/commit.py           |   0
 tools/{patman => patmanu}/control.py          |  10 +-
 tools/{patman => patmanu}/func_test.py        |  22 +-
 tools/{patman => patmanu}/get_maintainer.py   |   4 +-
 tools/{patman => patmanu}/gitutil.py          |   8 +-
 tools/{patman => patmanu}/patchstream.py      |   8 +-
 tools/{patman => patmanu}/patman              |   0
 tools/{patman => patmanu}/patman.rst          |  13 +
 tools/{patman => patmanu}/project.py          |   2 +-
 tools/patmanu/pyproject.toml                  |  29 ++
 tools/{patman => patmanu}/pytest.ini          |   0
 tools/{patman => patmanu}/series.py           |  10 +-
 tools/{patman => patmanu}/settings.py         |   4 +-
 tools/{patman => patmanu}/setup.py            |   0
 tools/{patman => patmanu}/status.py           |   8 +-
 .../test/0000-cover-letter.patch              |   0
 .../0001-pci-Correct-cast-for-sandbox.patch   |   0
 ...-for-sandbox-in-fdtdec_setup_mem_siz.patch |   0
 tools/{patman => patmanu}/test/test01.txt     |   0
 tools/{patman => patmanu}/test_checkpatch.py  |  10 +-
 tools/{patman => patmanu}/test_settings.py    |   4 +-
 tools/rmboard.py                              |   2 +-
 tools/u_boot_pylib/LICENSE                    | 339 ++++++++++++++++++
 tools/u_boot_pylib/README.rst                 |  15 +
 tools/u_boot_pylib/__init__.py                |   4 +
 tools/u_boot_pylib/__main__.py                |  23 ++
 tools/{patman => u_boot_pylib}/command.py     |   2 +-
 .../cros_subprocess.py                        |   0
 tools/u_boot_pylib/pyproject.toml             |  22 ++
 tools/{patman => u_boot_pylib}/terminal.py    |   0
 tools/{patman => u_boot_pylib}/test_util.py   |  39 +-
 tools/{patman => u_boot_pylib}/tools.py       |   6 +-
 tools/{patman => u_boot_pylib}/tout.py        |   2 +-
 tools/u_boot_pylib/u_boot_pylib               |   1 +
 501 files changed, 1235 insertions(+), 828 deletions(-)
 create mode 100755 scripts/make_pip.sh
 create mode 120000 tools/binman
 rename tools/{binman => binmanu}/.gitignore (100%)
 rename tools/{binman => binmanu}/README.rst (100%)
 rename tools/{binman => binmanu}/__init__.py (100%)
 rename tools/{binman => binmanu}/binman (100%)
 rename tools/{binman => binmanu}/binman.rst (99%)
 rename tools/{binman => binmanu}/bintool.py (98%)
 rename tools/{binman => binmanu}/bintool_test.py (98%)
 rename tools/{binman => binmanu}/bintools.rst (100%)
 rename tools/{binman => binmanu}/btool/_testing.py (97%)
 rename tools/{binman => binmanu}/btool/btool_gzip.py (96%)
 rename tools/{binman => binmanu}/btool/bzip2.py (96%)
 rename tools/{binman => binmanu}/btool/cbfstool.py (99%)
 rename tools/{binman => binmanu}/btool/fiptool.py (99%)
 rename tools/{binman => binmanu}/btool/futility.py (99%)
 rename tools/{binman => binmanu}/btool/ifwitool.py (99%)
 rename tools/{binman => binmanu}/btool/lz4.py (98%)
 rename tools/{binman => binmanu}/btool/lzma_alone.py (98%)
 rename tools/{binman => binmanu}/btool/lzop.py (96%)
 rename tools/{binman => binmanu}/btool/mkimage.py (98%)
 rename tools/{binman => binmanu}/btool/xz.py (96%)
 rename tools/{binman => binmanu}/btool/zstd.py (96%)
 rename tools/{binman => binmanu}/cbfs_util.py (99%)
 rename tools/{binman => binmanu}/cbfs_util_test.py (99%)
 rename tools/{binman => binmanu}/cmdline.py (99%)
 rename tools/{binman => binmanu}/control.py (98%)
 rename tools/{binman => binmanu}/elf.py (99%)
 rename tools/{binman => binmanu}/elf_test.py (98%)
 rename tools/{binman => binmanu}/entries.rst (100%)
 rename tools/{binman => binmanu}/entry.py (99%)
 rename tools/{binman => binmanu}/entry_test.py (96%)
 rename tools/{binman => binmanu}/etype/_testing.py (99%)
 rename tools/{binman => binmanu}/etype/atf_bl31.py (92%)
 rename tools/{binman => binmanu}/etype/atf_fip.py (98%)
 rename tools/{binman => binmanu}/etype/blob.py (97%)
 rename tools/{binman => binmanu}/etype/blob_dtb.py (96%)
 rename tools/{binman => binmanu}/etype/blob_ext.py (90%)
 rename tools/{binman => binmanu}/etype/blob_ext_list.py (94%)
 rename tools/{binman => binmanu}/etype/blob_named_by_arg.py (94%)
 rename tools/{binman => binmanu}/etype/blob_phase.py (95%)
 rename tools/{binman => binmanu}/etype/cbfs.py (98%)
 rename tools/{binman => binmanu}/etype/collection.py (98%)
 rename tools/{binman => binmanu}/etype/cros_ec_rw.py (91%)
 rename tools/{binman => binmanu}/etype/fdtmap.py (97%)
 rename tools/{binman => binmanu}/etype/files.py (95%)
 rename tools/{binman => binmanu}/etype/fill.py (94%)
 rename tools/{binman => binmanu}/etype/fit.py (99%)
 rename tools/{binman => binmanu}/etype/fmap.py (95%)
 rename tools/{binman => binmanu}/etype/gbb.py (97%)
 rename tools/{binman => binmanu}/etype/image_header.py (99%)
 rename tools/{binman => binmanu}/etype/intel_cmc.py (92%)
 rename tools/{binman => binmanu}/etype/intel_descriptor.py (97%)
 rename tools/{binman => binmanu}/etype/intel_fit.py (94%)
 rename tools/{binman => binmanu}/etype/intel_fit_ptr.py (96%)
 rename tools/{binman => binmanu}/etype/intel_fsp.py (94%)
 rename tools/{binman => binmanu}/etype/intel_fsp_m.py (94%)
 rename tools/{binman => binmanu}/etype/intel_fsp_s.py (94%)
 rename tools/{binman => binmanu}/etype/intel_fsp_t.py (94%)
 rename tools/{binman => binmanu}/etype/intel_ifwi.py (98%)
 rename tools/{binman => binmanu}/etype/intel_me.py (95%)
 rename tools/{binman => binmanu}/etype/intel_mrc.py (93%)
 rename tools/{binman => binmanu}/etype/intel_refcode.py (93%)
 rename tools/{binman => binmanu}/etype/intel_vbt.py (92%)
 rename tools/{binman => binmanu}/etype/intel_vga.py (93%)
 rename tools/{binman => binmanu}/etype/mkimage.py (99%)
 rename tools/{binman => binmanu}/etype/null.py (90%)
 rename tools/{binman => binmanu}/etype/opensbi.py (91%)
 rename tools/{binman => binmanu}/etype/powerpc_mpc85xx_bootpg_resetvec.py (94%)
 rename tools/{binman => binmanu}/etype/pre_load.py (97%)
 rename tools/{binman => binmanu}/etype/scp.py (89%)
 rename tools/{binman => binmanu}/etype/section.py (99%)
 rename tools/{binman => binmanu}/etype/tee_os.py (97%)
 rename tools/{binman => binmanu}/etype/text.py (97%)
 rename tools/{binman => binmanu}/etype/u_boot.py (92%)
 rename tools/{binman => binmanu}/etype/u_boot_dtb.py (91%)
 rename tools/{binman => binmanu}/etype/u_boot_dtb_with_ucode.py (95%)
 rename tools/{binman => binmanu}/etype/u_boot_elf.py (91%)
 rename tools/{binman => binmanu}/etype/u_boot_env.py (94%)
 rename tools/{binman => binmanu}/etype/u_boot_expanded.py (93%)
 rename tools/{binman => binmanu}/etype/u_boot_img.py (90%)
 rename tools/{binman => binmanu}/etype/u_boot_nodtb.py (92%)
 rename tools/{binman => binmanu}/etype/u_boot_spl.py (95%)
 rename tools/{binman => binmanu}/etype/u_boot_spl_bss_pad.py (92%)
 rename tools/{binman => binmanu}/etype/u_boot_spl_dtb.py (90%)
 rename tools/{binman => binmanu}/etype/u_boot_spl_elf.py (90%)
 rename tools/{binman => binmanu}/etype/u_boot_spl_expanded.py (93%)
 rename tools/{binman => binmanu}/etype/u_boot_spl_nodtb.py (94%)
 rename tools/{binman => binmanu}/etype/u_boot_spl_with_ucode_ptr.py (90%)
 rename tools/{binman => binmanu}/etype/u_boot_tpl.py (95%)
 rename tools/{binman => binmanu}/etype/u_boot_tpl_bss_pad.py (92%)
 rename tools/{binman => binmanu}/etype/u_boot_tpl_dtb.py (90%)
 rename tools/{binman => binmanu}/etype/u_boot_tpl_dtb_with_ucode.py (90%)
 rename tools/{binman => binmanu}/etype/u_boot_tpl_elf.py (90%)
 rename tools/{binman => binmanu}/etype/u_boot_tpl_expanded.py (93%)
 rename tools/{binman => binmanu}/etype/u_boot_tpl_nodtb.py (94%)
 rename tools/{binman => binmanu}/etype/u_boot_tpl_with_ucode_ptr.py (74%)
 rename tools/{binman => binmanu}/etype/u_boot_ucode.py (97%)
 rename tools/{binman => binmanu}/etype/u_boot_vpl.py (94%)
 rename tools/{binman => binmanu}/etype/u_boot_vpl_bss_pad.py (92%)
 rename tools/{binman => binmanu}/etype/u_boot_vpl_dtb.py (90%)
 rename tools/{binman => binmanu}/etype/u_boot_vpl_elf.py (90%)
 rename tools/{binman => binmanu}/etype/u_boot_vpl_expanded.py (93%)
 rename tools/{binman => binmanu}/etype/u_boot_vpl_nodtb.py (94%)
 rename tools/{binman => binmanu}/etype/u_boot_with_ucode_ptr.py (96%)
 rename tools/{binman => binmanu}/etype/vblock.py (96%)
 rename tools/{binman => binmanu}/etype/x86_reset16.py (92%)
 rename tools/{binman => binmanu}/etype/x86_reset16_spl.py (92%)
 rename tools/{binman => binmanu}/etype/x86_reset16_tpl.py (92%)
 rename tools/{binman => binmanu}/etype/x86_start16.py (93%)
 rename tools/{binman => binmanu}/etype/x86_start16_spl.py (93%)
 rename tools/{binman => binmanu}/etype/x86_start16_tpl.py (93%)
 rename tools/{binman => binmanu}/fdt_test.py (98%)
 rename tools/{binman => binmanu}/fip_util.py (99%)
 rename tools/{binman => binmanu}/fip_util_test.py (99%)
 rename tools/{binman => binmanu}/fmap_util.py (99%)
 rename tools/{binman => binmanu}/ftest.py (99%)
 rename tools/{binman => binmanu}/image.py (98%)
 rename tools/{binman => binmanu}/image_test.py (95%)
 rename tools/{binman => binmanu}/index.rst (100%)
 rename tools/{binman => binmanu}/main.py (85%)
 rename tools/{binman => binmanu}/missing-blob-help (100%)
 create mode 100644 tools/binmanu/pyproject.toml
 rename tools/{binman => binmanu}/setup.py (100%)
 rename tools/{binman => binmanu}/state.py (99%)
 rename tools/{binman => binmanu}/test/001_invalid.dts (100%)
 rename tools/{binman => binmanu}/test/002_missing_node.dts (100%)
 rename tools/{binman => binmanu}/test/003_empty.dts (100%)
 rename tools/{binman => binmanu}/test/004_invalid_entry.dts (100%)
 rename tools/{binman => binmanu}/test/005_simple.dts (100%)
 rename tools/{binman => binmanu}/test/006_dual_image.dts (100%)
 rename tools/{binman => binmanu}/test/007_bad_align.dts (100%)
 rename tools/{binman => binmanu}/test/008_pack.dts (100%)
 rename tools/{binman => binmanu}/test/009_pack_extra.dts (100%)
 rename tools/{binman => binmanu}/test/010_pack_align_power2.dts (100%)
 rename tools/{binman => binmanu}/test/011_pack_align_size_power2.dts (100%)
 rename tools/{binman => binmanu}/test/012_pack_inv_align.dts (100%)
 rename tools/{binman => binmanu}/test/013_pack_inv_size_align.dts (100%)
 rename tools/{binman => binmanu}/test/014_pack_overlap.dts (100%)
 rename tools/{binman => binmanu}/test/015_pack_overflow.dts (100%)
 rename tools/{binman => binmanu}/test/016_pack_image_overflow.dts (100%)
 rename tools/{binman => binmanu}/test/017_pack_image_size.dts (100%)
 rename tools/{binman => binmanu}/test/018_pack_image_align.dts (100%)
 rename tools/{binman => binmanu}/test/019_pack_inv_image_align.dts (100%)
 rename tools/{binman => binmanu}/test/020_pack_inv_image_align_power2.dts (100%)
 rename tools/{binman => binmanu}/test/021_image_pad.dts (100%)
 rename tools/{binman => binmanu}/test/022_image_name.dts (100%)
 rename tools/{binman => binmanu}/test/023_blob.dts (100%)
 rename tools/{binman => binmanu}/test/024_sorted.dts (100%)
 rename tools/{binman => binmanu}/test/025_pack_zero_size.dts (100%)
 rename tools/{binman => binmanu}/test/026_pack_u_boot_dtb.dts (100%)
 rename tools/{binman => binmanu}/test/027_pack_4gb_no_size.dts (100%)
 rename tools/{binman => binmanu}/test/028_pack_4gb_outside.dts (100%)
 rename tools/{binman => binmanu}/test/029_x86_rom.dts (100%)
 rename tools/{binman => binmanu}/test/030_x86_rom_me_no_desc.dts (100%)
 rename tools/{binman => binmanu}/test/031_x86_rom_me.dts (100%)
 rename tools/{binman => binmanu}/test/032_intel_vga.dts (100%)
 rename tools/{binman => binmanu}/test/033_x86_start16.dts (100%)
 rename tools/{binman => binmanu}/test/034_x86_ucode.dts (100%)
 rename tools/{binman => binmanu}/test/035_x86_single_ucode.dts (100%)
 rename tools/{binman => binmanu}/test/036_u_boot_img.dts (100%)
 rename tools/{binman => binmanu}/test/037_x86_no_ucode.dts (100%)
 rename tools/{binman => binmanu}/test/038_x86_ucode_missing_node.dts (100%)
 rename tools/{binman => binmanu}/test/039_x86_ucode_missing_node2.dts (100%)
 rename tools/{binman => binmanu}/test/040_x86_ucode_not_in_image.dts (100%)
 rename tools/{binman => binmanu}/test/041_unknown_pos_size.dts (100%)
 rename tools/{binman => binmanu}/test/042_intel_fsp.dts (100%)
 rename tools/{binman => binmanu}/test/043_intel_cmc.dts (100%)
 rename tools/{binman => binmanu}/test/044_x86_optional_ucode.dts (100%)
 rename tools/{binman => binmanu}/test/045_prop_test.dts (100%)
 rename tools/{binman => binmanu}/test/046_intel_vbt.dts (100%)
 rename tools/{binman => binmanu}/test/047_spl_bss_pad.dts (100%)
 rename tools/{binman => binmanu}/test/048_x86_start16_spl.dts (100%)
 rename tools/{binman => binmanu}/test/049_x86_ucode_spl.dts (100%)
 rename tools/{binman => binmanu}/test/050_intel_mrc.dts (100%)
 rename tools/{binman => binmanu}/test/051_u_boot_spl_dtb.dts (100%)
 rename tools/{binman => binmanu}/test/052_u_boot_spl_nodtb.dts (100%)
 rename tools/{binman => binmanu}/test/053_symbols.dts (100%)
 rename tools/{binman => binmanu}/test/054_unit_address.dts (100%)
 rename tools/{binman => binmanu}/test/055_sections.dts (100%)
 rename tools/{binman => binmanu}/test/056_name_prefix.dts (100%)
 rename tools/{binman => binmanu}/test/057_unknown_contents.dts (100%)
 rename tools/{binman => binmanu}/test/058_x86_ucode_spl_needs_retry.dts (100%)
 rename tools/{binman => binmanu}/test/059_change_size.dts (100%)
 rename tools/{binman => binmanu}/test/060_fdt_update.dts (100%)
 rename tools/{binman => binmanu}/test/061_fdt_update_bad.dts (100%)
 rename tools/{binman => binmanu}/test/062_entry_args.dts (100%)
 rename tools/{binman => binmanu}/test/063_entry_args_missing.dts (100%)
 rename tools/{binman => binmanu}/test/064_entry_args_required.dts (100%)
 rename tools/{binman => binmanu}/test/065_entry_args_unknown_datatype.dts (100%)
 rename tools/{binman => binmanu}/test/066_text.dts (100%)
 rename tools/{binman => binmanu}/test/067_fmap.dts (100%)
 rename tools/{binman => binmanu}/test/068_blob_named_by_arg.dts (100%)
 rename tools/{binman => binmanu}/test/069_fill.dts (100%)
 rename tools/{binman => binmanu}/test/070_fill_no_size.dts (100%)
 rename tools/{binman => binmanu}/test/071_gbb.dts (100%)
 rename tools/{binman => binmanu}/test/072_gbb_too_small.dts (100%)
 rename tools/{binman => binmanu}/test/073_gbb_no_size.dts (100%)
 rename tools/{binman => binmanu}/test/074_vblock.dts (100%)
 rename tools/{binman => binmanu}/test/075_vblock_no_content.dts (100%)
 rename tools/{binman => binmanu}/test/076_vblock_bad_phandle.dts (100%)
 rename tools/{binman => binmanu}/test/077_vblock_bad_entry.dts (100%)
 rename tools/{binman => binmanu}/test/078_u_boot_tpl.dts (100%)
 rename tools/{binman => binmanu}/test/079_uses_pos.dts (100%)
 rename tools/{binman => binmanu}/test/080_fill_empty.dts (100%)
 rename tools/{binman => binmanu}/test/081_x86_start16_tpl.dts (100%)
 rename tools/{binman => binmanu}/test/082_fdt_update_all.dts (100%)
 rename tools/{binman => binmanu}/test/083_compress.dts (100%)
 rename tools/{binman => binmanu}/test/084_files.dts (100%)
 rename tools/{binman => binmanu}/test/085_files_compress.dts (100%)
 rename tools/{binman => binmanu}/test/086_files_none.dts (100%)
 rename tools/{binman => binmanu}/test/087_files_no_pattern.dts (100%)
 rename tools/{binman => binmanu}/test/088_extend_size.dts (100%)
 rename tools/{binman => binmanu}/test/089_extend_size_bad.dts (100%)
 rename tools/{binman => binmanu}/test/090_hash.dts (100%)
 rename tools/{binman => binmanu}/test/091_hash_no_algo.dts (100%)
 rename tools/{binman => binmanu}/test/092_hash_bad_algo.dts (100%)
 rename tools/{binman => binmanu}/test/093_x86_tpl_ucode.dts (100%)
 rename tools/{binman => binmanu}/test/094_fmap_x86.dts (100%)
 rename tools/{binman => binmanu}/test/095_fmap_x86_section.dts (100%)
 rename tools/{binman => binmanu}/test/096_elf.dts (100%)
 rename tools/{binman => binmanu}/test/097_elf_strip.dts (100%)
 rename tools/{binman => binmanu}/test/098_4gb_and_skip_at_start_together.dts (100%)
 rename tools/{binman => binmanu}/test/099_hash_section.dts (100%)
 rename tools/{binman => binmanu}/test/100_intel_refcode.dts (100%)
 rename tools/{binman => binmanu}/test/101_sections_offset.dts (100%)
 rename tools/{binman => binmanu}/test/102_cbfs_raw.dts (100%)
 rename tools/{binman => binmanu}/test/103_cbfs_raw_ppc.dts (100%)
 rename tools/{binman => binmanu}/test/104_cbfs_stage.dts (100%)
 rename tools/{binman => binmanu}/test/105_cbfs_raw_compress.dts (100%)
 rename tools/{binman => binmanu}/test/106_cbfs_bad_arch.dts (100%)
 rename tools/{binman => binmanu}/test/107_cbfs_no_size.dts (100%)
 rename tools/{binman => binmanu}/test/108_cbfs_no_contents.dts (100%)
 rename tools/{binman => binmanu}/test/109_cbfs_bad_compress.dts (100%)
 rename tools/{binman => binmanu}/test/110_cbfs_name.dts (100%)
 rename tools/{binman => binmanu}/test/111_x86_rom_ifwi.dts (100%)
 rename tools/{binman => binmanu}/test/112_x86_rom_ifwi_nodesc.dts (100%)
 rename tools/{binman => binmanu}/test/113_x86_rom_ifwi_nodata.dts (100%)
 rename tools/{binman => binmanu}/test/114_cbfs_offset.dts (100%)
 rename tools/{binman => binmanu}/test/115_fdtmap.dts (100%)
 rename tools/{binman => binmanu}/test/116_fdtmap_hdr.dts (100%)
 rename tools/{binman => binmanu}/test/117_fdtmap_hdr_start.dts (100%)
 rename tools/{binman => binmanu}/test/118_fdtmap_hdr_pos.dts (100%)
 rename tools/{binman => binmanu}/test/119_fdtmap_hdr_missing.dts (100%)
 rename tools/{binman => binmanu}/test/120_hdr_no_location.dts (100%)
 rename tools/{binman => binmanu}/test/121_entry_extend.dts (100%)
 rename tools/{binman => binmanu}/test/122_entry_extend_twice.dts (100%)
 rename tools/{binman => binmanu}/test/123_entry_extend_section.dts (100%)
 rename tools/{binman => binmanu}/test/124_compress_dtb.dts (100%)
 rename tools/{binman => binmanu}/test/125_cbfs_update.dts (100%)
 rename tools/{binman => binmanu}/test/126_cbfs_bad_type.dts (100%)
 rename tools/{binman => binmanu}/test/127_list.dts (100%)
 rename tools/{binman => binmanu}/test/128_decode_image.dts (100%)
 rename tools/{binman => binmanu}/test/129_decode_image_nohdr.dts (100%)
 rename tools/{binman => binmanu}/test/130_list_fdtmap.dts (100%)
 rename tools/{binman => binmanu}/test/131_pack_align_section.dts (100%)
 rename tools/{binman => binmanu}/test/132_replace.dts (100%)
 rename tools/{binman => binmanu}/test/133_replace_multi.dts (100%)
 rename tools/{binman => binmanu}/test/134_fdt_update_all_repack.dts (100%)
 rename tools/{binman => binmanu}/test/135_fdtmap_hdr_middle.dts (100%)
 rename tools/{binman => binmanu}/test/136_fdtmap_hdr_startbad.dts (100%)
 rename tools/{binman => binmanu}/test/137_fdtmap_hdr_endbad.dts (100%)
 rename tools/{binman => binmanu}/test/138_fdtmap_hdr_nosize.dts (100%)
 rename tools/{binman => binmanu}/test/139_replace_repack.dts (100%)
 rename tools/{binman => binmanu}/test/140_entry_shrink.dts (100%)
 rename tools/{binman => binmanu}/test/141_descriptor_offset.dts (100%)
 rename tools/{binman => binmanu}/test/142_replace_cbfs.dts (100%)
 rename tools/{binman => binmanu}/test/143_replace_all.dts (100%)
 rename tools/{binman => binmanu}/test/144_x86_reset16.dts (100%)
 rename tools/{binman => binmanu}/test/145_x86_reset16_spl.dts (100%)
 rename tools/{binman => binmanu}/test/146_x86_reset16_tpl.dts (100%)
 rename tools/{binman => binmanu}/test/147_intel_fit.dts (100%)
 rename tools/{binman => binmanu}/test/148_intel_fit_missing.dts (100%)
 rename tools/{binman => binmanu}/test/149_symbols_tpl.dts (100%)
 rename tools/{binman => binmanu}/test/150_powerpc_mpc85xx_bootpg_resetvec.dts (100%)
 rename tools/{binman => binmanu}/test/151_x86_rom_ifwi_section.dts (100%)
 rename tools/{binman => binmanu}/test/152_intel_fsp_m.dts (100%)
 rename tools/{binman => binmanu}/test/153_intel_fsp_s.dts (100%)
 rename tools/{binman => binmanu}/test/154_intel_fsp_t.dts (100%)
 rename tools/{binman => binmanu}/test/155_symbols_tpl_x86.dts (100%)
 rename tools/{binman => binmanu}/test/156_mkimage.dts (100%)
 rename tools/{binman => binmanu}/test/157_blob_ext.dts (100%)
 rename tools/{binman => binmanu}/test/158_blob_ext_missing.dts (100%)
 rename tools/{binman => binmanu}/test/159_blob_ext_missing_sect.dts (100%)
 rename tools/{binman => binmanu}/test/160_pack_overlap_zero.dts (100%)
 rename tools/{binman => binmanu}/test/161_fit.dts (100%)
 rename tools/{binman => binmanu}/test/162_fit_external.dts (100%)
 rename tools/{binman => binmanu}/test/163_x86_rom_me_empty.dts (100%)
 rename tools/{binman => binmanu}/test/164_x86_rom_me_missing.dts (100%)
 rename tools/{binman => binmanu}/test/165_section_ignore_hash_signature.dts (100%)
 rename tools/{binman => binmanu}/test/166_pad_in_sections.dts (100%)
 rename tools/{binman => binmanu}/test/167_fit_image_subentry_alignment.dts (100%)
 rename tools/{binman => binmanu}/test/168_fit_missing_blob.dts (100%)
 rename tools/{binman => binmanu}/test/169_atf_bl31.dts (100%)
 rename tools/{binman => binmanu}/test/170_fit_fdt.dts (100%)
 rename tools/{binman => binmanu}/test/171_fit_fdt_missing_prop.dts (100%)
 rename tools/{binman => binmanu}/test/172_scp.dts (100%)
 rename tools/{binman => binmanu}/test/173_missing_blob.dts (100%)
 rename tools/{binman => binmanu}/test/174_env.dts (100%)
 rename tools/{binman => binmanu}/test/175_env_no_size.dts (100%)
 rename tools/{binman => binmanu}/test/176_env_too_small.dts (100%)
 rename tools/{binman => binmanu}/test/177_skip_at_start.dts (100%)
 rename tools/{binman => binmanu}/test/178_skip_at_start_pad.dts (100%)
 rename tools/{binman => binmanu}/test/179_skip_at_start_section_pad.dts (100%)
 rename tools/{binman => binmanu}/test/180_section_pad.dts (100%)
 rename tools/{binman => binmanu}/test/181_section_align.dts (100%)
 rename tools/{binman => binmanu}/test/182_compress_image.dts (100%)
 rename tools/{binman => binmanu}/test/183_compress_image_less.dts (100%)
 rename tools/{binman => binmanu}/test/184_compress_section_size.dts (100%)
 rename tools/{binman => binmanu}/test/185_compress_section.dts (100%)
 rename tools/{binman => binmanu}/test/186_compress_extra.dts (100%)
 rename tools/{binman => binmanu}/test/187_symbols_sub.dts (100%)
 rename tools/{binman => binmanu}/test/188_image_entryarg.dts (100%)
 rename tools/{binman => binmanu}/test/189_vblock_content.dts (100%)
 rename tools/{binman => binmanu}/test/190_files_align.dts (100%)
 rename tools/{binman => binmanu}/test/191_read_image_skip.dts (100%)
 rename tools/{binman => binmanu}/test/192_u_boot_tpl_nodtb.dts (100%)
 rename tools/{binman => binmanu}/test/193_tpl_bss_pad.dts (100%)
 rename tools/{binman => binmanu}/test/194_fdt_incl.dts (100%)
 rename tools/{binman => binmanu}/test/195_fdt_incl_tpl.dts (100%)
 rename tools/{binman => binmanu}/test/196_symbols_nodtb.dts (100%)
 rename tools/{binman => binmanu}/test/197_symbols_expand.dts (100%)
 rename tools/{binman => binmanu}/test/198_collection.dts (100%)
 rename tools/{binman => binmanu}/test/199_collection_section.dts (100%)
 rename tools/{binman => binmanu}/test/200_align_default.dts (100%)
 rename tools/{binman => binmanu}/test/201_opensbi.dts (100%)
 rename tools/{binman => binmanu}/test/202_section_timeout.dts (100%)
 rename tools/{binman => binmanu}/test/203_fip.dts (100%)
 rename tools/{binman => binmanu}/test/204_fip_other.dts (100%)
 rename tools/{binman => binmanu}/test/205_fip_no_type.dts (100%)
 rename tools/{binman => binmanu}/test/206_fip_uuid.dts (100%)
 rename tools/{binman => binmanu}/test/207_fip_ls.dts (100%)
 rename tools/{binman => binmanu}/test/208_fip_replace.dts (100%)
 rename tools/{binman => binmanu}/test/209_fip_missing.dts (100%)
 rename tools/{binman => binmanu}/test/210_fip_size.dts (100%)
 rename tools/{binman => binmanu}/test/211_fip_bad_align.dts (100%)
 rename tools/{binman => binmanu}/test/212_fip_collection.dts (100%)
 rename tools/{binman => binmanu}/test/213_fdtmap_alt_format.dts (100%)
 rename tools/{binman => binmanu}/test/214_no_alt_format.dts (100%)
 rename tools/{binman => binmanu}/test/215_blob_ext_list.dts (100%)
 rename tools/{binman => binmanu}/test/216_blob_ext_list_missing.dts (100%)
 rename tools/{binman => binmanu}/test/217_fake_blob.dts (100%)
 rename tools/{binman => binmanu}/test/218_blob_ext_list_fake.dts (100%)
 rename tools/{binman => binmanu}/test/219_fit_gennode.dts (100%)
 rename tools/{binman => binmanu}/test/220_fit_subentry_bintool.dts (100%)
 rename tools/{binman => binmanu}/test/221_fit_subentry_hash.dts (100%)
 rename tools/{binman => binmanu}/test/222_tee_os.dts (100%)
 rename tools/{binman => binmanu}/test/223_fit_fdt_oper.dts (100%)
 rename tools/{binman => binmanu}/test/224_fit_bad_oper.dts (100%)
 rename tools/{binman => binmanu}/test/225_expand_size_bad.dts (100%)
 rename tools/{binman => binmanu}/test/226_fit_split_elf.dts (100%)
 rename tools/{binman => binmanu}/test/227_fit_bad_dir.dts (100%)
 rename tools/{binman => binmanu}/test/228_fit_bad_dir_config.dts (100%)
 rename tools/{binman => binmanu}/test/229_mkimage_missing.dts (100%)
 rename tools/{binman => binmanu}/test/230_dev.key (100%)
 rename tools/{binman => binmanu}/test/230_pre_load.dts (85%)
 rename tools/{binman => binmanu}/test/231_pre_load_pkcs.dts (87%)
 rename tools/{binman => binmanu}/test/232_pre_load_pss.dts (86%)
 rename tools/{binman => binmanu}/test/233_pre_load_invalid_padding.dts (86%)
 rename tools/{binman => binmanu}/test/234_pre_load_invalid_sha.dts (86%)
 rename tools/{binman => binmanu}/test/235_pre_load_invalid_algo.dts (86%)
 rename tools/{binman => binmanu}/test/236_pre_load_invalid_key.dts (86%)
 rename tools/{binman => binmanu}/test/237_unique_names.dts (100%)
 rename tools/{binman => binmanu}/test/238_unique_names_multi.dts (100%)
 rename tools/{binman => binmanu}/test/239_replace_with_bintool.dts (100%)
 rename tools/{binman => binmanu}/test/240_fit_extract_replace.dts (100%)
 rename tools/{binman => binmanu}/test/241_replace_section_simple.dts (100%)
 rename tools/{binman => binmanu}/test/242_mkimage_name.dts (100%)
 rename tools/{binman => binmanu}/test/243_mkimage_image.dts (100%)
 rename tools/{binman => binmanu}/test/244_mkimage_image_no_content.dts (100%)
 rename tools/{binman => binmanu}/test/245_mkimage_image_bad.dts (100%)
 rename tools/{binman => binmanu}/test/246_collection_other.dts (100%)
 rename tools/{binman => binmanu}/test/247_mkimage_coll.dts (100%)
 rename tools/{binman => binmanu}/test/248_compress_dtb_prepend_invalid.dts (100%)
 rename tools/{binman => binmanu}/test/249_compress_dtb_prepend_length.dts (100%)
 rename tools/{binman => binmanu}/test/250_compress_dtb_invalid.dts (100%)
 rename tools/{binman => binmanu}/test/251_compress_dtb_zstd.dts (100%)
 rename tools/{binman => binmanu}/test/252_mkimage_mult_data.dts (100%)
 rename tools/{binman => binmanu}/test/253_mkimage_mult_no_content.dts (100%)
 rename tools/{binman => binmanu}/test/254_mkimage_filename.dts (100%)
 rename tools/{binman => binmanu}/test/255_u_boot_vpl.dts (100%)
 rename tools/{binman => binmanu}/test/256_u_boot_vpl_nodtb.dts (100%)
 rename tools/{binman => binmanu}/test/257_fdt_incl_vpl.dts (100%)
 rename tools/{binman => binmanu}/test/258_vpl_bss_pad.dts (100%)
 rename tools/{binman => binmanu}/test/259_symlink.dts (100%)
 rename tools/{binman => binmanu}/test/260_symbols_elf.dts (100%)
 rename tools/{binman => binmanu}/test/261_section_fname.dts (100%)
 rename tools/{binman => binmanu}/test/262_absent.dts (100%)
 rename tools/{binman => binmanu}/test/263_tee_os_opt.dts (100%)
 rename tools/{binman => binmanu}/test/264_tee_os_opt_fit.dts (100%)
 rename tools/{binman => binmanu}/test/265_tee_os_opt_fit_bad.dts (100%)
 rename tools/{binman => binmanu}/test/266_blob_ext_opt.dts (100%)
 rename tools/{binman => binmanu}/test/267_section_inner.dts (100%)
 rename tools/{binman => binmanu}/test/268_null.dts (100%)
 rename tools/{binman => binmanu}/test/269_overlap.dts (100%)
 rename tools/{binman => binmanu}/test/270_overlap_null.dts (100%)
 rename tools/{binman => binmanu}/test/271_overlap_bad.dts (100%)
 rename tools/{binman => binmanu}/test/272_overlap_no_size.dts (100%)
 rename tools/{binman => binmanu}/test/273_blob_symbol.dts (100%)
 rename tools/{binman => binmanu}/test/274_offset_from_elf.dts (100%)
 rename tools/{binman => binmanu}/test/275_fit_align.dts (100%)
 rename tools/{binman => binmanu}/test/276_fit_firmware_loadables.dts (100%)
 rename tools/{binman => binmanu}/test/Makefile (100%)
 rename tools/{binman => binmanu}/test/blob_syms.c (100%)
 rename tools/{binman => binmanu}/test/blob_syms.lds (100%)
 rename tools/{binman => binmanu}/test/bss_data.c (100%)
 rename tools/{binman => binmanu}/test/bss_data.lds (100%)
 rename tools/{binman => binmanu}/test/descriptor.bin (100%)
 rename tools/{binman => binmanu}/test/elf_sections.c (100%)
 rename tools/{binman => binmanu}/test/elf_sections.lds (100%)
 rename tools/{binman => binmanu}/test/embed_data.c (100%)
 rename tools/{binman => binmanu}/test/embed_data.lds (100%)
 rename tools/{binman => binmanu}/test/files/1.dat (100%)
 rename tools/{binman => binmanu}/test/files/2.dat (100%)
 rename tools/{binman => binmanu}/test/files/ignored_dir.dat/ignore (100%)
 rename tools/{binman => binmanu}/test/files/not-this-one (100%)
 rename tools/{binman => binmanu}/test/fitimage.bin.gz (100%)
 rename tools/{binman => binmanu}/test/generated/autoconf.h (100%)
 rename tools/{binman => binmanu}/test/ifwi.bin.gz (100%)
 rename tools/{binman => binmanu}/test/u_boot_binman_embed.c (100%)
 rename tools/{binman => binmanu}/test/u_boot_binman_embed.lds (100%)
 rename tools/{binman => binmanu}/test/u_boot_binman_embed_sm.c (100%)
 rename tools/{binman => binmanu}/test/u_boot_binman_syms.c (100%)
 rename tools/{binman => binmanu}/test/u_boot_binman_syms.lds (100%)
 rename tools/{binman => binmanu}/test/u_boot_binman_syms_bad.c (100%)
 rename tools/{binman => binmanu}/test/u_boot_binman_syms_bad.lds (100%)
 rename tools/{binman => binmanu}/test/u_boot_binman_syms_size.c (100%)
 rename tools/{binman => binmanu}/test/u_boot_binman_syms_x86.c (100%)
 rename tools/{binman => binmanu}/test/u_boot_binman_syms_x86.lds (100%)
 rename tools/{binman => binmanu}/test/u_boot_no_ucode_ptr.c (100%)
 rename tools/{binman => binmanu}/test/u_boot_ucode_ptr.c (100%)
 rename tools/{binman => binmanu}/test/u_boot_ucode_ptr.lds (100%)
 create mode 100644 tools/buildman/pyproject.toml
 delete mode 100644 tools/concurrencytest/README.md
 delete mode 100644 tools/concurrencytest/__init__.py
 delete mode 100644 tools/concurrencytest/concurrencytest.py
 create mode 100644 tools/dtoc/README.rst
 create mode 100644 tools/dtoc/pyproject.toml
 create mode 120000 tools/patman
 delete mode 100644 tools/patman/.gitignore
 delete mode 100644 tools/patman/__init__.py
 rename tools/{patman => patmanu}/.checkpatch.conf (100%)
 rename tools/{concurrencytest => patmanu}/.gitignore (100%)
 rename tools/{patman => patmanu}/README.rst (100%)
 create mode 100644 tools/patmanu/__init__.py
 rename tools/{patman => patmanu}/__main__.py (94%)
 rename tools/{patman => patmanu}/checkpatch.py (98%)
 rename tools/{patman => patmanu}/commit.py (100%)
 rename tools/{patman => patmanu}/control.py (98%)
 rename tools/{patman => patmanu}/func_test.py (99%)
 rename tools/{patman => patmanu}/get_maintainer.py (96%)
 rename tools/{patman => patmanu}/gitutil.py (99%)
 rename tools/{patman => patmanu}/patchstream.py (99%)
 rename tools/{patman => patmanu}/patman (100%)
 rename tools/{patman => patmanu}/patman.rst (98%)
 rename tools/{patman => patmanu}/project.py (95%)
 create mode 100644 tools/patmanu/pyproject.toml
 rename tools/{patman => patmanu}/pytest.ini (100%)
 rename tools/{patman => patmanu}/series.py (98%)
 rename tools/{patman => patmanu}/settings.py (99%)
 rename tools/{patman => patmanu}/setup.py (100%)
 rename tools/{patman => patmanu}/status.py (99%)
 rename tools/{patman => patmanu}/test/0000-cover-letter.patch (100%)
 rename tools/{patman => patmanu}/test/0001-pci-Correct-cast-for-sandbox.patch (100%)
 rename tools/{patman => patmanu}/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch (100%)
 rename tools/{patman => patmanu}/test/test01.txt (100%)
 rename tools/{patman => patmanu}/test_checkpatch.py (99%)
 rename tools/{patman => patmanu}/test_settings.py (97%)
 create mode 100644 tools/u_boot_pylib/LICENSE
 create mode 100644 tools/u_boot_pylib/README.rst
 create mode 100644 tools/u_boot_pylib/__init__.py
 create mode 100755 tools/u_boot_pylib/__main__.py
 rename tools/{patman => u_boot_pylib}/command.py (99%)
 rename tools/{patman => u_boot_pylib}/cros_subprocess.py (100%)
 create mode 100644 tools/u_boot_pylib/pyproject.toml
 rename tools/{patman => u_boot_pylib}/terminal.py (100%)
 rename tools/{patman => u_boot_pylib}/test_util.py (85%)
 rename tools/{patman => u_boot_pylib}/tools.py (99%)
 rename tools/{patman => u_boot_pylib}/tout.py (99%)
 create mode 120000 tools/u_boot_pylib/u_boot_pylib

-- 
2.39.2.637.g21b0678d19-goog


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 01/15] binman: Avoid unwanted output in testFitFirmwareLoadables()
  2023-02-19 14:51 [PATCH 00/15] tools: Support uploading tools to PyPi for use with pip Simon Glass
@ 2023-02-19 14:51 ` Simon Glass
  2023-02-19 14:51 ` [PATCH 02/15] Revert "patman: test_util: Print test stdout/stderr within test summaries" Simon Glass
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2023-02-19 14:51 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Heinrich Schuchardt, Alper Nebi Yasak, Neha Malcom Francis,
	Stefan Herbrechtsmeier, Philippe Reynes, Peng Fan, Simon Glass

This prints a message about the missing tee-os generated by the test. This
is confusing, so suppress it.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 tools/binman/ftest.py | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py
index 062f54adb0e..d469928b256 100644
--- a/tools/binman/ftest.py
+++ b/tools/binman/ftest.py
@@ -6353,10 +6353,11 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap
             'tee-os-path': 'missing.bin',
         }
         test_subdir = os.path.join(self._indir, TEST_FDT_SUBDIR)
-        data = self._DoReadFileDtb(
-            '276_fit_firmware_loadables.dts',
-            entry_args=entry_args,
-            extra_indirs=[test_subdir])[0]
+        with test_util.capture_sys_output() as (stdout, stderr):
+            data = self._DoReadFileDtb(
+                '276_fit_firmware_loadables.dts',
+                entry_args=entry_args,
+                extra_indirs=[test_subdir])[0]
 
         dtb = fdt.Fdt.FromData(data)
         dtb.Scan()
-- 
2.39.2.637.g21b0678d19-goog


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 02/15] Revert "patman: test_util: Print test stdout/stderr within test summaries"
  2023-02-19 14:51 [PATCH 00/15] tools: Support uploading tools to PyPi for use with pip Simon Glass
  2023-02-19 14:51 ` [PATCH 01/15] binman: Avoid unwanted output in testFitFirmwareLoadables() Simon Glass
@ 2023-02-19 14:51 ` Simon Glass
  2023-02-19 14:51 ` [PATCH 03/15] Remove concurrencytest Simon Glass
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2023-02-19 14:51 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Heinrich Schuchardt, Alper Nebi Yasak, Neha Malcom Francis,
	Stefan Herbrechtsmeier, Philippe Reynes, Peng Fan, Simon Glass

Unfortunately this adds a new feature to concurrencytest and it has not
made it upstream to the project[1].

Drop it for now so we can use the upstream module. Once it is applied we
can bring this functionality back.

[1] https://github.com/cgoldberg/concurrencytest

This reverts commit ebcaafcded40da8ae6cb4234c2ba9901c7bee644.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 tools/concurrencytest/concurrencytest.py | 83 +-----------------------
 tools/patman/test_util.py                | 33 +---------
 2 files changed, 4 insertions(+), 112 deletions(-)

diff --git a/tools/concurrencytest/concurrencytest.py b/tools/concurrencytest/concurrencytest.py
index 1c4f03f37e5..5e88b94f415 100644
--- a/tools/concurrencytest/concurrencytest.py
+++ b/tools/concurrencytest/concurrencytest.py
@@ -31,7 +31,6 @@ from subunit import ProtocolTestCase, TestProtocolClient
 from subunit.test_results import AutoTimingTestResultDecorator
 
 from testtools import ConcurrentTestSuite, iterate_tests
-from testtools.content import TracebackContent, text_content
 
 
 _all__ = [
@@ -44,81 +43,11 @@ _all__ = [
 CPU_COUNT = cpu_count()
 
 
-class BufferingTestProtocolClient(TestProtocolClient):
-    """A TestProtocolClient which can buffer the test outputs
-
-    This class captures the stdout and stderr output streams of the
-    tests as it runs them, and includes the output texts in the subunit
-    stream as additional details.
-
-    Args:
-        stream: A file-like object to write a subunit stream to
-        buffer (bool): True to capture test stdout/stderr outputs and
-            include them in the test details
-    """
-    def __init__(self, stream, buffer=True):
-        super().__init__(stream)
-        self.buffer = buffer
-
-    def _addOutcome(self, outcome, test, error=None, details=None,
-            error_permitted=True):
-        """Report a test outcome to the subunit stream
-
-        The parent class uses this function as a common implementation
-        for various methods that report successes, errors, failures, etc.
-
-        This version automatically upgrades the error tracebacks to the
-        new 'details' format by wrapping them in a Content object, so
-        that we can include the captured test output in the test result
-        details.
-
-        Args:
-            outcome: A string describing the outcome - used as the
-                event name in the subunit stream.
-            test: The test case whose outcome is to be reported
-            error: Standard unittest positional argument form - an
-                exc_info tuple.
-            details: New Testing-in-python drafted API; a dict from
-                string to subunit.Content objects.
-            error_permitted: If True then one and only one of error or
-                details must be supplied. If False then error must not
-                be supplied and details is still optional.
-        """
-        if details is None:
-            details = {}
-
-        # Parent will raise an exception if error_permitted is False but
-        # error is not None. We want that exception in that case, so
-        # don't touch error when error_permitted is explicitly False.
-        if error_permitted and error is not None:
-            # Parent class prefers error over details
-            details['traceback'] = TracebackContent(error, test)
-            error_permitted = False
-            error = None
-
-        if self.buffer:
-            stdout = sys.stdout.getvalue()
-            if stdout:
-                details['stdout'] = text_content(stdout)
-
-            stderr = sys.stderr.getvalue()
-            if stderr:
-                details['stderr'] = text_content(stderr)
-
-        return super()._addOutcome(outcome, test, error=error,
-                details=details, error_permitted=error_permitted)
-
-
-def fork_for_tests(concurrency_num=CPU_COUNT, buffer=False):
+def fork_for_tests(concurrency_num=CPU_COUNT):
     """Implementation of `make_tests` used to construct `ConcurrentTestSuite`.
 
     :param concurrency_num: number of processes to use.
     """
-    if buffer:
-        test_protocol_client_class = BufferingTestProtocolClient
-    else:
-        test_protocol_client_class = TestProtocolClient
-
     def do_fork(suite):
         """Take suite and start up multiple runners by forking (Unix only).
 
@@ -147,7 +76,7 @@ def fork_for_tests(concurrency_num=CPU_COUNT, buffer=False):
                     # child actually gets keystrokes for pdb etc).
                     sys.stdin.close()
                     subunit_result = AutoTimingTestResultDecorator(
-                        test_protocol_client_class(stream)
+                        TestProtocolClient(stream)
                     )
                     process_suite.run(subunit_result)
                 except:
@@ -164,13 +93,7 @@ def fork_for_tests(concurrency_num=CPU_COUNT, buffer=False):
             else:
                 os.close(c2pwrite)
                 stream = os.fdopen(c2pread, 'rb')
-                # If we don't pass the second argument here, it defaults
-                # to sys.stdout.buffer down the line. But if we don't
-                # pass it *now*, it may be resolved after sys.stdout is
-                # replaced with a StringIO (to capture tests' outputs)
-                # which doesn't have a buffer attribute and can end up
-                # occasionally causing a 'broken-runner' error.
-                test = ProtocolTestCase(stream, sys.stdout.buffer)
+                test = ProtocolTestCase(stream)
                 result.append(test)
         return result
     return do_fork
diff --git a/tools/patman/test_util.py b/tools/patman/test_util.py
index 0f6d1aa902d..4ee58f9fbb9 100644
--- a/tools/patman/test_util.py
+++ b/tools/patman/test_util.py
@@ -15,7 +15,6 @@ from patman import command
 
 from io import StringIO
 
-buffer_outputs = True
 use_concurrent = True
 try:
     from concurrencytest.concurrencytest import ConcurrentTestSuite
@@ -120,7 +119,6 @@ class FullTextTestResult(unittest.TextTestResult):
             0: Print nothing
             1: Print a dot per test
             2: Print test names
-            3: Print test names, and buffered outputs for failing tests
     """
     def __init__(self, stream, descriptions, verbosity):
         self.verbosity = verbosity
@@ -140,39 +138,12 @@ class FullTextTestResult(unittest.TextTestResult):
         self.printErrorList('XFAIL', self.expectedFailures)
         self.printErrorList('XPASS', unexpected_successes)
 
-    def addError(self, test, err):
-        """Called when an error has occurred."""
-        super().addError(test, err)
-        self._mirrorOutput &= self.verbosity >= 3
-
-    def addFailure(self, test, err):
-        """Called when a test has failed."""
-        super().addFailure(test, err)
-        self._mirrorOutput &= self.verbosity >= 3
-
-    def addSubTest(self, test, subtest, err):
-        """Called at the end of a subtest."""
-        super().addSubTest(test, subtest, err)
-        self._mirrorOutput &= self.verbosity >= 3
-
-    def addSuccess(self, test):
-        """Called when a test has completed successfully"""
-        super().addSuccess(test)
-        # Don't print stdout/stderr for successful tests
-        self._mirrorOutput = False
-
     def addSkip(self, test, reason):
         """Called when a test is skipped."""
         # Add empty line to keep spacing consistent with other results
         if not reason.endswith('\n'):
             reason += '\n'
         super().addSkip(test, reason)
-        self._mirrorOutput &= self.verbosity >= 3
-
-    def addExpectedFailure(self, test, err):
-        """Called when an expected failure/error occurred."""
-        super().addExpectedFailure(test, err)
-        self._mirrorOutput &= self.verbosity >= 3
 
 
 def run_test_suites(toolname, debug, verbosity, test_preserve_dirs, processes,
@@ -208,14 +179,12 @@ def run_test_suites(toolname, debug, verbosity, test_preserve_dirs, processes,
     runner = unittest.TextTestRunner(
         stream=sys.stdout,
         verbosity=(1 if verbosity is None else verbosity),
-        buffer=False if test_name else buffer_outputs,
         resultclass=FullTextTestResult,
     )
 
     if use_concurrent and processes != 1:
         suite = ConcurrentTestSuite(suite,
-                fork_for_tests(processes or multiprocessing.cpu_count(),
-                               buffer=False if test_name else buffer_outputs))
+                fork_for_tests(processes or multiprocessing.cpu_count()))
 
     for module in class_and_module_list:
         if isinstance(module, str) and (not test_name or test_name == module):
-- 
2.39.2.637.g21b0678d19-goog


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 03/15] Remove concurrencytest
  2023-02-19 14:51 [PATCH 00/15] tools: Support uploading tools to PyPi for use with pip Simon Glass
  2023-02-19 14:51 ` [PATCH 01/15] binman: Avoid unwanted output in testFitFirmwareLoadables() Simon Glass
  2023-02-19 14:51 ` [PATCH 02/15] Revert "patman: test_util: Print test stdout/stderr within test summaries" Simon Glass
@ 2023-02-19 14:51 ` Simon Glass
  2023-02-19 14:51 ` [PATCH 04/15] patman: Move library functions into a library directory Simon Glass
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2023-02-19 14:51 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Heinrich Schuchardt, Alper Nebi Yasak, Neha Malcom Francis,
	Stefan Herbrechtsmeier, Philippe Reynes, Peng Fan, Simon Glass

While our version is better, it is tricky to use it when we are trying
to package things with pip. Drop it.

Somewhat reduced functionality is provided by the upstream version[1],
along with a rather annoying message each time it is used[2] [3].

[1] pip install concurrencytest
[2] https://github.com/cgoldberg/concurrencytest/issues/12
[3] https://github.com/cgoldberg/concurrencytest/pull/14

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 tools/concurrencytest/.gitignore         |   1 -
 tools/concurrencytest/README.md          |  74 ------------
 tools/concurrencytest/__init__.py        |   0
 tools/concurrencytest/concurrencytest.py | 144 -----------------------
 tools/patman/test_util.py                |   4 +-
 5 files changed, 2 insertions(+), 221 deletions(-)
 delete mode 100644 tools/concurrencytest/.gitignore
 delete mode 100644 tools/concurrencytest/README.md
 delete mode 100644 tools/concurrencytest/__init__.py
 delete mode 100644 tools/concurrencytest/concurrencytest.py

diff --git a/tools/concurrencytest/.gitignore b/tools/concurrencytest/.gitignore
deleted file mode 100644
index 0d20b6487c6..00000000000
--- a/tools/concurrencytest/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-*.pyc
diff --git a/tools/concurrencytest/README.md b/tools/concurrencytest/README.md
deleted file mode 100644
index 2d7fe75df53..00000000000
--- a/tools/concurrencytest/README.md
+++ /dev/null
@@ -1,74 +0,0 @@
-concurrencytest
-===============
-
-![testing goats](https://raw.github.com/cgoldberg/concurrencytest/master/testing-goats.png "testing goats")
-
-Python testtools extension for running unittest suites concurrently.
-
-----
-
-Install from PyPI:
-```
-pip install concurrencytest
-```
-
-----
-
-Requires:
-
-* [testtools](https://pypi.python.org/pypi/testtools) : `pip install testtools`
-* [python-subunit](https://pypi.python.org/pypi/python-subunit) : `pip install python-subunit`
-
-----
-
-Example:
-
-```python
-import time
-import unittest
-
-from concurrencytest import ConcurrentTestSuite, fork_for_tests
-
-
-class SampleTestCase(unittest.TestCase):
-    """Dummy tests that sleep for demo."""
-
-    def test_me_1(self):
-        time.sleep(0.5)
-
-    def test_me_2(self):
-        time.sleep(0.5)
-
-    def test_me_3(self):
-        time.sleep(0.5)
-
-    def test_me_4(self):
-        time.sleep(0.5)
-
-
-# Load tests from SampleTestCase defined above
-suite = unittest.TestLoader().loadTestsFromTestCase(SampleTestCase)
-runner = unittest.TextTestRunner()
-
-# Run tests sequentially
-runner.run(suite)
-
-# Run same tests across 4 processes
-suite = unittest.TestLoader().loadTestsFromTestCase(SampleTestCase)
-concurrent_suite = ConcurrentTestSuite(suite, fork_for_tests(4))
-runner.run(concurrent_suite)
-```
-Output:
-
-```
-....
-----------------------------------------------------------------------
-Ran 4 tests in 2.003s
-
-OK
-....
-----------------------------------------------------------------------
-Ran 4 tests in 0.504s
-
-OK
-```
diff --git a/tools/concurrencytest/__init__.py b/tools/concurrencytest/__init__.py
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/tools/concurrencytest/concurrencytest.py b/tools/concurrencytest/concurrencytest.py
deleted file mode 100644
index 5e88b94f415..00000000000
--- a/tools/concurrencytest/concurrencytest.py
+++ /dev/null
@@ -1,144 +0,0 @@
-#!/usr/bin/env python
-# SPDX-License-Identifier: GPL-2.0+
-#
-# Modified by: Corey Goldberg, 2013
-#
-# Original code from:
-#   Bazaar (bzrlib.tests.__init__.py, v2.6, copied Jun 01 2013)
-#   Copyright (C) 2005-2011 Canonical Ltd
-
-"""Python testtools extension for running unittest suites concurrently.
-
-The `testtools` project provides a ConcurrentTestSuite class, but does
-not provide a `make_tests` implementation needed to use it.
-
-This allows you to parallelize a test run across a configurable number
-of worker processes. While this can speed up CPU-bound test runs, it is
-mainly useful for IO-bound tests that spend most of their time waiting for
-data to arrive from someplace else and can benefit from cocncurrency.
-
-Unix only.
-"""
-
-import os
-import sys
-import traceback
-import unittest
-from itertools import cycle
-from multiprocessing import cpu_count
-
-from subunit import ProtocolTestCase, TestProtocolClient
-from subunit.test_results import AutoTimingTestResultDecorator
-
-from testtools import ConcurrentTestSuite, iterate_tests
-
-
-_all__ = [
-    'ConcurrentTestSuite',
-    'fork_for_tests',
-    'partition_tests',
-]
-
-
-CPU_COUNT = cpu_count()
-
-
-def fork_for_tests(concurrency_num=CPU_COUNT):
-    """Implementation of `make_tests` used to construct `ConcurrentTestSuite`.
-
-    :param concurrency_num: number of processes to use.
-    """
-    def do_fork(suite):
-        """Take suite and start up multiple runners by forking (Unix only).
-
-        :param suite: TestSuite object.
-
-        :return: An iterable of TestCase-like objects which can each have
-        run(result) called on them to feed tests to result.
-        """
-        result = []
-        test_blocks = partition_tests(suite, concurrency_num)
-        # Clear the tests from the original suite so it doesn't keep them alive
-        suite._tests[:] = []
-        for process_tests in test_blocks:
-            process_suite = unittest.TestSuite(process_tests)
-            # Also clear each split list so new suite has only reference
-            process_tests[:] = []
-            c2pread, c2pwrite = os.pipe()
-            pid = os.fork()
-            if pid == 0:
-                try:
-                    stream = os.fdopen(c2pwrite, 'wb')
-                    os.close(c2pread)
-                    # Leave stderr and stdout open so we can see test noise
-                    # Close stdin so that the child goes away if it decides to
-                    # read from stdin (otherwise its a roulette to see what
-                    # child actually gets keystrokes for pdb etc).
-                    sys.stdin.close()
-                    subunit_result = AutoTimingTestResultDecorator(
-                        TestProtocolClient(stream)
-                    )
-                    process_suite.run(subunit_result)
-                except:
-                    # Try and report traceback on stream, but exit with error
-                    # even if stream couldn't be created or something else
-                    # goes wrong.  The traceback is formatted to a string and
-                    # written in one go to avoid interleaving lines from
-                    # multiple failing children.
-                    try:
-                        stream.write(traceback.format_exc())
-                    finally:
-                        os._exit(1)
-                os._exit(0)
-            else:
-                os.close(c2pwrite)
-                stream = os.fdopen(c2pread, 'rb')
-                test = ProtocolTestCase(stream)
-                result.append(test)
-        return result
-    return do_fork
-
-
-def partition_tests(suite, count):
-    """Partition suite into count lists of tests."""
-    # This just assigns tests in a round-robin fashion.  On one hand this
-    # splits up blocks of related tests that might run faster if they shared
-    # resources, but on the other it avoids assigning blocks of slow tests to
-    # just one partition.  So the slowest partition shouldn't be much slower
-    # than the fastest.
-    partitions = [list() for _ in range(count)]
-    tests = iterate_tests(suite)
-    for partition, test in zip(cycle(partitions), tests):
-        partition.append(test)
-    return partitions
-
-
-if __name__ == '__main__':
-    import time
-
-    class SampleTestCase(unittest.TestCase):
-        """Dummy tests that sleep for demo."""
-
-        def test_me_1(self):
-            time.sleep(0.5)
-
-        def test_me_2(self):
-            time.sleep(0.5)
-
-        def test_me_3(self):
-            time.sleep(0.5)
-
-        def test_me_4(self):
-            time.sleep(0.5)
-
-    # Load tests from SampleTestCase defined above
-    suite = unittest.TestLoader().loadTestsFromTestCase(SampleTestCase)
-    runner = unittest.TextTestRunner()
-
-    # Run tests sequentially
-    runner.run(suite)
-
-    # Run same tests across 4 processes
-    suite = unittest.TestLoader().loadTestsFromTestCase(SampleTestCase)
-    concurrent_suite = ConcurrentTestSuite(suite, fork_for_tests(4))
-    runner.run(concurrent_suite)
diff --git a/tools/patman/test_util.py b/tools/patman/test_util.py
index 4ee58f9fbb9..9e0811b61a2 100644
--- a/tools/patman/test_util.py
+++ b/tools/patman/test_util.py
@@ -17,8 +17,8 @@ from io import StringIO
 
 use_concurrent = True
 try:
-    from concurrencytest.concurrencytest import ConcurrentTestSuite
-    from concurrencytest.concurrencytest import fork_for_tests
+    from concurrencytest import ConcurrentTestSuite
+    from concurrencytest import fork_for_tests
 except:
     use_concurrent = False
 
-- 
2.39.2.637.g21b0678d19-goog


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 04/15] patman: Move library functions into a library directory
  2023-02-19 14:51 [PATCH 00/15] tools: Support uploading tools to PyPi for use with pip Simon Glass
                   ` (2 preceding siblings ...)
  2023-02-19 14:51 ` [PATCH 03/15] Remove concurrencytest Simon Glass
@ 2023-02-19 14:51 ` Simon Glass
  2023-02-19 14:51 ` [PATCH 05/15] script: Add a script to build a PyPi package Simon Glass
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2023-02-19 14:51 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Heinrich Schuchardt, Alper Nebi Yasak, Neha Malcom Francis,
	Stefan Herbrechtsmeier, Philippe Reynes, Peng Fan, Simon Glass,
	Jonas Karlman, Maxim Cournoyer, Michal Suchanek, Quentin Schulz

The patman directory has a number of modules which are used by other tools
in U-Boot. This makes it hard to package the tools using pypi since the
common files must be copied along with the tool that uses them.

To address this, move these files into a new u_boot_pylib library. This
can be packaged separately and listed as a dependency of each tool.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 scripts/event_dump.py                         |  2 +-
 test/run                                      |  1 +
 tools/binman/bintool.py                       |  8 +++----
 tools/binman/bintool_test.py                  |  8 +++----
 tools/binman/btool/lz4.py                     |  2 +-
 tools/binman/btool/lzma_alone.py              |  2 +-
 tools/binman/cbfs_util.py                     |  4 ++--
 tools/binman/cbfs_util_test.py                |  4 ++--
 tools/binman/control.py                       |  6 ++---
 tools/binman/elf.py                           |  6 ++---
 tools/binman/elf_test.py                      |  8 +++----
 tools/binman/entry.py                         |  6 ++---
 tools/binman/entry_test.py                    |  2 +-
 tools/binman/etype/_testing.py                |  2 +-
 tools/binman/etype/atf_fip.py                 |  2 +-
 tools/binman/etype/blob.py                    |  4 ++--
 tools/binman/etype/blob_ext.py                |  4 ++--
 tools/binman/etype/blob_ext_list.py           |  4 ++--
 tools/binman/etype/fdtmap.py                  |  4 ++--
 tools/binman/etype/files.py                   |  2 +-
 tools/binman/etype/fill.py                    |  2 +-
 tools/binman/etype/fit.py                     |  2 +-
 tools/binman/etype/fmap.py                    |  6 ++---
 tools/binman/etype/gbb.py                     |  4 ++--
 tools/binman/etype/intel_ifwi.py              |  2 +-
 tools/binman/etype/mkimage.py                 |  2 +-
 tools/binman/etype/null.py                    |  2 +-
 tools/binman/etype/pre_load.py                |  2 +-
 tools/binman/etype/section.py                 |  6 ++---
 tools/binman/etype/text.py                    |  2 +-
 tools/binman/etype/u_boot_dtb_with_ucode.py   |  2 +-
 tools/binman/etype/u_boot_elf.py              |  2 +-
 tools/binman/etype/u_boot_env.py              |  2 +-
 tools/binman/etype/u_boot_spl_bss_pad.py      |  2 +-
 tools/binman/etype/u_boot_spl_expanded.py     |  2 +-
 tools/binman/etype/u_boot_tpl_bss_pad.py      |  2 +-
 tools/binman/etype/u_boot_tpl_expanded.py     |  2 +-
 .../binman/etype/u_boot_tpl_with_ucode_ptr.py |  4 ++--
 tools/binman/etype/u_boot_ucode.py            |  2 +-
 tools/binman/etype/u_boot_vpl_bss_pad.py      |  2 +-
 tools/binman/etype/u_boot_vpl_expanded.py     |  2 +-
 tools/binman/etype/u_boot_with_ucode_ptr.py   |  4 ++--
 tools/binman/etype/vblock.py                  |  2 +-
 tools/binman/fdt_test.py                      |  2 +-
 tools/binman/fip_util.py                      |  4 ++--
 tools/binman/fip_util_test.py                 |  4 ++--
 tools/binman/fmap_util.py                     |  2 +-
 tools/binman/ftest.py                         |  8 +++----
 tools/binman/image.py                         |  4 ++--
 tools/binman/image_test.py                    |  2 +-
 tools/binman/main.py                          |  7 +++---
 tools/binman/state.py                         |  4 ++--
 tools/buildman/builder.py                     |  6 ++---
 tools/buildman/builderthread.py               |  2 +-
 tools/buildman/cfgutil.py                     |  2 +-
 tools/buildman/control.py                     |  8 +++----
 tools/buildman/func_test.py                   |  8 +++----
 tools/buildman/main.py                        |  4 ++--
 tools/buildman/test.py                        |  8 +++----
 tools/buildman/toolchain.py                   |  6 ++---
 tools/dtoc/fdt.py                             |  2 +-
 tools/dtoc/fdt_util.py                        |  4 ++--
 tools/dtoc/main.py                            |  5 ++--
 tools/dtoc/test_dtoc.py                       |  4 ++--
 tools/dtoc/test_fdt.py                        |  7 +++---
 tools/dtoc/test_src_scan.py                   |  4 ++--
 tools/patman/__init__.py                      |  7 +++---
 tools/patman/__main__.py                      |  8 +++----
 tools/patman/checkpatch.py                    |  4 ++--
 tools/patman/control.py                       |  2 +-
 tools/patman/func_test.py                     |  6 ++---
 tools/patman/get_maintainer.py                |  2 +-
 tools/patman/gitutil.py                       |  4 ++--
 tools/patman/patchstream.py                   |  2 +-
 tools/patman/series.py                        |  4 ++--
 tools/patman/status.py                        |  4 ++--
 tools/patman/test_settings.py                 |  2 +-
 tools/rmboard.py                              |  2 +-
 tools/u_boot_pylib/__init__.py                |  4 ++++
 tools/u_boot_pylib/__main__.py                | 23 +++++++++++++++++++
 tools/{patman => u_boot_pylib}/command.py     |  2 +-
 .../cros_subprocess.py                        |  0
 tools/{patman => u_boot_pylib}/terminal.py    |  0
 tools/{patman => u_boot_pylib}/test_util.py   |  2 +-
 tools/{patman => u_boot_pylib}/tools.py       |  4 ++--
 tools/{patman => u_boot_pylib}/tout.py        |  2 +-
 tools/u_boot_pylib/u_boot_pylib               |  1 +
 87 files changed, 182 insertions(+), 151 deletions(-)
 create mode 100644 tools/u_boot_pylib/__init__.py
 create mode 100755 tools/u_boot_pylib/__main__.py
 rename tools/{patman => u_boot_pylib}/command.py (99%)
 rename tools/{patman => u_boot_pylib}/cros_subprocess.py (100%)
 rename tools/{patman => u_boot_pylib}/terminal.py (100%)
 rename tools/{patman => u_boot_pylib}/test_util.py (99%)
 rename tools/{patman => u_boot_pylib}/tools.py (99%)
 rename tools/{patman => u_boot_pylib}/tout.py (99%)
 create mode 120000 tools/u_boot_pylib/u_boot_pylib

diff --git a/scripts/event_dump.py b/scripts/event_dump.py
index d87823f3749..0117457526e 100755
--- a/scripts/event_dump.py
+++ b/scripts/event_dump.py
@@ -15,7 +15,7 @@ src_path = os.path.dirname(our_path)
 sys.path.insert(1, os.path.join(our_path, '../tools'))
 
 from binman import elf
-from patman import tools
+from u_boot_pylib import tools
 
 # A typical symbol looks like this:
 #   _u_boot_list_2_evspy_info_2_EVT_MISC_INIT_F_3_sandbox_misc_init_f
diff --git a/test/run b/test/run
index c4ab046ce8f..93b556f6cff 100755
--- a/test/run
+++ b/test/run
@@ -76,6 +76,7 @@ TOOLS_DIR=build-sandbox_spl/tools
 
 run_test "binman" ./tools/binman/binman --toolpath ${TOOLS_DIR} test
 run_test "patman" ./tools/patman/patman test
+run_test "u_boot_pylib" ./tools/u_boot_pylib/u_boot_pylib
 
 run_test "buildman" ./tools/buildman/buildman -t ${skip}
 run_test "fdt" ./tools/dtoc/test_fdt -t
diff --git a/tools/binman/bintool.py b/tools/binman/bintool.py
index 8fda13ff012..745b62b5a20 100644
--- a/tools/binman/bintool.py
+++ b/tools/binman/bintool.py
@@ -18,10 +18,10 @@ import shutil
 import tempfile
 import urllib.error
 
-from patman import command
-from patman import terminal
-from patman import tools
-from patman import tout
+from u_boot_pylib import command
+from u_boot_pylib import terminal
+from u_boot_pylib import tools
+from u_boot_pylib import tout
 
 BINMAN_DIR = os.path.dirname(os.path.realpath(__file__))
 
diff --git a/tools/binman/bintool_test.py b/tools/binman/bintool_test.py
index 7efb8391db2..87a6b11e676 100644
--- a/tools/binman/bintool_test.py
+++ b/tools/binman/bintool_test.py
@@ -16,10 +16,10 @@ import urllib.error
 from binman import bintool
 from binman.bintool import Bintool
 
-from patman import command
-from patman import terminal
-from patman import test_util
-from patman import tools
+from u_boot_pylib import command
+from u_boot_pylib import terminal
+from u_boot_pylib import test_util
+from u_boot_pylib import tools
 
 # pylint: disable=R0904
 class TestBintool(unittest.TestCase):
diff --git a/tools/binman/btool/lz4.py b/tools/binman/btool/lz4.py
index dc9e37921a6..fd520d13a56 100644
--- a/tools/binman/btool/lz4.py
+++ b/tools/binman/btool/lz4.py
@@ -60,7 +60,7 @@ import re
 import tempfile
 
 from binman import bintool
-from patman import tools
+from u_boot_pylib import tools
 
 # pylint: disable=C0103
 class Bintoollz4(bintool.Bintool):
diff --git a/tools/binman/btool/lzma_alone.py b/tools/binman/btool/lzma_alone.py
index 52a960fd2fa..1fda2f68c7b 100644
--- a/tools/binman/btool/lzma_alone.py
+++ b/tools/binman/btool/lzma_alone.py
@@ -37,7 +37,7 @@ import re
 import tempfile
 
 from binman import bintool
-from patman import tools
+from u_boot_pylib import tools
 
 # pylint: disable=C0103
 class Bintoollzma_alone(bintool.Bintool):
diff --git a/tools/binman/cbfs_util.py b/tools/binman/cbfs_util.py
index 7bd3d897981..fc56b40b753 100644
--- a/tools/binman/cbfs_util.py
+++ b/tools/binman/cbfs_util.py
@@ -22,8 +22,8 @@ import sys
 
 from binman import bintool
 from binman import elf
-from patman import command
-from patman import tools
+from u_boot_pylib import command
+from u_boot_pylib import tools
 
 # Set to True to enable printing output while working
 DEBUG = False
diff --git a/tools/binman/cbfs_util_test.py b/tools/binman/cbfs_util_test.py
index e0f792fd344..ee951d10cf3 100755
--- a/tools/binman/cbfs_util_test.py
+++ b/tools/binman/cbfs_util_test.py
@@ -20,8 +20,8 @@ from binman import bintool
 from binman import cbfs_util
 from binman.cbfs_util import CbfsWriter
 from binman import elf
-from patman import test_util
-from patman import tools
+from u_boot_pylib import test_util
+from u_boot_pylib import tools
 
 U_BOOT_DATA           = b'1234'
 U_BOOT_DTB_DATA       = b'udtb'
diff --git a/tools/binman/control.py b/tools/binman/control.py
index e64740094f6..3e27b72f881 100644
--- a/tools/binman/control.py
+++ b/tools/binman/control.py
@@ -12,14 +12,14 @@ import pkg_resources
 import re
 
 import sys
-from patman import tools
 
 from binman import bintool
 from binman import cbfs_util
-from patman import command
 from binman import elf
 from binman import entry
-from patman import tout
+from u_boot_pylib import command
+from u_boot_pylib import tools
+from u_boot_pylib import tout
 
 # These are imported if needed since they import libfdt
 state = None
diff --git a/tools/binman/elf.py b/tools/binman/elf.py
index 3cc8a384495..5816284c32a 100644
--- a/tools/binman/elf.py
+++ b/tools/binman/elf.py
@@ -13,9 +13,9 @@ import shutil
 import struct
 import tempfile
 
-from patman import command
-from patman import tools
-from patman import tout
+from u_boot_pylib import command
+from u_boot_pylib import tools
+from u_boot_pylib import tout
 
 ELF_TOOLS = True
 try:
diff --git a/tools/binman/elf_test.py b/tools/binman/elf_test.py
index 8cb55ebb815..c98083961b5 100644
--- a/tools/binman/elf_test.py
+++ b/tools/binman/elf_test.py
@@ -12,10 +12,10 @@ import tempfile
 import unittest
 
 from binman import elf
-from patman import command
-from patman import test_util
-from patman import tools
-from patman import tout
+from u_boot_pylib import command
+from u_boot_pylib import test_util
+from u_boot_pylib import tools
+from u_boot_pylib import tout
 
 binman_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
 
diff --git a/tools/binman/entry.py b/tools/binman/entry.py
index 5eacc5fa6c4..13224523978 100644
--- a/tools/binman/entry.py
+++ b/tools/binman/entry.py
@@ -14,9 +14,9 @@ import time
 from binman import bintool
 from binman import elf
 from dtoc import fdt_util
-from patman import tools
-from patman.tools import to_hex, to_hex_size
-from patman import tout
+from u_boot_pylib import tools
+from u_boot_pylib.tools import to_hex, to_hex_size
+from u_boot_pylib import tout
 
 modules = {}
 
diff --git a/tools/binman/entry_test.py b/tools/binman/entry_test.py
index a6fbf62731f..ac6582cf86a 100644
--- a/tools/binman/entry_test.py
+++ b/tools/binman/entry_test.py
@@ -14,7 +14,7 @@ from binman import entry
 from binman.etype.blob import Entry_blob
 from dtoc import fdt
 from dtoc import fdt_util
-from patman import tools
+from u_boot_pylib import tools
 
 class TestEntry(unittest.TestCase):
     def setUp(self):
diff --git a/tools/binman/etype/_testing.py b/tools/binman/etype/_testing.py
index 1c1efb21a44..e092d98ce15 100644
--- a/tools/binman/etype/_testing.py
+++ b/tools/binman/etype/_testing.py
@@ -9,7 +9,7 @@ from collections import OrderedDict
 
 from binman.entry import Entry, EntryArg
 from dtoc import fdt_util
-from patman import tools
+from u_boot_pylib import tools
 
 
 class Entry__testing(Entry):
diff --git a/tools/binman/etype/atf_fip.py b/tools/binman/etype/atf_fip.py
index 6ecd95b71f9..d5b862040b4 100644
--- a/tools/binman/etype/atf_fip.py
+++ b/tools/binman/etype/atf_fip.py
@@ -11,7 +11,7 @@ from binman.entry import Entry
 from binman.etype.section import Entry_section
 from binman.fip_util import FIP_TYPES, FipReader, FipWriter, UUID_LEN
 from dtoc import fdt_util
-from patman import tools
+from u_boot_pylib import tools
 
 class Entry_atf_fip(Entry_section):
     """ARM Trusted Firmware's Firmware Image Package (FIP)
diff --git a/tools/binman/etype/blob.py b/tools/binman/etype/blob.py
index c7ddcedffb8..f9c4e33b110 100644
--- a/tools/binman/etype/blob.py
+++ b/tools/binman/etype/blob.py
@@ -8,8 +8,8 @@
 from binman.entry import Entry
 from binman import state
 from dtoc import fdt_util
-from patman import tools
-from patman import tout
+from u_boot_pylib import tools
+from u_boot_pylib import tout
 
 class Entry_blob(Entry):
     """Arbitrary binary blob
diff --git a/tools/binman/etype/blob_ext.py b/tools/binman/etype/blob_ext.py
index fba6271de2b..9eb762b0a23 100644
--- a/tools/binman/etype/blob_ext.py
+++ b/tools/binman/etype/blob_ext.py
@@ -9,8 +9,8 @@ import os
 
 from binman.etype.blob import Entry_blob
 from dtoc import fdt_util
-from patman import tools
-from patman import tout
+from u_boot_pylib import tools
+from u_boot_pylib import tout
 
 class Entry_blob_ext(Entry_blob):
     """Externally built binary blob
diff --git a/tools/binman/etype/blob_ext_list.py b/tools/binman/etype/blob_ext_list.py
index f00202e9ebc..1bfcf6733a7 100644
--- a/tools/binman/etype/blob_ext_list.py
+++ b/tools/binman/etype/blob_ext_list.py
@@ -9,8 +9,8 @@ import os
 
 from binman.etype.blob import Entry_blob
 from dtoc import fdt_util
-from patman import tools
-from patman import tout
+from u_boot_pylib import tools
+from u_boot_pylib import tout
 
 class Entry_blob_ext_list(Entry_blob):
     """List of externally built binary blobs
diff --git a/tools/binman/etype/fdtmap.py b/tools/binman/etype/fdtmap.py
index 33c9d039a91..f1f6217940f 100644
--- a/tools/binman/etype/fdtmap.py
+++ b/tools/binman/etype/fdtmap.py
@@ -9,8 +9,8 @@ image.
 """
 
 from binman.entry import Entry
-from patman import tools
-from patman import tout
+from u_boot_pylib import tools
+from u_boot_pylib import tout
 
 FDTMAP_MAGIC   = b'_FDTMAP_'
 FDTMAP_HDR_LEN = 16
diff --git a/tools/binman/etype/files.py b/tools/binman/etype/files.py
index 2081bc727b9..c8757eafab1 100644
--- a/tools/binman/etype/files.py
+++ b/tools/binman/etype/files.py
@@ -11,7 +11,7 @@ import os
 
 from binman.etype.section import Entry_section
 from dtoc import fdt_util
-from patman import tools
+from u_boot_pylib import tools
 
 # This is imported if needed
 state = None
diff --git a/tools/binman/etype/fill.py b/tools/binman/etype/fill.py
index c91d0152a8a..7c93d4e2689 100644
--- a/tools/binman/etype/fill.py
+++ b/tools/binman/etype/fill.py
@@ -5,7 +5,7 @@
 
 from binman.entry import Entry
 from dtoc import fdt_util
-from patman import tools
+from u_boot_pylib import tools
 
 class Entry_fill(Entry):
     """An entry which is filled to a particular byte value
diff --git a/tools/binman/etype/fit.py b/tools/binman/etype/fit.py
index cd2943533ce..9d34aabd19a 100644
--- a/tools/binman/etype/fit.py
+++ b/tools/binman/etype/fit.py
@@ -12,7 +12,7 @@ from binman.etype.section import Entry_section
 from binman import elf
 from dtoc import fdt_util
 from dtoc.fdt import Fdt
-from patman import tools
+from u_boot_pylib import tools
 
 # Supported operations, with the fit,operation property
 OP_GEN_FDT_NODES, OP_SPLIT_ELF = range(2)
diff --git a/tools/binman/etype/fmap.py b/tools/binman/etype/fmap.py
index 0c576202a48..dacdafd8f6f 100644
--- a/tools/binman/etype/fmap.py
+++ b/tools/binman/etype/fmap.py
@@ -7,9 +7,9 @@
 
 from binman.entry import Entry
 from binman import fmap_util
-from patman import tools
-from patman.tools import to_hex_size
-from patman import tout
+from u_boot_pylib import tools
+from u_boot_pylib.tools import to_hex_size
+from u_boot_pylib import tout
 
 
 class Entry_fmap(Entry):
diff --git a/tools/binman/etype/gbb.py b/tools/binman/etype/gbb.py
index ba2a362bb59..cca18af6e2f 100644
--- a/tools/binman/etype/gbb.py
+++ b/tools/binman/etype/gbb.py
@@ -8,11 +8,11 @@
 
 from collections import OrderedDict
 
-from patman import command
+from u_boot_pylib import command
 from binman.entry import Entry, EntryArg
 
 from dtoc import fdt_util
-from patman import tools
+from u_boot_pylib import tools
 
 # Build GBB flags.
 # (src/platform/vboot_reference/firmware/include/gbb_header.h)
diff --git a/tools/binman/etype/intel_ifwi.py b/tools/binman/etype/intel_ifwi.py
index 04fad401eee..6513b97c3e5 100644
--- a/tools/binman/etype/intel_ifwi.py
+++ b/tools/binman/etype/intel_ifwi.py
@@ -10,7 +10,7 @@ from collections import OrderedDict
 from binman.entry import Entry
 from binman.etype.blob_ext import Entry_blob_ext
 from dtoc import fdt_util
-from patman import tools
+from u_boot_pylib import tools
 
 class Entry_intel_ifwi(Entry_blob_ext):
     """Intel Integrated Firmware Image (IFWI) file
diff --git a/tools/binman/etype/mkimage.py b/tools/binman/etype/mkimage.py
index cb264c3cad0..27a0c4bd7c6 100644
--- a/tools/binman/etype/mkimage.py
+++ b/tools/binman/etype/mkimage.py
@@ -9,7 +9,7 @@ from collections import OrderedDict
 
 from binman.entry import Entry
 from dtoc import fdt_util
-from patman import tools
+from u_boot_pylib import tools
 
 class Entry_mkimage(Entry):
     """Binary produced by mkimage
diff --git a/tools/binman/etype/null.py b/tools/binman/etype/null.py
index c10d4824472..263fb5244df 100644
--- a/tools/binman/etype/null.py
+++ b/tools/binman/etype/null.py
@@ -5,7 +5,7 @@
 
 from binman.entry import Entry
 from dtoc import fdt_util
-from patman import tools
+from u_boot_pylib import tools
 
 class Entry_null(Entry):
     """An entry which has no contents of its own
diff --git a/tools/binman/etype/pre_load.py b/tools/binman/etype/pre_load.py
index b6222811592..bd3545bffc0 100644
--- a/tools/binman/etype/pre_load.py
+++ b/tools/binman/etype/pre_load.py
@@ -8,7 +8,7 @@
 import os
 import struct
 from dtoc import fdt_util
-from patman import tools
+from u_boot_pylib import tools
 
 from binman.entry import Entry
 from binman.etype.collection import Entry_collection
diff --git a/tools/binman/etype/section.py b/tools/binman/etype/section.py
index 57b91ff726c..1f0bbd7f2ce 100644
--- a/tools/binman/etype/section.py
+++ b/tools/binman/etype/section.py
@@ -16,9 +16,9 @@ import sys
 from binman.entry import Entry
 from binman import state
 from dtoc import fdt_util
-from patman import tools
-from patman import tout
-from patman.tools import to_hex_size
+from u_boot_pylib import tools
+from u_boot_pylib import tout
+from u_boot_pylib.tools import to_hex_size
 
 
 class Entry_section(Entry):
diff --git a/tools/binman/etype/text.py b/tools/binman/etype/text.py
index c55e0233b1e..e4deb4abacc 100644
--- a/tools/binman/etype/text.py
+++ b/tools/binman/etype/text.py
@@ -7,7 +7,7 @@ from collections import OrderedDict
 
 from binman.entry import Entry, EntryArg
 from dtoc import fdt_util
-from patman import tools
+from u_boot_pylib import tools
 
 
 class Entry_text(Entry):
diff --git a/tools/binman/etype/u_boot_dtb_with_ucode.py b/tools/binman/etype/u_boot_dtb_with_ucode.py
index 047d310cdf4..f7225cecc16 100644
--- a/tools/binman/etype/u_boot_dtb_with_ucode.py
+++ b/tools/binman/etype/u_boot_dtb_with_ucode.py
@@ -7,7 +7,7 @@
 
 from binman.entry import Entry
 from binman.etype.blob_dtb import Entry_blob_dtb
-from patman import tools
+from u_boot_pylib import tools
 
 # This is imported if needed
 state = None
diff --git a/tools/binman/etype/u_boot_elf.py b/tools/binman/etype/u_boot_elf.py
index 3ec774f38ad..f4d86aa176a 100644
--- a/tools/binman/etype/u_boot_elf.py
+++ b/tools/binman/etype/u_boot_elf.py
@@ -9,7 +9,7 @@ from binman.entry import Entry
 from binman.etype.blob import Entry_blob
 
 from dtoc import fdt_util
-from patman import tools
+from u_boot_pylib import tools
 
 class Entry_u_boot_elf(Entry_blob):
     """U-Boot ELF image
diff --git a/tools/binman/etype/u_boot_env.py b/tools/binman/etype/u_boot_env.py
index c38340b256e..c027e93d42c 100644
--- a/tools/binman/etype/u_boot_env.py
+++ b/tools/binman/etype/u_boot_env.py
@@ -8,7 +8,7 @@ import zlib
 
 from binman.etype.blob import Entry_blob
 from dtoc import fdt_util
-from patman import tools
+from u_boot_pylib import tools
 
 class Entry_u_boot_env(Entry_blob):
     """An entry which contains a U-Boot environment
diff --git a/tools/binman/etype/u_boot_spl_bss_pad.py b/tools/binman/etype/u_boot_spl_bss_pad.py
index 680d1983056..1ffeb3911fd 100644
--- a/tools/binman/etype/u_boot_spl_bss_pad.py
+++ b/tools/binman/etype/u_boot_spl_bss_pad.py
@@ -10,7 +10,7 @@
 from binman import elf
 from binman.entry import Entry
 from binman.etype.blob import Entry_blob
-from patman import tools
+from u_boot_pylib import tools
 
 class Entry_u_boot_spl_bss_pad(Entry_blob):
     """U-Boot SPL binary padded with a BSS region
diff --git a/tools/binman/etype/u_boot_spl_expanded.py b/tools/binman/etype/u_boot_spl_expanded.py
index 319f6708fe6..fcd0dd19ac4 100644
--- a/tools/binman/etype/u_boot_spl_expanded.py
+++ b/tools/binman/etype/u_boot_spl_expanded.py
@@ -5,7 +5,7 @@
 # Entry-type module for expanded U-Boot SPL binary
 #
 
-from patman import tout
+from u_boot_pylib import tout
 
 from binman import state
 from binman.etype.blob_phase import Entry_blob_phase
diff --git a/tools/binman/etype/u_boot_tpl_bss_pad.py b/tools/binman/etype/u_boot_tpl_bss_pad.py
index 47f4b23f357..29c6a954129 100644
--- a/tools/binman/etype/u_boot_tpl_bss_pad.py
+++ b/tools/binman/etype/u_boot_tpl_bss_pad.py
@@ -10,7 +10,7 @@
 from binman import elf
 from binman.entry import Entry
 from binman.etype.blob import Entry_blob
-from patman import tools
+from u_boot_pylib import tools
 
 class Entry_u_boot_tpl_bss_pad(Entry_blob):
     """U-Boot TPL binary padded with a BSS region
diff --git a/tools/binman/etype/u_boot_tpl_expanded.py b/tools/binman/etype/u_boot_tpl_expanded.py
index 55fde3c8e66..58db4f37556 100644
--- a/tools/binman/etype/u_boot_tpl_expanded.py
+++ b/tools/binman/etype/u_boot_tpl_expanded.py
@@ -5,7 +5,7 @@
 # Entry-type module for expanded U-Boot TPL binary
 #
 
-from patman import tout
+from u_boot_pylib import tout
 
 from binman import state
 from binman.etype.blob_phase import Entry_blob_phase
diff --git a/tools/binman/etype/u_boot_tpl_with_ucode_ptr.py b/tools/binman/etype/u_boot_tpl_with_ucode_ptr.py
index c7f3f9dedb5..86f9578b714 100644
--- a/tools/binman/etype/u_boot_tpl_with_ucode_ptr.py
+++ b/tools/binman/etype/u_boot_tpl_with_ucode_ptr.py
@@ -7,11 +7,11 @@
 
 import struct
 
-from patman import command
 from binman.entry import Entry
 from binman.etype.blob import Entry_blob
 from binman.etype.u_boot_with_ucode_ptr import Entry_u_boot_with_ucode_ptr
-from patman import tools
+from u_boot_pylib import command
+from u_boot_pylib import tools
 
 class Entry_u_boot_tpl_with_ucode_ptr(Entry_u_boot_with_ucode_ptr):
     """U-Boot TPL with embedded microcode pointer
diff --git a/tools/binman/etype/u_boot_ucode.py b/tools/binman/etype/u_boot_ucode.py
index 6945411cf90..97ed7d7eb14 100644
--- a/tools/binman/etype/u_boot_ucode.py
+++ b/tools/binman/etype/u_boot_ucode.py
@@ -7,7 +7,7 @@
 
 from binman.entry import Entry
 from binman.etype.blob import Entry_blob
-from patman import tools
+from u_boot_pylib import tools
 
 class Entry_u_boot_ucode(Entry_blob):
     """U-Boot microcode block
diff --git a/tools/binman/etype/u_boot_vpl_bss_pad.py b/tools/binman/etype/u_boot_vpl_bss_pad.py
index b2ce2a31352..bba38ccf9e9 100644
--- a/tools/binman/etype/u_boot_vpl_bss_pad.py
+++ b/tools/binman/etype/u_boot_vpl_bss_pad.py
@@ -10,7 +10,7 @@
 from binman import elf
 from binman.entry import Entry
 from binman.etype.blob import Entry_blob
-from patman import tools
+from u_boot_pylib import tools
 
 class Entry_u_boot_vpl_bss_pad(Entry_blob):
     """U-Boot VPL binary padded with a BSS region
diff --git a/tools/binman/etype/u_boot_vpl_expanded.py b/tools/binman/etype/u_boot_vpl_expanded.py
index 92c64f0a65e..deff5a3f8c2 100644
--- a/tools/binman/etype/u_boot_vpl_expanded.py
+++ b/tools/binman/etype/u_boot_vpl_expanded.py
@@ -5,7 +5,7 @@
 # Entry-type module for expanded U-Boot VPL binary
 #
 
-from patman import tout
+from u_boot_pylib import tout
 
 from binman import state
 from binman.etype.blob_phase import Entry_blob_phase
diff --git a/tools/binman/etype/u_boot_with_ucode_ptr.py b/tools/binman/etype/u_boot_with_ucode_ptr.py
index e275698cebe..41731fd0e13 100644
--- a/tools/binman/etype/u_boot_with_ucode_ptr.py
+++ b/tools/binman/etype/u_boot_with_ucode_ptr.py
@@ -11,8 +11,8 @@ from binman import elf
 from binman.entry import Entry
 from binman.etype.blob import Entry_blob
 from dtoc import fdt_util
-from patman import tools
-from patman import command
+from u_boot_pylib import tools
+from u_boot_pylib import command
 
 class Entry_u_boot_with_ucode_ptr(Entry_blob):
     """U-Boot with embedded microcode pointer
diff --git a/tools/binman/etype/vblock.py b/tools/binman/etype/vblock.py
index 04cb7228aa0..4adb9a4e9bf 100644
--- a/tools/binman/etype/vblock.py
+++ b/tools/binman/etype/vblock.py
@@ -13,7 +13,7 @@ from binman.entry import EntryArg
 from binman.etype.collection import Entry_collection
 
 from dtoc import fdt_util
-from patman import tools
+from u_boot_pylib import tools
 
 class Entry_vblock(Entry_collection):
     """An entry which contains a Chromium OS verified boot block
diff --git a/tools/binman/fdt_test.py b/tools/binman/fdt_test.py
index 94347b1a1e2..7ef87295463 100644
--- a/tools/binman/fdt_test.py
+++ b/tools/binman/fdt_test.py
@@ -12,7 +12,7 @@ import unittest
 from dtoc import fdt
 from dtoc import fdt_util
 from dtoc.fdt import FdtScan
-from patman import tools
+from u_boot_pylib import tools
 
 class TestFdt(unittest.TestCase):
     @classmethod
diff --git a/tools/binman/fip_util.py b/tools/binman/fip_util.py
index 95eee32bc00..b5caab2d37a 100755
--- a/tools/binman/fip_util.py
+++ b/tools/binman/fip_util.py
@@ -37,8 +37,8 @@ OUR_PATH = os.path.dirname(OUR_FILE)
 sys.path.insert(2, os.path.join(OUR_PATH, '..'))
 
 # pylint: disable=C0413
-from patman import command
-from patman import tools
+from u_boot_pylib import command
+from u_boot_pylib import tools
 
 # The TOC header, at the start of the FIP
 HEADER_FORMAT = '<IIQ'
diff --git a/tools/binman/fip_util_test.py b/tools/binman/fip_util_test.py
index cf6d0002ec6..56aa56f4643 100755
--- a/tools/binman/fip_util_test.py
+++ b/tools/binman/fip_util_test.py
@@ -20,10 +20,10 @@ OUR_PATH = os.path.dirname(os.path.realpath(__file__))
 sys.path.insert(2, os.path.join(OUR_PATH, '..'))
 
 # pylint: disable=C0413
-from patman import test_util
-from patman import tools
 from binman import bintool
 from binman import fip_util
+from u_boot_pylib import test_util
+from u_boot_pylib import tools
 
 FIPTOOL = bintool.Bintool.create('fiptool')
 HAVE_FIPTOOL = FIPTOOL.is_present()
diff --git a/tools/binman/fmap_util.py b/tools/binman/fmap_util.py
index 1ce63d1a832..ea8d6a45008 100644
--- a/tools/binman/fmap_util.py
+++ b/tools/binman/fmap_util.py
@@ -10,7 +10,7 @@ import collections
 import struct
 import sys
 
-from patman import tools
+from u_boot_pylib import tools
 
 # constants imported from lib/fmap.h
 FMAP_SIGNATURE = b'__FMAP__'
diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py
index d469928b256..3cb17b6dec8 100644
--- a/tools/binman/ftest.py
+++ b/tools/binman/ftest.py
@@ -34,10 +34,10 @@ from dtoc import fdt_util
 from binman.etype import fdtmap
 from binman.etype import image_header
 from binman.image import Image
-from patman import command
-from patman import test_util
-from patman import tools
-from patman import tout
+from u_boot_pylib import command
+from u_boot_pylib import test_util
+from u_boot_pylib import tools
+from u_boot_pylib import tout
 
 # Contents of test files, corresponding to different entry types
 U_BOOT_DATA           = b'1234'
diff --git a/tools/binman/image.py b/tools/binman/image.py
index 941596320c1..8ebf71d61a8 100644
--- a/tools/binman/image.py
+++ b/tools/binman/image.py
@@ -18,8 +18,8 @@ from binman.etype import image_header
 from binman.etype import section
 from dtoc import fdt
 from dtoc import fdt_util
-from patman import tools
-from patman import tout
+from u_boot_pylib import tools
+from u_boot_pylib import tout
 
 class Image(section.Entry_section):
     """A Image, representing an output from binman
diff --git a/tools/binman/image_test.py b/tools/binman/image_test.py
index e351fa84ab3..bd51c1e55d1 100644
--- a/tools/binman/image_test.py
+++ b/tools/binman/image_test.py
@@ -7,7 +7,7 @@
 import unittest
 
 from binman.image import Image
-from patman.test_util import capture_sys_output
+from u_boot_pylib.test_util import capture_sys_output
 
 class TestImage(unittest.TestCase):
     def testInvalidFormat(self):
diff --git a/tools/binman/main.py b/tools/binman/main.py
index 14432a8d0dc..eef17b7b55f 100755
--- a/tools/binman/main.py
+++ b/tools/binman/main.py
@@ -34,7 +34,7 @@ sys.pycache_prefix = os.path.relpath(our_path, srctree)
 sys.path.insert(2, our1_path)
 
 from binman import bintool
-from patman import test_util
+from u_boot_pylib import test_util
 
 # Bring in the libfdt module
 sys.path.insert(2, 'scripts/dtc/pylibfdt')
@@ -44,7 +44,7 @@ sys.path.insert(2, os.path.join(srctree, 'build-sandbox_spl/scripts/dtc/pylibfdt
 
 from binman import cmdline
 from binman import control
-from patman import test_util
+from u_boot_pylib import test_util
 
 def RunTests(debug, verbosity, processes, test_preserve_dirs, args, toolpath):
     """Run the functional tests and any embedded doctests
@@ -95,7 +95,8 @@ def RunTestCoverage(toolpath):
         for path in toolpath:
             extra_args += ' --toolpath %s' % path
     test_util.run_test_coverage('tools/binman/binman', None,
-            ['*test*', '*main.py', 'tools/patman/*', 'tools/dtoc/*'],
+            ['*test*', '*main.py', 'tools/patman/*', 'tools/dtoc/*',
+             'tools/u_boot_pylib/*'],
             args.build_dir, all_set, extra_args or None)
 
 def RunBinman(args):
diff --git a/tools/binman/state.py b/tools/binman/state.py
index 56e5bf8bc10..87748d4ea36 100644
--- a/tools/binman/state.py
+++ b/tools/binman/state.py
@@ -13,8 +13,8 @@ import threading
 
 from dtoc import fdt
 import os
-from patman import tools
-from patman import tout
+from u_boot_pylib import tools
+from u_boot_pylib import tout
 
 OUR_PATH = os.path.dirname(os.path.realpath(__file__))
 
diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py
index c2a69027f88..cbfffe191eb 100644
--- a/tools/buildman/builder.py
+++ b/tools/buildman/builder.py
@@ -19,10 +19,10 @@ import time
 
 from buildman import builderthread
 from buildman import toolchain
-from patman import command
 from patman import gitutil
-from patman import terminal
-from patman.terminal import tprint
+from u_boot_pylib import command
+from u_boot_pylib import terminal
+from u_boot_pylib.terminal import tprint
 
 # This indicates an new int or hex Kconfig property with no default
 # It hangs the build since the 'conf' tool cannot proceed without valid input.
diff --git a/tools/buildman/builderthread.py b/tools/buildman/builderthread.py
index 680efae02d7..b8274addb4a 100644
--- a/tools/buildman/builderthread.py
+++ b/tools/buildman/builderthread.py
@@ -10,8 +10,8 @@ import sys
 import threading
 
 from buildman import cfgutil
-from patman import command
 from patman import gitutil
+from u_boot_pylib import command
 
 RETURN_CODE_RETRY = -1
 BASE_ELF_FILENAMES = ['u-boot', 'spl/u-boot-spl', 'tpl/u-boot-tpl']
diff --git a/tools/buildman/cfgutil.py b/tools/buildman/cfgutil.py
index ab74a8ef062..a340e01cb6b 100644
--- a/tools/buildman/cfgutil.py
+++ b/tools/buildman/cfgutil.py
@@ -7,7 +7,7 @@
 
 import re
 
-from patman import tools
+from u_boot_pylib import tools
 
 RE_LINE = re.compile(r'(# )?CONFIG_([A-Z0-9_]+)(=(.*)| is not set)')
 RE_CFG = re.compile(r'(~?)(CONFIG_)?([A-Z0-9_]+)(=.*)?')
diff --git a/tools/buildman/control.py b/tools/buildman/control.py
index 87e7d0e2012..76e4e2709ac 100644
--- a/tools/buildman/control.py
+++ b/tools/buildman/control.py
@@ -13,12 +13,12 @@ from buildman import bsettings
 from buildman import cfgutil
 from buildman import toolchain
 from buildman.builder import Builder
-from patman import command
 from patman import gitutil
 from patman import patchstream
-from patman import terminal
-from patman import tools
-from patman.terminal import tprint
+from u_boot_pylib import command
+from u_boot_pylib import terminal
+from u_boot_pylib import tools
+from u_boot_pylib.terminal import tprint
 
 def GetPlural(count):
     """Returns a plural 's' if count is not 1"""
diff --git a/tools/buildman/func_test.py b/tools/buildman/func_test.py
index 559e4edf74b..3885b9f083b 100644
--- a/tools/buildman/func_test.py
+++ b/tools/buildman/func_test.py
@@ -14,11 +14,11 @@ from buildman import bsettings
 from buildman import cmdline
 from buildman import control
 from buildman import toolchain
-from patman import command
 from patman import gitutil
-from patman import terminal
-from patman import test_util
-from patman import tools
+from u_boot_pylib import command
+from u_boot_pylib import terminal
+from u_boot_pylib import test_util
+from u_boot_pylib import tools
 
 settings_data = '''
 # Buildman settings file
diff --git a/tools/buildman/main.py b/tools/buildman/main.py
index 67c560c48d3..6076ba5d63d 100755
--- a/tools/buildman/main.py
+++ b/tools/buildman/main.py
@@ -25,8 +25,8 @@ from buildman import control
 from buildman import toolchain
 from patman import patchstream
 from patman import gitutil
-from patman import terminal
-from patman import test_util
+from u_boot_pylib import terminal
+from u_boot_pylib import test_util
 
 def RunTests(skip_net_tests, verboose, args):
     from buildman import func_test
diff --git a/tools/buildman/test.py b/tools/buildman/test.py
index daf5467503e..9fa6445b798 100644
--- a/tools/buildman/test.py
+++ b/tools/buildman/test.py
@@ -17,10 +17,10 @@ from buildman import cfgutil
 from buildman import control
 from buildman import toolchain
 from patman import commit
-from patman import command
-from patman import terminal
-from patman import test_util
-from patman import tools
+from u_boot_pylib import command
+from u_boot_pylib import terminal
+from u_boot_pylib import test_util
+from u_boot_pylib import tools
 
 use_network = True
 
diff --git a/tools/buildman/toolchain.py b/tools/buildman/toolchain.py
index ea1ad1bcb83..688f2e26872 100644
--- a/tools/buildman/toolchain.py
+++ b/tools/buildman/toolchain.py
@@ -11,9 +11,9 @@ import tempfile
 import urllib.request, urllib.error, urllib.parse
 
 from buildman import bsettings
-from patman import command
-from patman import terminal
-from patman import tools
+from u_boot_pylib import command
+from u_boot_pylib import terminal
+from u_boot_pylib import tools
 
 (PRIORITY_FULL_PREFIX, PRIORITY_PREFIX_GCC, PRIORITY_PREFIX_GCC_PATH,
     PRIORITY_CALC) = list(range(4))
diff --git a/tools/dtoc/fdt.py b/tools/dtoc/fdt.py
index d933972918b..a8e05349a72 100644
--- a/tools/dtoc/fdt.py
+++ b/tools/dtoc/fdt.py
@@ -12,7 +12,7 @@ import sys
 from dtoc import fdt_util
 import libfdt
 from libfdt import QUIET_NOTFOUND
-from patman import tools
+from u_boot_pylib import tools
 
 # This deals with a device tree, presenting it as an assortment of Node and
 # Prop objects, representing nodes and properties, respectively. This file
diff --git a/tools/dtoc/fdt_util.py b/tools/dtoc/fdt_util.py
index f34316632a7..f1f70568cfe 100644
--- a/tools/dtoc/fdt_util.py
+++ b/tools/dtoc/fdt_util.py
@@ -13,8 +13,8 @@ import struct
 import sys
 import tempfile
 
-from patman import command
-from patman import tools
+from u_boot_pylib import command
+from u_boot_pylib import tools
 
 def fdt32_to_cpu(val):
     """Convert a device tree cell to an integer
diff --git a/tools/dtoc/main.py b/tools/dtoc/main.py
index 5508759d4d5..fc9207d1b63 100755
--- a/tools/dtoc/main.py
+++ b/tools/dtoc/main.py
@@ -35,7 +35,7 @@ sys.path.insert(0, os.path.join(our_path,
                 '../../build-sandbox_spl/scripts/dtc/pylibfdt'))
 
 from dtoc import dtb_platdata
-from patman import test_util
+from u_boot_pylib import test_util
 
 def run_tests(processes, args):
     """Run all the test we have for dtoc
@@ -65,7 +65,8 @@ def RunTestCoverage():
     """Run the tests and check that we get 100% coverage"""
     sys.argv = [sys.argv[0]]
     test_util.run_test_coverage('tools/dtoc/dtoc', '/main.py',
-            ['tools/patman/*.py', '*/fdt*', '*test*'], args.build_dir)
+            ['tools/patman/*.py', 'tools/u_boot_pylib/*','*/fdt*', '*test*'],
+            args.build_dir)
 
 
 if __name__ != '__main__':
diff --git a/tools/dtoc/test_dtoc.py b/tools/dtoc/test_dtoc.py
index c62fcbac83f..0f544f9f54a 100755
--- a/tools/dtoc/test_dtoc.py
+++ b/tools/dtoc/test_dtoc.py
@@ -25,8 +25,8 @@ from dtoc.dtb_platdata import get_value
 from dtoc.dtb_platdata import tab_to
 from dtoc.src_scan import conv_name_to_c
 from dtoc.src_scan import get_compat_name
-from patman import test_util
-from patman import tools
+from u_boot_pylib import test_util
+from u_boot_pylib import tools
 
 OUR_PATH = os.path.dirname(os.path.realpath(__file__))
 
diff --git a/tools/dtoc/test_fdt.py b/tools/dtoc/test_fdt.py
index dffa86fc190..32fa69cbb01 100755
--- a/tools/dtoc/test_fdt.py
+++ b/tools/dtoc/test_fdt.py
@@ -30,8 +30,8 @@ from dtoc import fdt_util
 from dtoc.fdt_util import fdt32_to_cpu, fdt64_to_cpu
 from dtoc.fdt import Type, BytesToValue
 import libfdt
-from patman import test_util
-from patman import tools
+from u_boot_pylib import test_util
+from u_boot_pylib import tools
 
 #pylint: disable=protected-access
 
@@ -814,7 +814,8 @@ def run_test_coverage(build_dir):
         build_dir (str): Directory containing the build output
     """
     test_util.run_test_coverage('tools/dtoc/test_fdt.py', None,
-            ['tools/patman/*.py', '*test_fdt.py'], build_dir)
+            ['tools/patman/*.py', 'tools/u_boot_pylib/*', '*test_fdt.py'],
+            build_dir)
 
 
 def run_tests(names, processes):
diff --git a/tools/dtoc/test_src_scan.py b/tools/dtoc/test_src_scan.py
index f93cd7f5a3a..64b740841ca 100644
--- a/tools/dtoc/test_src_scan.py
+++ b/tools/dtoc/test_src_scan.py
@@ -15,8 +15,8 @@ import unittest
 from unittest import mock
 
 from dtoc import src_scan
-from patman import test_util
-from patman import tools
+from u_boot_pylib import test_util
+from u_boot_pylib import tools
 
 OUR_PATH = os.path.dirname(os.path.realpath(__file__))
 
diff --git a/tools/patman/__init__.py b/tools/patman/__init__.py
index 1b98ec7feee..08eeffdf6d2 100644
--- a/tools/patman/__init__.py
+++ b/tools/patman/__init__.py
@@ -1,6 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0+
 
-__all__ = ['checkpatch', 'command', 'commit', 'control', 'cros_subprocess',
-           'func_test', 'get_maintainer', 'gitutil', '__main__', 'patchstream',
-           'project', 'series', 'setup', 'settings', 'terminal',
-           'test_checkpatch', 'test_util', 'tools', 'tout']
+__all__ = ['checkpatch', 'commit', 'control', 'func_test', 'get_maintainer',
+           'gitutil', '__main__', 'patchstream', 'project', 'series',
+           'settings','setup', 'status', 'test_checkpatch', 'test_settings']
diff --git a/tools/patman/__main__.py b/tools/patman/__main__.py
index 749e6348b66..30632559bb6 100755
--- a/tools/patman/__main__.py
+++ b/tools/patman/__main__.py
@@ -24,10 +24,10 @@ from patman import func_test
 from patman import gitutil
 from patman import project
 from patman import settings
-from patman import terminal
-from patman import test_util
 from patman import test_checkpatch
-from patman import tools
+from u_boot_pylib import terminal
+from u_boot_pylib import test_util
+from u_boot_pylib import tools
 
 epilog = '''Create patches from commits in a branch, check them and email them
 as specified by tags you place in the commits. Use -n to do a dry run first.'''
@@ -150,7 +150,7 @@ if args.cmd == 'test':
     result = test_util.run_test_suites(
         'patman', False, False, False, None, None, None,
         [test_checkpatch.TestPatch, func_test.TestFunctional,
-         'gitutil', 'settings', 'terminal'])
+         'gitutil', 'settings'])
 
     sys.exit(0 if result.wasSuccessful() else 1)
 
diff --git a/tools/patman/checkpatch.py b/tools/patman/checkpatch.py
index d1b902dd962..c1dec323f36 100644
--- a/tools/patman/checkpatch.py
+++ b/tools/patman/checkpatch.py
@@ -7,9 +7,9 @@ import os
 import re
 import sys
 
-from patman import command
 from patman import gitutil
-from patman import terminal
+from u_boot_pylib import command
+from u_boot_pylib import terminal
 
 EMACS_PREFIX = r'(?:[0-9]{4}.*\.patch:[0-9]+: )?'
 TYPE_NAME = r'([A-Z_]+:)?'
diff --git a/tools/patman/control.py b/tools/patman/control.py
index 38e98dab84d..d1bcea0c9a7 100644
--- a/tools/patman/control.py
+++ b/tools/patman/control.py
@@ -14,7 +14,7 @@ import sys
 from patman import checkpatch
 from patman import gitutil
 from patman import patchstream
-from patman import terminal
+from u_boot_pylib import terminal
 
 def setup():
     """Do required setup before doing anything"""
diff --git a/tools/patman/func_test.py b/tools/patman/func_test.py
index c25a47bdeb2..8c2dfbe4528 100644
--- a/tools/patman/func_test.py
+++ b/tools/patman/func_test.py
@@ -23,9 +23,9 @@ from patman import patchstream
 from patman.patchstream import PatchStream
 from patman.series import Series
 from patman import settings
-from patman import terminal
-from patman import tools
-from patman.test_util import capture_sys_output
+from u_boot_pylib import terminal
+from u_boot_pylib import tools
+from u_boot_pylib.test_util import capture_sys_output
 
 import pygit2
 from patman import status
diff --git a/tools/patman/get_maintainer.py b/tools/patman/get_maintainer.py
index f7011be1e49..8df3d124bac 100644
--- a/tools/patman/get_maintainer.py
+++ b/tools/patman/get_maintainer.py
@@ -7,8 +7,8 @@ import os
 import shlex
 import shutil
 
-from patman import command
 from patman import gitutil
+from u_boot_pylib import command
 
 
 def find_get_maintainer(script_file_name):
diff --git a/tools/patman/gitutil.py b/tools/patman/gitutil.py
index 5e742102c21..6700057359f 100644
--- a/tools/patman/gitutil.py
+++ b/tools/patman/gitutil.py
@@ -5,9 +5,9 @@
 import os
 import sys
 
-from patman import command
 from patman import settings
-from patman import terminal
+from u_boot_pylib import command
+from u_boot_pylib import terminal
 
 # True to use --no-decorate - we check this in setup()
 use_no_decorate = True
diff --git a/tools/patman/patchstream.py b/tools/patman/patchstream.py
index fb6a6036f3b..f91669a9404 100644
--- a/tools/patman/patchstream.py
+++ b/tools/patman/patchstream.py
@@ -14,10 +14,10 @@ import queue
 import shutil
 import tempfile
 
-from patman import command
 from patman import commit
 from patman import gitutil
 from patman.series import Series
+from u_boot_pylib import command
 
 # Tags that we detect and remove
 RE_REMOVE = re.compile(r'^BUG=|^TEST=|^BRANCH=|^Review URL:'
diff --git a/tools/patman/series.py b/tools/patman/series.py
index 2eeeef71dc6..88417acb434 100644
--- a/tools/patman/series.py
+++ b/tools/patman/series.py
@@ -11,8 +11,8 @@ import os
 from patman import get_maintainer
 from patman import gitutil
 from patman import settings
-from patman import terminal
-from patman import tools
+from u_boot_pylib import terminal
+from u_boot_pylib import tools
 
 # Series-xxx tags that we understand
 valid_series = ['to', 'cc', 'version', 'changes', 'prefix', 'notes', 'name',
diff --git a/tools/patman/status.py b/tools/patman/status.py
index 47ed6d61d4d..5fb436e08ff 100644
--- a/tools/patman/status.py
+++ b/tools/patman/status.py
@@ -18,8 +18,8 @@ import requests
 
 from patman import patchstream
 from patman.patchstream import PatchStream
-from patman import terminal
-from patman import tout
+from u_boot_pylib import terminal
+from u_boot_pylib import tout
 
 # Patches which are part of a multi-patch series are shown with a prefix like
 # [prefix, version, sequence], for example '[RFC, v2, 3/5]'. All but the last
diff --git a/tools/patman/test_settings.py b/tools/patman/test_settings.py
index c768a2fc641..06b7cbc3ab6 100644
--- a/tools/patman/test_settings.py
+++ b/tools/patman/test_settings.py
@@ -10,7 +10,7 @@ import sys
 import tempfile
 
 from patman import settings
-from patman import tools
+from u_boot_pylib import tools
 
 
 @contextlib.contextmanager
diff --git a/tools/rmboard.py b/tools/rmboard.py
index ae256321270..0c56b149e0f 100755
--- a/tools/rmboard.py
+++ b/tools/rmboard.py
@@ -28,7 +28,7 @@ import os
 import re
 import sys
 
-from patman import command
+from u_boot_pylib import command
 
 def rm_kconfig_include(path):
     """Remove a path from Kconfig files
diff --git a/tools/u_boot_pylib/__init__.py b/tools/u_boot_pylib/__init__.py
new file mode 100644
index 00000000000..63c88e85ec0
--- /dev/null
+++ b/tools/u_boot_pylib/__init__.py
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0+
+
+__all__ = ['command', 'cros_subprocess','terminal', 'test_util', 'tools',
+	   'tout']
diff --git a/tools/u_boot_pylib/__main__.py b/tools/u_boot_pylib/__main__.py
new file mode 100755
index 00000000000..8f98d7bd9f8
--- /dev/null
+++ b/tools/u_boot_pylib/__main__.py
@@ -0,0 +1,23 @@
+#!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Copyright 2023 Google LLC
+#
+
+import os
+import sys
+
+if __name__ == "__main__":
+    # Allow 'from u_boot_pylib import xxx to work'
+    our_path = os.path.dirname(os.path.realpath(__file__))
+    sys.path.append(os.path.join(our_path, '..'))
+
+    # Run tests
+    from u_boot_pylib import terminal
+    from u_boot_pylib import test_util
+
+    result = test_util.run_test_suites(
+        'u_boot_pylib', False, False, False, None, None, None,
+        ['terminal'])
+
+    sys.exit(0 if result.wasSuccessful() else 1)
diff --git a/tools/patman/command.py b/tools/u_boot_pylib/command.py
similarity index 99%
rename from tools/patman/command.py
rename to tools/u_boot_pylib/command.py
index 92c453b5c13..9bbfc5bdd83 100644
--- a/tools/patman/command.py
+++ b/tools/u_boot_pylib/command.py
@@ -4,7 +4,7 @@
 
 import os
 
-from patman import cros_subprocess
+from u_boot_pylib import cros_subprocess
 
 """Shell command ease-ups for Python."""
 
diff --git a/tools/patman/cros_subprocess.py b/tools/u_boot_pylib/cros_subprocess.py
similarity index 100%
rename from tools/patman/cros_subprocess.py
rename to tools/u_boot_pylib/cros_subprocess.py
diff --git a/tools/patman/terminal.py b/tools/u_boot_pylib/terminal.py
similarity index 100%
rename from tools/patman/terminal.py
rename to tools/u_boot_pylib/terminal.py
diff --git a/tools/patman/test_util.py b/tools/u_boot_pylib/test_util.py
similarity index 99%
rename from tools/patman/test_util.py
rename to tools/u_boot_pylib/test_util.py
index 9e0811b61a2..e7564e10c99 100644
--- a/tools/patman/test_util.py
+++ b/tools/u_boot_pylib/test_util.py
@@ -11,7 +11,7 @@ import os
 import sys
 import unittest
 
-from patman import command
+from u_boot_pylib import command
 
 from io import StringIO
 
diff --git a/tools/patman/tools.py b/tools/u_boot_pylib/tools.py
similarity index 99%
rename from tools/patman/tools.py
rename to tools/u_boot_pylib/tools.py
index 2ac814d476f..187725b5015 100644
--- a/tools/patman/tools.py
+++ b/tools/u_boot_pylib/tools.py
@@ -11,8 +11,8 @@ import sys
 import tempfile
 import urllib.request
 
-from patman import command
-from patman import tout
+from u_boot_pylib import command
+from u_boot_pylib import tout
 
 # Output directly (generally this is temporary)
 outdir = None
diff --git a/tools/patman/tout.py b/tools/u_boot_pylib/tout.py
similarity index 99%
rename from tools/patman/tout.py
rename to tools/u_boot_pylib/tout.py
index ff0fd92afcc..6bd2806f88f 100644
--- a/tools/patman/tout.py
+++ b/tools/u_boot_pylib/tout.py
@@ -6,7 +6,7 @@
 
 import sys
 
-from patman import terminal
+from u_boot_pylib import terminal
 
 # Output verbosity levels that we support
 ERROR, WARNING, NOTICE, INFO, DETAIL, DEBUG = range(6)
diff --git a/tools/u_boot_pylib/u_boot_pylib b/tools/u_boot_pylib/u_boot_pylib
new file mode 120000
index 00000000000..5a427d19424
--- /dev/null
+++ b/tools/u_boot_pylib/u_boot_pylib
@@ -0,0 +1 @@
+__main__.py
\ No newline at end of file
-- 
2.39.2.637.g21b0678d19-goog


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 05/15] script: Add a script to build a PyPi package
  2023-02-19 14:51 [PATCH 00/15] tools: Support uploading tools to PyPi for use with pip Simon Glass
                   ` (3 preceding siblings ...)
  2023-02-19 14:51 ` [PATCH 04/15] patman: Move library functions into a library directory Simon Glass
@ 2023-02-19 14:51 ` Simon Glass
  2023-02-19 14:51 ` [PATCH 06/15] patman: Add support for building a u_boot_tools " Simon Glass
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2023-02-19 14:51 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Heinrich Schuchardt, Alper Nebi Yasak, Neha Malcom Francis,
	Stefan Herbrechtsmeier, Philippe Reynes, Peng Fan, Simon Glass

Create a script which can package a tool for use with PyPi and the 'pip'
tool. This involves quite a few steps so is best automated. Future work
will enable use of this for some of the tools in U-Boot.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 scripts/make_pip.sh | 113 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 113 insertions(+)
 create mode 100755 scripts/make_pip.sh

diff --git a/scripts/make_pip.sh b/scripts/make_pip.sh
new file mode 100755
index 00000000000..358d0f3a465
--- /dev/null
+++ b/scripts/make_pip.sh
@@ -0,0 +1,113 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-2.0+
+
+# Packages a U-Boot tool
+#
+# Usage: make_pip.sh <tool_name> [--real]
+#
+# Where tool_name is one of patmanu, buildman, dtoc, binmanu, u_boot_pylib
+#
+# and --real means to upload to the real server (otherwise the test one is used)
+#
+# The username for upload is always __token__ so set TWINE_PASSWORD to your
+# password before running this script:
+#
+# export TWINE_PASSWORD=pypi-xxx
+#
+# To test your new packages:
+#
+# pip install -i https://test.pypi.org/simple/ <tool_name>
+#
+
+# DO NOT use patman or binman
+
+set -xe
+
+# Repo to upload to
+repo="--repository testpypi"
+
+# Non-empty to do the actual upload
+upload=1
+
+tool="$1"
+shift
+flags="$*"
+
+if [[ "${tool}" =~ ^(patmanu|buildman|dtoc|binmanu|u_boot_pylib)$ ]]; then
+	echo "Building dist package for tool ${tool}"
+else
+	echo "Unknown tool ${tool}: use patmanu, buildman, dtoc or binmanu"
+	exit 1
+fi
+
+for flag in "${flags}"; do
+	if [ "${flag}" == "--real" ]; then
+		echo "Using real server"
+		repo=
+	fi
+	if [ "${flag}" == "-n" ]; then
+		echo "Doing dry run"
+		upload=
+	fi
+done
+
+if [ -n "${upload}" ]; then
+	if [ -z "${TWINE_PASSWORD}" ]; then
+		echo "Please set TWINE_PASSWORD to your password and retry"
+		exit 1
+	fi
+fi
+
+# Create a temp dir to work in
+dir=$(mktemp -d)
+
+# Copy in some basic files
+cp -v tools/${tool}/pyproject.toml ${dir}
+cp -v Licenses/gpl-2.0.txt ${dir}/LICENSE
+readme="tools/${tool}/README.*"
+
+# Copy in the README, dropping some Sphinx constructs that PyPi doesn't like
+cat ${readme} | sed -E 's/:(doc|ref):`.*`//; /sectionauthor/d; /toctree::/d' \
+	> ${dir}/$(basename ${readme})
+
+# Copy the top-level Python and doc files
+dest=${dir}/src/${tool}
+mkdir -p ${dest}
+cp -v tools/$tool/{*.py,*.rst} ${dest}
+
+# Copy over the subdirectories, including any sub files. Drop any cache files
+# and other such things
+pushd tools/${tool}
+for subdir in $(find . -maxdepth 1 -type d | \
+		grep -vE "(__pycache__|home|usr|scratch|\.$|pyproject)"); do
+	pathname="${dest}/${subdir}"
+	echo "Copy ${pathname}"
+	cp -a ${subdir} ${pathname}
+done
+popd
+
+# Remove cache files that accidentally made it through
+find ${dest} -name __pycache__ -type f -exec rm {} \;
+find ${dest} -depth -name __pycache__ -exec rmdir 112 \;
+mkdir ${dir}/tests
+cd ${dir}
+
+# Make sure the tools are up to date
+python3 -m pip install --upgrade build
+python3 -m pip install --upgrade twine
+
+# Build the PyPi package
+python3 -m build
+
+echo "Completed build of ${tool}"
+
+# Use --skip-existing to work even if the version is already present
+if [ -n "${upload}" ]; then
+	echo "Uploading from ${dir}"
+	python3 -m twine upload ${repo} -u __token__ dist/*
+	echo "Completed upload of ${tool}"
+fi
+
+rm -rf "{$dir}"
+
+echo -e "done\n\n"
-- 
2.39.2.637.g21b0678d19-goog


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 06/15] patman: Add support for building a u_boot_tools PyPi package
  2023-02-19 14:51 [PATCH 00/15] tools: Support uploading tools to PyPi for use with pip Simon Glass
                   ` (4 preceding siblings ...)
  2023-02-19 14:51 ` [PATCH 05/15] script: Add a script to build a PyPi package Simon Glass
@ 2023-02-19 14:51 ` Simon Glass
  2023-02-19 14:51 ` [PATCH 07/15] patman: Rename directory to patmanu Simon Glass
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2023-02-19 14:51 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Heinrich Schuchardt, Alper Nebi Yasak, Neha Malcom Francis,
	Stefan Herbrechtsmeier, Philippe Reynes, Peng Fan, Simon Glass,
	Marek Behún, Pali Rohár, Quentin Schulz

Create the necessary files to build this new package.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 Makefile                          |  18 +-
 tools/u_boot_pylib/LICENSE        | 339 ++++++++++++++++++++++++++++++
 tools/u_boot_pylib/README.rst     |  15 ++
 tools/u_boot_pylib/pyproject.toml |  22 ++
 4 files changed, 393 insertions(+), 1 deletion(-)
 create mode 100644 tools/u_boot_pylib/LICENSE
 create mode 100644 tools/u_boot_pylib/README.rst
 create mode 100644 tools/u_boot_pylib/pyproject.toml

diff --git a/Makefile b/Makefile
index 54f894dab84..9f008dea0ec 100644
--- a/Makefile
+++ b/Makefile
@@ -522,7 +522,7 @@ env_h := include/generated/environment.h
 no-dot-config-targets := clean clobber mrproper distclean \
 			 help %docs check% coccicheck \
 			 ubootversion backup tests check pcheck qcheck tcheck \
-			 pylint pylint_err
+			 pylint pylint_err _pip pip pip_test pip_release
 
 config-targets := 0
 mixed-targets  := 0
@@ -2272,6 +2272,17 @@ backup:
 	F=`basename $(srctree)` ; cd .. ; \
 	gtar --force-local -zcvf `LC_ALL=C date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F
 
+PHONY += _pip pip pip_release
+
+pip_release: PIP_ARGS="--real"
+pip_test: PIP_ARGS=""
+pip: PIP_ARGS="-n"
+
+pip pip_test pip_release: _pip
+
+_pip:
+	scripts/make_pip.sh u_boot_pylib ${PIP_ARGS}
+
 help:
 	@echo  'Cleaning targets:'
 	@echo  '  clean		  - Remove most generated files but keep the config'
@@ -2305,6 +2316,11 @@ help:
 	@echo  "  cfg		  - Don't build, just create the .cfg files"
 	@echo  "  envtools	  - Build only the target-side environment tools"
 	@echo  ''
+	@echo  'PyPi / pip targets:'
+	@echo  '  pip             - Check building of PyPi packages'
+	@echo  '  pip_test        - Build PyPi pakages and upload to test server'
+	@echo  '  pip_release     - Build PyPi pakages and upload to release server'
+	@echo  ''
 	@echo  'Static analysers'
 	@echo  '  checkstack      - Generate a list of stack hogs'
 	@echo  '  coccicheck      - Execute static code analysis with Coccinelle'
diff --git a/tools/u_boot_pylib/LICENSE b/tools/u_boot_pylib/LICENSE
new file mode 100644
index 00000000000..d159169d105
--- /dev/null
+++ b/tools/u_boot_pylib/LICENSE
@@ -0,0 +1,339 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/tools/u_boot_pylib/README.rst b/tools/u_boot_pylib/README.rst
new file mode 100644
index 00000000000..93858f5571d
--- /dev/null
+++ b/tools/u_boot_pylib/README.rst
@@ -0,0 +1,15 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+# U-Boot Python Library
+=====================
+
+This is a Python library used by various U-Boot tools, including patman,
+buildman and binman.
+
+The module can be installed with pip::
+
+   pip install u_boot_pylib
+
+or via setup.py::
+
+   ./setup.py install [--user]
diff --git a/tools/u_boot_pylib/pyproject.toml b/tools/u_boot_pylib/pyproject.toml
new file mode 100644
index 00000000000..d82ab3f8f8a
--- /dev/null
+++ b/tools/u_boot_pylib/pyproject.toml
@@ -0,0 +1,22 @@
+[build-system]
+requires = ["setuptools>=61.0"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "u_boot_pylib"
+version = "0.0.1"
+authors = [
+  { name="Simon Glass", email="sjg@chromium.org" },
+]
+description = "U-Boot python library"
+readme = "README.md"
+requires-python = ">=3.7"
+classifiers = [
+    "Programming Language :: Python :: 3",
+    "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)",
+    "Operating System :: OS Independent",
+]
+
+[project.urls]
+"Homepage" = "https://u-boot.readthedocs.io"
+"Bug Tracker" = "https://source.denx.de/groups/u-boot/-/issues"
-- 
2.39.2.637.g21b0678d19-goog


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 07/15] patman: Rename directory to patmanu
  2023-02-19 14:51 [PATCH 00/15] tools: Support uploading tools to PyPi for use with pip Simon Glass
                   ` (5 preceding siblings ...)
  2023-02-19 14:51 ` [PATCH 06/15] patman: Add support for building a u_boot_tools " Simon Glass
@ 2023-02-19 14:51 ` Simon Glass
  2023-02-19 16:49   ` Sean Anderson
  2023-02-19 14:51 ` [PATCH 08/15] patman: Add support for building a patmanu PyPi package Simon Glass
                   ` (7 subsequent siblings)
  14 siblings, 1 reply; 20+ messages in thread
From: Simon Glass @ 2023-02-19 14:51 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Heinrich Schuchardt, Alper Nebi Yasak, Neha Malcom Francis,
	Stefan Herbrechtsmeier, Philippe Reynes, Peng Fan, Simon Glass,
	Douglas Anderson, Maxim Cournoyer, Sean Anderson

The name 'patman' is already taken in PyPi so use 'patmanu' as the name
of the package. Rename the source directory accordingly.

Fix up some uses of this in buildman.

Add a symlink to avoid any major disruption for people used to invoking
patman from within the source tree.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 tools/buildman/builder.py                        |  2 +-
 tools/buildman/builderthread.py                  |  2 +-
 tools/buildman/control.py                        |  4 ++--
 tools/buildman/func_test.py                      |  2 +-
 tools/buildman/main.py                           |  4 ++--
 tools/buildman/test.py                           |  2 +-
 tools/patman                                     |  1 +
 tools/{patman => patmanu}/.checkpatch.conf       |  0
 tools/{patman => patmanu}/.gitignore             |  0
 tools/{patman => patmanu}/README.rst             |  0
 tools/{patman => patmanu}/__init__.py            |  3 +++
 tools/{patman => patmanu}/__main__.py            | 16 ++++++++--------
 tools/{patman => patmanu}/checkpatch.py          |  2 +-
 tools/{patman => patmanu}/commit.py              |  0
 tools/{patman => patmanu}/control.py             |  8 ++++----
 tools/{patman => patmanu}/func_test.py           | 16 ++++++++--------
 tools/{patman => patmanu}/get_maintainer.py      |  2 +-
 tools/{patman => patmanu}/gitutil.py             |  4 ++--
 tools/{patman => patmanu}/patchstream.py         |  6 +++---
 tools/{patman => patmanu}/patman                 |  0
 tools/{patman => patmanu}/patman.rst             |  0
 tools/{patman => patmanu}/project.py             |  2 +-
 tools/{patman => patmanu}/pytest.ini             |  0
 tools/{patman => patmanu}/series.py              |  6 +++---
 tools/{patman => patmanu}/settings.py            |  4 ++--
 tools/{patman => patmanu}/setup.py               |  0
 tools/{patman => patmanu}/status.py              |  4 ++--
 .../test/0000-cover-letter.patch                 |  0
 .../test/0001-pci-Correct-cast-for-sandbox.patch |  0
 ...ast-for-sandbox-in-fdtdec_setup_mem_siz.patch |  0
 tools/{patman => patmanu}/test/test01.txt        |  0
 tools/{patman => patmanu}/test_checkpatch.py     | 10 +++++-----
 tools/{patman => patmanu}/test_settings.py       |  2 +-
 33 files changed, 53 insertions(+), 49 deletions(-)
 create mode 120000 tools/patman
 rename tools/{patman => patmanu}/.checkpatch.conf (100%)
 rename tools/{patman => patmanu}/.gitignore (100%)
 rename tools/{patman => patmanu}/README.rst (100%)
 rename tools/{patman => patmanu}/__init__.py (85%)
 rename tools/{patman => patmanu}/__main__.py (96%)
 rename tools/{patman => patmanu}/checkpatch.py (99%)
 rename tools/{patman => patmanu}/commit.py (100%)
 rename tools/{patman => patmanu}/control.py (98%)
 rename tools/{patman => patmanu}/func_test.py (99%)
 rename tools/{patman => patmanu}/get_maintainer.py (98%)
 rename tools/{patman => patmanu}/gitutil.py (99%)
 rename tools/{patman => patmanu}/patchstream.py (99%)
 rename tools/{patman => patmanu}/patman (100%)
 rename tools/{patman => patmanu}/patman.rst (100%)
 rename tools/{patman => patmanu}/project.py (95%)
 rename tools/{patman => patmanu}/pytest.ini (100%)
 rename tools/{patman => patmanu}/series.py (99%)
 rename tools/{patman => patmanu}/settings.py (99%)
 rename tools/{patman => patmanu}/setup.py (100%)
 rename tools/{patman => patmanu}/status.py (99%)
 rename tools/{patman => patmanu}/test/0000-cover-letter.patch (100%)
 rename tools/{patman => patmanu}/test/0001-pci-Correct-cast-for-sandbox.patch (100%)
 rename tools/{patman => patmanu}/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch (100%)
 rename tools/{patman => patmanu}/test/test01.txt (100%)
 rename tools/{patman => patmanu}/test_checkpatch.py (99%)
 rename tools/{patman => patmanu}/test_settings.py (98%)

diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py
index cbfffe191eb..a04eb5f5e42 100644
--- a/tools/buildman/builder.py
+++ b/tools/buildman/builder.py
@@ -19,7 +19,7 @@ import time
 
 from buildman import builderthread
 from buildman import toolchain
-from patman import gitutil
+from patmanu import gitutil
 from u_boot_pylib import command
 from u_boot_pylib import terminal
 from u_boot_pylib.terminal import tprint
diff --git a/tools/buildman/builderthread.py b/tools/buildman/builderthread.py
index b8274addb4a..9ef63e61af7 100644
--- a/tools/buildman/builderthread.py
+++ b/tools/buildman/builderthread.py
@@ -10,7 +10,7 @@ import sys
 import threading
 
 from buildman import cfgutil
-from patman import gitutil
+from patmanu import gitutil
 from u_boot_pylib import command
 
 RETURN_CODE_RETRY = -1
diff --git a/tools/buildman/control.py b/tools/buildman/control.py
index 76e4e2709ac..2dc8c6d7f55 100644
--- a/tools/buildman/control.py
+++ b/tools/buildman/control.py
@@ -13,8 +13,8 @@ from buildman import bsettings
 from buildman import cfgutil
 from buildman import toolchain
 from buildman.builder import Builder
-from patman import gitutil
-from patman import patchstream
+from patmanu import gitutil
+from patmanu import patchstream
 from u_boot_pylib import command
 from u_boot_pylib import terminal
 from u_boot_pylib import tools
diff --git a/tools/buildman/func_test.py b/tools/buildman/func_test.py
index 3885b9f083b..10dddeef90a 100644
--- a/tools/buildman/func_test.py
+++ b/tools/buildman/func_test.py
@@ -14,7 +14,7 @@ from buildman import bsettings
 from buildman import cmdline
 from buildman import control
 from buildman import toolchain
-from patman import gitutil
+from patmanu import gitutil
 from u_boot_pylib import command
 from u_boot_pylib import terminal
 from u_boot_pylib import test_util
diff --git a/tools/buildman/main.py b/tools/buildman/main.py
index 6076ba5d63d..4a4945ca5d4 100755
--- a/tools/buildman/main.py
+++ b/tools/buildman/main.py
@@ -23,8 +23,8 @@ from buildman import builder
 from buildman import cmdline
 from buildman import control
 from buildman import toolchain
-from patman import patchstream
-from patman import gitutil
+from patmanu import patchstream
+from patmanu import gitutil
 from u_boot_pylib import terminal
 from u_boot_pylib import test_util
 
diff --git a/tools/buildman/test.py b/tools/buildman/test.py
index 9fa6445b798..196eb4cabb8 100644
--- a/tools/buildman/test.py
+++ b/tools/buildman/test.py
@@ -16,7 +16,7 @@ from buildman import builder
 from buildman import cfgutil
 from buildman import control
 from buildman import toolchain
-from patman import commit
+from patmanu import commit
 from u_boot_pylib import command
 from u_boot_pylib import terminal
 from u_boot_pylib import test_util
diff --git a/tools/patman b/tools/patman
new file mode 120000
index 00000000000..4081c0abf44
--- /dev/null
+++ b/tools/patman
@@ -0,0 +1 @@
+patmanu
\ No newline at end of file
diff --git a/tools/patman/.checkpatch.conf b/tools/patmanu/.checkpatch.conf
similarity index 100%
rename from tools/patman/.checkpatch.conf
rename to tools/patmanu/.checkpatch.conf
diff --git a/tools/patman/.gitignore b/tools/patmanu/.gitignore
similarity index 100%
rename from tools/patman/.gitignore
rename to tools/patmanu/.gitignore
diff --git a/tools/patman/README.rst b/tools/patmanu/README.rst
similarity index 100%
rename from tools/patman/README.rst
rename to tools/patmanu/README.rst
diff --git a/tools/patman/__init__.py b/tools/patmanu/__init__.py
similarity index 85%
rename from tools/patman/__init__.py
rename to tools/patmanu/__init__.py
index 08eeffdf6d2..138b1970ff5 100644
--- a/tools/patman/__init__.py
+++ b/tools/patmanu/__init__.py
@@ -3,3 +3,6 @@
 __all__ = ['checkpatch', 'commit', 'control', 'func_test', 'get_maintainer',
            'gitutil', '__main__', 'patchstream', 'project', 'series',
            'settings','setup', 'status', 'test_checkpatch', 'test_settings']
+
+def run_patman():
+    print("Hello world")
diff --git a/tools/patman/__main__.py b/tools/patmanu/__main__.py
similarity index 96%
rename from tools/patman/__main__.py
rename to tools/patmanu/__main__.py
index 30632559bb6..4dd332958dc 100755
--- a/tools/patman/__main__.py
+++ b/tools/patmanu/__main__.py
@@ -14,17 +14,17 @@ import sys
 import traceback
 
 if __name__ == "__main__":
-    # Allow 'from patman import xxx to work'
+    # Allow 'from patmanu import xxx to work'
     our_path = os.path.dirname(os.path.realpath(__file__))
     sys.path.append(os.path.join(our_path, '..'))
 
 # Our modules
-from patman import control
-from patman import func_test
-from patman import gitutil
-from patman import project
-from patman import settings
-from patman import test_checkpatch
+from patmanu import control
+from patmanu import func_test
+from patmanu import gitutil
+from patmanu import project
+from patmanu import settings
+from patmanu import test_checkpatch
 from u_boot_pylib import terminal
 from u_boot_pylib import test_util
 from u_boot_pylib import tools
@@ -171,7 +171,7 @@ elif args.cmd == 'send':
         fd.close()
 
     elif args.full_help:
-        with importlib.resources.path('patman', 'README.rst') as readme:
+        with importlib.resources.path('patmanu', 'README.rst') as readme:
             tools.print_full_help(str(readme))
     else:
         # If we are not processing tags, no need to warning about bad ones
diff --git a/tools/patman/checkpatch.py b/tools/patmanu/checkpatch.py
similarity index 99%
rename from tools/patman/checkpatch.py
rename to tools/patmanu/checkpatch.py
index c1dec323f36..55d962f536f 100644
--- a/tools/patman/checkpatch.py
+++ b/tools/patmanu/checkpatch.py
@@ -7,7 +7,7 @@ import os
 import re
 import sys
 
-from patman import gitutil
+from patmanu import gitutil
 from u_boot_pylib import command
 from u_boot_pylib import terminal
 
diff --git a/tools/patman/commit.py b/tools/patmanu/commit.py
similarity index 100%
rename from tools/patman/commit.py
rename to tools/patmanu/commit.py
diff --git a/tools/patman/control.py b/tools/patmanu/control.py
similarity index 98%
rename from tools/patman/control.py
rename to tools/patmanu/control.py
index d1bcea0c9a7..b1e23870d9d 100644
--- a/tools/patman/control.py
+++ b/tools/patmanu/control.py
@@ -11,9 +11,9 @@ the features of patman.
 import os
 import sys
 
-from patman import checkpatch
-from patman import gitutil
-from patman import patchstream
+from patmanu import checkpatch
+from patmanu import gitutil
+from patmanu import patchstream
 from u_boot_pylib import terminal
 
 def setup():
@@ -235,6 +235,6 @@ def patchwork_status(branch, count, start, end, dest_branch, force,
 
     # Import this here to avoid failing on other commands if the dependencies
     # are not present
-    from patman import status
+    from patmanu import status
     status.check_patchwork_status(series, found[0], branch, dest_branch, force,
                                   show_comments, url)
diff --git a/tools/patman/func_test.py b/tools/patmanu/func_test.py
similarity index 99%
rename from tools/patman/func_test.py
rename to tools/patmanu/func_test.py
index 8c2dfbe4528..238fd5b6100 100644
--- a/tools/patman/func_test.py
+++ b/tools/patmanu/func_test.py
@@ -16,19 +16,19 @@ import tempfile
 import unittest
 
 
-from patman.commit import Commit
-from patman import control
-from patman import gitutil
-from patman import patchstream
-from patman.patchstream import PatchStream
-from patman.series import Series
-from patman import settings
+from patmanu.commit import Commit
+from patmanu import control
+from patmanu import gitutil
+from patmanu import patchstream
+from patmanu.patchstream import PatchStream
+from patmanu.series import Series
+from patmanu import settings
 from u_boot_pylib import terminal
 from u_boot_pylib import tools
 from u_boot_pylib.test_util import capture_sys_output
 
 import pygit2
-from patman import status
+from patmanu import status
 
 PATMAN_DIR = pathlib.Path(__file__).parent
 TEST_DATA_DIR = PATMAN_DIR / 'test/'
diff --git a/tools/patman/get_maintainer.py b/tools/patmanu/get_maintainer.py
similarity index 98%
rename from tools/patman/get_maintainer.py
rename to tools/patmanu/get_maintainer.py
index 8df3d124bac..87581d72d84 100644
--- a/tools/patman/get_maintainer.py
+++ b/tools/patmanu/get_maintainer.py
@@ -7,7 +7,7 @@ import os
 import shlex
 import shutil
 
-from patman import gitutil
+from patmanu import gitutil
 from u_boot_pylib import command
 
 
diff --git a/tools/patman/gitutil.py b/tools/patmanu/gitutil.py
similarity index 99%
rename from tools/patman/gitutil.py
rename to tools/patmanu/gitutil.py
index 6700057359f..0afc5574a14 100644
--- a/tools/patman/gitutil.py
+++ b/tools/patmanu/gitutil.py
@@ -5,7 +5,7 @@
 import os
 import sys
 
-from patman import settings
+from patmanu import settings
 from u_boot_pylib import command
 from u_boot_pylib import terminal
 
@@ -621,7 +621,7 @@ def get_top_level():
     This test makes sure that we are running tests in the right subdir
 
     >>> os.path.realpath(os.path.dirname(__file__)) == \
-            os.path.join(get_top_level(), 'tools', 'patman')
+            os.path.join(get_top_level(), 'tools', 'patmanu')
     True
     """
     return command.output_one_line('git', 'rev-parse', '--show-toplevel')
diff --git a/tools/patman/patchstream.py b/tools/patmanu/patchstream.py
similarity index 99%
rename from tools/patman/patchstream.py
rename to tools/patmanu/patchstream.py
index f91669a9404..71587aafaf3 100644
--- a/tools/patman/patchstream.py
+++ b/tools/patmanu/patchstream.py
@@ -14,9 +14,9 @@ import queue
 import shutil
 import tempfile
 
-from patman import commit
-from patman import gitutil
-from patman.series import Series
+from patmanu import commit
+from patmanu import gitutil
+from patmanu.series import Series
 from u_boot_pylib import command
 
 # Tags that we detect and remove
diff --git a/tools/patman/patman b/tools/patmanu/patman
similarity index 100%
rename from tools/patman/patman
rename to tools/patmanu/patman
diff --git a/tools/patman/patman.rst b/tools/patmanu/patman.rst
similarity index 100%
rename from tools/patman/patman.rst
rename to tools/patmanu/patman.rst
diff --git a/tools/patman/project.py b/tools/patmanu/project.py
similarity index 95%
rename from tools/patman/project.py
rename to tools/patmanu/project.py
index 4459042b5d4..3e77a3bb385 100644
--- a/tools/patman/project.py
+++ b/tools/patmanu/project.py
@@ -4,7 +4,7 @@
 
 import os.path
 
-from patman import gitutil
+from patmanu import gitutil
 
 def detect_project():
     """Autodetect the name of the current project.
diff --git a/tools/patman/pytest.ini b/tools/patmanu/pytest.ini
similarity index 100%
rename from tools/patman/pytest.ini
rename to tools/patmanu/pytest.ini
diff --git a/tools/patman/series.py b/tools/patmanu/series.py
similarity index 99%
rename from tools/patman/series.py
rename to tools/patmanu/series.py
index 88417acb434..f2d415609d2 100644
--- a/tools/patman/series.py
+++ b/tools/patmanu/series.py
@@ -8,9 +8,9 @@ import collections
 import itertools
 import os
 
-from patman import get_maintainer
-from patman import gitutil
-from patman import settings
+from patmanu import get_maintainer
+from patmanu import gitutil
+from patmanu import settings
 from u_boot_pylib import terminal
 from u_boot_pylib import tools
 
diff --git a/tools/patman/settings.py b/tools/patmanu/settings.py
similarity index 99%
rename from tools/patman/settings.py
rename to tools/patmanu/settings.py
index 636983e32da..21552da1387 100644
--- a/tools/patman/settings.py
+++ b/tools/patmanu/settings.py
@@ -12,12 +12,12 @@ import argparse
 import os
 import re
 
-from patman import gitutil
+from patmanu import gitutil
 
 """Default settings per-project.
 
 These are used by _ProjectConfigParser.  Settings names should match
-the "dest" of the option parser from patman.py.
+the "dest" of the option parser from patmanu.py.
 """
 _default_settings = {
     "u-boot": {},
diff --git a/tools/patman/setup.py b/tools/patmanu/setup.py
similarity index 100%
rename from tools/patman/setup.py
rename to tools/patmanu/setup.py
diff --git a/tools/patman/status.py b/tools/patmanu/status.py
similarity index 99%
rename from tools/patman/status.py
rename to tools/patmanu/status.py
index 5fb436e08ff..f4343ecb939 100644
--- a/tools/patman/status.py
+++ b/tools/patmanu/status.py
@@ -16,8 +16,8 @@ import re
 import pygit2
 import requests
 
-from patman import patchstream
-from patman.patchstream import PatchStream
+from patmanu import patchstream
+from patmanu.patchstream import PatchStream
 from u_boot_pylib import terminal
 from u_boot_pylib import tout
 
diff --git a/tools/patman/test/0000-cover-letter.patch b/tools/patmanu/test/0000-cover-letter.patch
similarity index 100%
rename from tools/patman/test/0000-cover-letter.patch
rename to tools/patmanu/test/0000-cover-letter.patch
diff --git a/tools/patman/test/0001-pci-Correct-cast-for-sandbox.patch b/tools/patmanu/test/0001-pci-Correct-cast-for-sandbox.patch
similarity index 100%
rename from tools/patman/test/0001-pci-Correct-cast-for-sandbox.patch
rename to tools/patmanu/test/0001-pci-Correct-cast-for-sandbox.patch
diff --git a/tools/patman/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch b/tools/patmanu/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch
similarity index 100%
rename from tools/patman/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch
rename to tools/patmanu/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch
diff --git a/tools/patman/test/test01.txt b/tools/patmanu/test/test01.txt
similarity index 100%
rename from tools/patman/test/test01.txt
rename to tools/patmanu/test/test01.txt
diff --git a/tools/patman/test_checkpatch.py b/tools/patmanu/test_checkpatch.py
similarity index 99%
rename from tools/patman/test_checkpatch.py
rename to tools/patmanu/test_checkpatch.py
index a8bb364e42b..da5e7853ace 100644
--- a/tools/patman/test_checkpatch.py
+++ b/tools/patmanu/test_checkpatch.py
@@ -10,11 +10,11 @@ import os
 import tempfile
 import unittest
 
-from patman import checkpatch
-from patman import gitutil
-from patman import patchstream
-from patman import series
-from patman import commit
+from patmanu import checkpatch
+from patmanu import gitutil
+from patmanu import patchstream
+from patmanu import series
+from patmanu import commit
 
 
 class Line:
diff --git a/tools/patman/test_settings.py b/tools/patmanu/test_settings.py
similarity index 98%
rename from tools/patman/test_settings.py
rename to tools/patmanu/test_settings.py
index 06b7cbc3ab6..67efe6d2860 100644
--- a/tools/patman/test_settings.py
+++ b/tools/patmanu/test_settings.py
@@ -9,7 +9,7 @@ import os
 import sys
 import tempfile
 
-from patman import settings
+from patmanu import settings
 from u_boot_pylib import tools
 
 
-- 
2.39.2.637.g21b0678d19-goog


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 08/15] patman: Add support for building a patmanu PyPi package
  2023-02-19 14:51 [PATCH 00/15] tools: Support uploading tools to PyPi for use with pip Simon Glass
                   ` (6 preceding siblings ...)
  2023-02-19 14:51 ` [PATCH 07/15] patman: Rename directory to patmanu Simon Glass
@ 2023-02-19 14:51 ` Simon Glass
  2023-02-19 14:51 ` [PATCH 09/15] buildman: Add support for building a buildman " Simon Glass
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2023-02-19 14:51 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Heinrich Schuchardt, Alper Nebi Yasak, Neha Malcom Francis,
	Stefan Herbrechtsmeier, Philippe Reynes, Peng Fan, Simon Glass,
	Marek Behún, Pali Rohár, Quentin Schulz

Create the necessary files to build this new package.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 Makefile                     |  1 +
 tools/patmanu/pyproject.toml | 29 +++++++++++++++++++++++++++++
 2 files changed, 30 insertions(+)
 create mode 100644 tools/patmanu/pyproject.toml

diff --git a/Makefile b/Makefile
index 9f008dea0ec..afa6a7eb127 100644
--- a/Makefile
+++ b/Makefile
@@ -2282,6 +2282,7 @@ pip pip_test pip_release: _pip
 
 _pip:
 	scripts/make_pip.sh u_boot_pylib ${PIP_ARGS}
+	scripts/make_pip.sh patmanu ${PIP_ARGS}
 
 help:
 	@echo  'Cleaning targets:'
diff --git a/tools/patmanu/pyproject.toml b/tools/patmanu/pyproject.toml
new file mode 100644
index 00000000000..5e9b47b1b4c
--- /dev/null
+++ b/tools/patmanu/pyproject.toml
@@ -0,0 +1,29 @@
+[build-system]
+requires = ["setuptools>=61.0"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "patmanu"
+version = "0.0.1"
+authors = [
+  { name="Simon Glass", email="sjg@chromium.org" },
+]
+dependencies = ["u_boot_pylib"]
+description = "Patman patch manager"
+readme = "README.rst"
+requires-python = ">=3.7"
+classifiers = [
+    "Programming Language :: Python :: 3",
+    "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)",
+    "Operating System :: OS Independent",
+]
+
+[project.urls]
+"Homepage" = "https://u-boot.readthedocs.io/en/latest/develop/patman.html"
+"Bug Tracker" = "https://source.denx.de/groups/u-boot/-/issues"
+
+[project.scripts]
+patman = "patmanu.__main__:run_patman"
+
+[tool.setuptools.package-data]
+patmanu = ["*.rst"]
-- 
2.39.2.637.g21b0678d19-goog


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 09/15] buildman: Add support for building a buildman PyPi package
  2023-02-19 14:51 [PATCH 00/15] tools: Support uploading tools to PyPi for use with pip Simon Glass
                   ` (7 preceding siblings ...)
  2023-02-19 14:51 ` [PATCH 08/15] patman: Add support for building a patmanu PyPi package Simon Glass
@ 2023-02-19 14:51 ` Simon Glass
  2023-02-19 14:51 ` [PATCH 10/15] dtoc: Add support for building a dtoc " Simon Glass
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2023-02-19 14:51 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Heinrich Schuchardt, Alper Nebi Yasak, Neha Malcom Francis,
	Stefan Herbrechtsmeier, Philippe Reynes, Peng Fan, Simon Glass,
	Marek Behún, Pali Rohár, Quentin Schulz

Create the necessary files to build this new package.

It is not actually clear whether this is useful, since buildman has no
purpose outside U-Boot. It is included for completeness, since adding
this later would be more trouble.

Move the main program into a function so that it can easily be called by
the PyPi-created script.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 Makefile                      |  1 +
 tools/buildman/main.py        | 27 ++++++++++++++++-----------
 tools/buildman/pyproject.toml | 29 +++++++++++++++++++++++++++++
 3 files changed, 46 insertions(+), 11 deletions(-)
 create mode 100644 tools/buildman/pyproject.toml

diff --git a/Makefile b/Makefile
index afa6a7eb127..9f9d55e77ee 100644
--- a/Makefile
+++ b/Makefile
@@ -2283,6 +2283,7 @@ pip pip_test pip_release: _pip
 _pip:
 	scripts/make_pip.sh u_boot_pylib ${PIP_ARGS}
 	scripts/make_pip.sh patmanu ${PIP_ARGS}
+	scripts/make_pip.sh buildman ${PIP_ARGS}
 
 help:
 	@echo  'Cleaning targets:'
diff --git a/tools/buildman/main.py b/tools/buildman/main.py
index 4a4945ca5d4..249e02d2998 100755
--- a/tools/buildman/main.py
+++ b/tools/buildman/main.py
@@ -46,17 +46,22 @@ def RunTests(skip_net_tests, verboose, args):
 
     return (0 if result.wasSuccessful() else 1)
 
-options, args = cmdline.ParseArgs()
+def run_buildman():
+    options, args = cmdline.ParseArgs()
 
-if not options.debug:
-    sys.tracebacklimit = 0
+    if not options.debug:
+        sys.tracebacklimit = 0
 
-# Run our meagre tests
-if options.test:
-    RunTests(options.skip_net_tests, options.verbose, args)
+    # Run our meagre tests
+    if options.test:
+        RunTests(options.skip_net_tests, options.verbose, args)
 
-# Build selected commits for selected boards
-else:
-    bsettings.Setup(options.config_file)
-    ret_code = control.DoBuildman(options, args)
-    sys.exit(ret_code)
+    # Build selected commits for selected boards
+    else:
+        bsettings.Setup(options.config_file)
+        ret_code = control.DoBuildman(options, args)
+        sys.exit(ret_code)
+
+
+if __name__ == "__main__":
+    run_buildman()
diff --git a/tools/buildman/pyproject.toml b/tools/buildman/pyproject.toml
new file mode 100644
index 00000000000..df06b2b2917
--- /dev/null
+++ b/tools/buildman/pyproject.toml
@@ -0,0 +1,29 @@
+[build-system]
+requires = ["setuptools>=61.0"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "buildman"
+version = "0.0.1"
+authors = [
+  { name="Simon Glass", email="sjg@chromium.org" },
+]
+dependencies = ["u_boot_pylib", "patmanu"]
+description = "Buildman build tool for U-Boot"
+readme = "README.rst"
+requires-python = ">=3.7"
+classifiers = [
+    "Programming Language :: Python :: 3",
+    "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)",
+    "Operating System :: OS Independent",
+]
+
+[project.urls]
+"Homepage" = "https://u-boot.readthedocs.io/en/latest/build/buildman.html"
+"Bug Tracker" = "https://source.denx.de/groups/u-boot/-/issues"
+
+[project.scripts]
+buildman = "buildman.main:run_buildman"
+
+[tool.setuptools.package-data]
+buildman = ["*.rst"]
-- 
2.39.2.637.g21b0678d19-goog


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 10/15] dtoc: Add support for building a dtoc PyPi package
  2023-02-19 14:51 [PATCH 00/15] tools: Support uploading tools to PyPi for use with pip Simon Glass
                   ` (8 preceding siblings ...)
  2023-02-19 14:51 ` [PATCH 09/15] buildman: Add support for building a buildman " Simon Glass
@ 2023-02-19 14:51 ` Simon Glass
  2023-02-19 14:51 ` [PATCH 11/15] binman: Rename directory to binmanu Simon Glass
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2023-02-19 14:51 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Heinrich Schuchardt, Alper Nebi Yasak, Neha Malcom Francis,
	Stefan Herbrechtsmeier, Philippe Reynes, Peng Fan, Simon Glass,
	Marek Behún, Pali Rohár, Quentin Schulz

Create the necessary files to build this new package.

This is needed for binman.

Move the main program into a function so that it can easily be called by
the PyPi-created script.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 Makefile                  |  1 +
 tools/dtoc/README.rst     | 15 +++++++
 tools/dtoc/main.py        | 95 ++++++++++++++++++++-------------------
 tools/dtoc/pyproject.toml | 26 +++++++++++
 4 files changed, 92 insertions(+), 45 deletions(-)
 create mode 100644 tools/dtoc/README.rst
 create mode 100644 tools/dtoc/pyproject.toml

diff --git a/Makefile b/Makefile
index 9f9d55e77ee..86c85c70999 100644
--- a/Makefile
+++ b/Makefile
@@ -2284,6 +2284,7 @@ _pip:
 	scripts/make_pip.sh u_boot_pylib ${PIP_ARGS}
 	scripts/make_pip.sh patmanu ${PIP_ARGS}
 	scripts/make_pip.sh buildman ${PIP_ARGS}
+	scripts/make_pip.sh dtoc ${PIP_ARGS}
 
 help:
 	@echo  'Cleaning targets:'
diff --git a/tools/dtoc/README.rst b/tools/dtoc/README.rst
new file mode 100644
index 00000000000..92b39759ed1
--- /dev/null
+++ b/tools/dtoc/README.rst
@@ -0,0 +1,15 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+Devicetree-to-C generator
+=========================
+
+This is a Python program and associated utilities, which supports converting
+devicetree files into C code. It generates header files containing struct
+definitions, as well as C files containing the data. It does not require any
+modification of the devicetree files.
+
+Some high-level libraries are provided for working with devicetree. These may
+be useful in other projects.
+
+This package also includes some U-Boot-specific features, such as creating
+`struct udevice` and `struct uclass` entries for devicetree nodes.
diff --git a/tools/dtoc/main.py b/tools/dtoc/main.py
index fc9207d1b63..317002f48cd 100755
--- a/tools/dtoc/main.py
+++ b/tools/dtoc/main.py
@@ -61,7 +61,7 @@ def run_tests(processes, args):
     return (0 if result.wasSuccessful() else 1)
 
 
-def RunTestCoverage():
+def RunTestCoverage(args):
     """Run the tests and check that we get 100% coverage"""
     sys.argv = [sys.argv[0]]
     test_util.run_test_coverage('tools/dtoc/dtoc', '/main.py',
@@ -69,47 +69,52 @@ def RunTestCoverage():
             args.build_dir)
 
 
-if __name__ != '__main__':
-    sys.exit(1)
-
-epilog = '''Generate C code from devicetree files. See of-plat.rst for details'''
-
-parser = ArgumentParser(epilog=epilog)
-parser.add_argument('-B', '--build-dir', type=str, default='b',
-        help='Directory containing the build output')
-parser.add_argument('-c', '--c-output-dir', action='store',
-                  help='Select output directory for C files')
-parser.add_argument('-C', '--h-output-dir', action='store',
-                  help='Select output directory for H files (defaults to --c-output-di)')
-parser.add_argument('-d', '--dtb-file', action='store',
-                  help='Specify the .dtb input file')
-parser.add_argument('-i', '--instantiate', action='store_true', default=False,
-                  help='Instantiate devices to avoid needing device_bind()')
-parser.add_argument('--include-disabled', action='store_true',
-                  help='Include disabled nodes')
-parser.add_argument('-o', '--output', action='store',
-                  help='Select output filename')
-parser.add_argument('-p', '--phase', type=str,
-                  help='set phase of U-Boot this invocation is for (spl/tpl)')
-parser.add_argument('-P', '--processes', type=int,
-                  help='set number of processes to use for running tests')
-parser.add_argument('-t', '--test', action='store_true', dest='test',
-                  default=False, help='run tests')
-parser.add_argument('-T', '--test-coverage', action='store_true',
-                default=False, help='run tests and check for 100%% coverage')
-parser.add_argument('files', nargs='*')
-args = parser.parse_args()
-
-# Run our meagre tests
-if args.test:
-    ret_code = run_tests(args.processes, args)
-    sys.exit(ret_code)
-
-elif args.test_coverage:
-    RunTestCoverage()
-
-else:
-    dtb_platdata.run_steps(args.files, args.dtb_file, args.include_disabled,
-                           args.output,
-                           [args.c_output_dir, args.h_output_dir],
-                           args.phase, instantiate=args.instantiate)
+def run_dtoc():
+    epilog = 'Generate C code from devicetree files. See of-plat.rst for details'
+
+    parser = ArgumentParser(epilog=epilog)
+    parser.add_argument('-B', '--build-dir', type=str, default='b',
+            help='Directory containing the build output')
+    parser.add_argument('-c', '--c-output-dir', action='store',
+                      help='Select output directory for C files')
+    parser.add_argument(
+        '-C', '--h-output-dir', action='store',
+        help='Select output directory for H files (defaults to --c-output-di)')
+    parser.add_argument('-d', '--dtb-file', action='store',
+                      help='Specify the .dtb input file')
+    parser.add_argument(
+        '-i', '--instantiate', action='store_true', default=False,
+        help='Instantiate devices to avoid needing device_bind()')
+    parser.add_argument('--include-disabled', action='store_true',
+                      help='Include disabled nodes')
+    parser.add_argument('-o', '--output', action='store',
+                      help='Select output filename')
+    parser.add_argument(
+        '-p', '--phase', type=str,
+        help='set phase of U-Boot this invocation is for (spl/tpl)')
+    parser.add_argument('-P', '--processes', type=int,
+                      help='set number of processes to use for running tests')
+    parser.add_argument('-t', '--test', action='store_true', dest='test',
+                      default=False, help='run tests')
+    parser.add_argument(
+        '-T', '--test-coverage', action='store_true',
+        default=False, help='run tests and check for 100%% coverage')
+    parser.add_argument('files', nargs='*')
+    args = parser.parse_args()
+
+    # Run our meagre tests
+    if args.test:
+        ret_code = run_tests(args.processes, args)
+        sys.exit(ret_code)
+
+    elif args.test_coverage:
+        RunTestCoverage(args)
+
+    else:
+        dtb_platdata.run_steps(args.files, args.dtb_file, args.include_disabled,
+                               args.output,
+                               [args.c_output_dir, args.h_output_dir],
+                               args.phase, instantiate=args.instantiate)
+
+if __name__ == '__main__':
+    run_dtoc()
diff --git a/tools/dtoc/pyproject.toml b/tools/dtoc/pyproject.toml
new file mode 100644
index 00000000000..d127d07702d
--- /dev/null
+++ b/tools/dtoc/pyproject.toml
@@ -0,0 +1,26 @@
+[build-system]
+requires = ["setuptools>=61.0"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "dtoc"
+version = "0.0.1"
+authors = [
+  { name="Simon Glass", email="sjg@chromium.org" },
+]
+dependencies = ["u_boot_pylib"]
+description = "Devicetree-to-C generator"
+readme = "README.rst"
+requires-python = ">=3.7"
+classifiers = [
+    "Programming Language :: Python :: 3",
+    "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)",
+    "Operating System :: OS Independent",
+]
+
+[project.urls]
+"Homepage" = "https://u-boot.readthedocs.io/en/latest/develop/driver-model/of-plat.html"
+"Bug Tracker" = "https://source.denx.de/groups/u-boot/-/issues"
+
+[project.scripts]
+dtoc = "dtoc.main:run_dtoc"
-- 
2.39.2.637.g21b0678d19-goog


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 11/15] binman: Rename directory to binmanu
  2023-02-19 14:51 [PATCH 00/15] tools: Support uploading tools to PyPi for use with pip Simon Glass
                   ` (9 preceding siblings ...)
  2023-02-19 14:51 ` [PATCH 10/15] dtoc: Add support for building a dtoc " Simon Glass
@ 2023-02-19 14:51 ` Simon Glass
  2023-02-19 14:51 ` [PATCH 12/15] binman: Add support for building a binmanu PyPi package Simon Glass
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2023-02-19 14:51 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Heinrich Schuchardt, Alper Nebi Yasak, Neha Malcom Francis,
	Stefan Herbrechtsmeier, Philippe Reynes, Peng Fan, Simon Glass,
	Jan Kiszka, Jonas Karlman, Quentin Schulz, Roger Quadros,
	Samuel Holland

The name 'binman' is already taken in PyPi so use 'binmanu' as the name
of the package. Rename the source directory accordingly.

Add a symlink to avoid any major disruption for people used to invoking
binman from within the source tree.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 scripts/event_dump.py                         |   2 +-
 tools/binman                                  |   1 +
 tools/{binman => binmanu}/.gitignore          |   0
 tools/{binman => binmanu}/README.rst          |   0
 tools/{binman => binmanu}/__init__.py         |   0
 tools/{binman => binmanu}/binman              |   0
 tools/{binman => binmanu}/binman.rst          |   0
 tools/{binman => binmanu}/bintool.py          |   4 +--
 tools/{binman => binmanu}/bintool_test.py     |   6 ++--
 tools/{binman => binmanu}/bintools.rst        |   0
 tools/{binman => binmanu}/btool/_testing.py   |   2 +-
 tools/{binman => binmanu}/btool/btool_gzip.py |   2 +-
 tools/{binman => binmanu}/btool/bzip2.py      |   2 +-
 tools/{binman => binmanu}/btool/cbfstool.py   |   2 +-
 tools/{binman => binmanu}/btool/fiptool.py    |   2 +-
 tools/{binman => binmanu}/btool/futility.py   |   2 +-
 tools/{binman => binmanu}/btool/ifwitool.py   |   2 +-
 tools/{binman => binmanu}/btool/lz4.py        |   2 +-
 tools/{binman => binmanu}/btool/lzma_alone.py |   2 +-
 tools/{binman => binmanu}/btool/lzop.py       |   2 +-
 tools/{binman => binmanu}/btool/mkimage.py    |   2 +-
 tools/{binman => binmanu}/btool/xz.py         |   2 +-
 tools/{binman => binmanu}/btool/zstd.py       |   2 +-
 tools/{binman => binmanu}/cbfs_util.py        |   4 +--
 tools/{binman => binmanu}/cbfs_util_test.py   |   8 ++---
 tools/{binman => binmanu}/cmdline.py          |   2 +-
 tools/{binman => binmanu}/control.py          |  16 ++++-----
 tools/{binman => binmanu}/elf.py              |   2 +-
 tools/{binman => binmanu}/elf_test.py         |   2 +-
 tools/{binman => binmanu}/entries.rst         |   0
 tools/{binman => binmanu}/entry.py            |   8 ++---
 tools/{binman => binmanu}/entry_test.py       |   8 ++---
 tools/{binman => binmanu}/etype/_testing.py   |   2 +-
 tools/{binman => binmanu}/etype/atf_bl31.py   |   2 +-
 tools/{binman => binmanu}/etype/atf_fip.py    |   8 ++---
 tools/{binman => binmanu}/etype/blob.py       |   4 +--
 tools/{binman => binmanu}/etype/blob_dtb.py   |   6 ++--
 tools/{binman => binmanu}/etype/blob_ext.py   |   2 +-
 .../etype/blob_ext_list.py                    |   2 +-
 .../etype/blob_named_by_arg.py                |   4 +--
 tools/{binman => binmanu}/etype/blob_phase.py |   4 +--
 tools/{binman => binmanu}/etype/cbfs.py       |   8 ++---
 tools/{binman => binmanu}/etype/collection.py |   2 +-
 tools/{binman => binmanu}/etype/cros_ec_rw.py |   2 +-
 tools/{binman => binmanu}/etype/fdtmap.py     |   4 +--
 tools/{binman => binmanu}/etype/files.py      |   4 +--
 tools/{binman => binmanu}/etype/fill.py       |   2 +-
 tools/{binman => binmanu}/etype/fit.py        |   6 ++--
 tools/{binman => binmanu}/etype/fmap.py       |   4 +--
 tools/{binman => binmanu}/etype/gbb.py        |   2 +-
 .../{binman => binmanu}/etype/image_header.py |   2 +-
 tools/{binman => binmanu}/etype/intel_cmc.py  |   2 +-
 .../etype/intel_descriptor.py                 |   4 +--
 tools/{binman => binmanu}/etype/intel_fit.py  |   2 +-
 .../etype/intel_fit_ptr.py                    |   2 +-
 tools/{binman => binmanu}/etype/intel_fsp.py  |   2 +-
 .../{binman => binmanu}/etype/intel_fsp_m.py  |   2 +-
 .../{binman => binmanu}/etype/intel_fsp_s.py  |   2 +-
 .../{binman => binmanu}/etype/intel_fsp_t.py  |   2 +-
 tools/{binman => binmanu}/etype/intel_ifwi.py |   4 +--
 tools/{binman => binmanu}/etype/intel_me.py   |   2 +-
 tools/{binman => binmanu}/etype/intel_mrc.py  |   2 +-
 .../etype/intel_refcode.py                    |   2 +-
 tools/{binman => binmanu}/etype/intel_vbt.py  |   2 +-
 tools/{binman => binmanu}/etype/intel_vga.py  |   2 +-
 tools/{binman => binmanu}/etype/mkimage.py    |   2 +-
 tools/{binman => binmanu}/etype/null.py       |   2 +-
 tools/{binman => binmanu}/etype/opensbi.py    |   2 +-
 .../etype/powerpc_mpc85xx_bootpg_resetvec.py  |   2 +-
 tools/{binman => binmanu}/etype/pre_load.py   |   6 ++--
 tools/{binman => binmanu}/etype/scp.py        |   2 +-
 tools/{binman => binmanu}/etype/section.py    |   4 +--
 tools/{binman => binmanu}/etype/tee_os.py     |   4 +--
 tools/{binman => binmanu}/etype/text.py       |   2 +-
 tools/{binman => binmanu}/etype/u_boot.py     |   4 +--
 tools/{binman => binmanu}/etype/u_boot_dtb.py |   4 +--
 .../etype/u_boot_dtb_with_ucode.py            |   6 ++--
 tools/{binman => binmanu}/etype/u_boot_elf.py |   4 +--
 tools/{binman => binmanu}/etype/u_boot_env.py |   2 +-
 .../etype/u_boot_expanded.py                  |   2 +-
 tools/{binman => binmanu}/etype/u_boot_img.py |   4 +--
 .../{binman => binmanu}/etype/u_boot_nodtb.py |   4 +--
 tools/{binman => binmanu}/etype/u_boot_spl.py |   4 +--
 .../etype/u_boot_spl_bss_pad.py               |   6 ++--
 .../etype/u_boot_spl_dtb.py                   |   4 +--
 .../etype/u_boot_spl_elf.py                   |   4 +--
 .../etype/u_boot_spl_expanded.py              |   4 +--
 .../etype/u_boot_spl_nodtb.py                 |   4 +--
 .../etype/u_boot_spl_with_ucode_ptr.py        |   2 +-
 tools/{binman => binmanu}/etype/u_boot_tpl.py |   4 +--
 .../etype/u_boot_tpl_bss_pad.py               |   6 ++--
 .../etype/u_boot_tpl_dtb.py                   |   4 +--
 .../etype/u_boot_tpl_dtb_with_ucode.py        |   2 +-
 .../etype/u_boot_tpl_elf.py                   |   4 +--
 .../etype/u_boot_tpl_expanded.py              |   4 +--
 .../etype/u_boot_tpl_nodtb.py                 |   4 +--
 .../etype/u_boot_tpl_with_ucode_ptr.py        |   6 ++--
 .../{binman => binmanu}/etype/u_boot_ucode.py |   4 +--
 tools/{binman => binmanu}/etype/u_boot_vpl.py |   4 +--
 .../etype/u_boot_vpl_bss_pad.py               |   6 ++--
 .../etype/u_boot_vpl_dtb.py                   |   4 +--
 .../etype/u_boot_vpl_elf.py                   |   4 +--
 .../etype/u_boot_vpl_expanded.py              |   4 +--
 .../etype/u_boot_vpl_nodtb.py                 |   4 +--
 .../etype/u_boot_with_ucode_ptr.py            |   6 ++--
 tools/{binman => binmanu}/etype/vblock.py     |   4 +--
 .../{binman => binmanu}/etype/x86_reset16.py  |   4 +--
 .../etype/x86_reset16_spl.py                  |   4 +--
 .../etype/x86_reset16_tpl.py                  |   4 +--
 .../{binman => binmanu}/etype/x86_start16.py  |   4 +--
 .../etype/x86_start16_spl.py                  |   4 +--
 .../etype/x86_start16_tpl.py                  |   4 +--
 tools/{binman => binmanu}/fdt_test.py         |   0
 tools/{binman => binmanu}/fip_util.py         |   0
 tools/{binman => binmanu}/fip_util_test.py    |   4 +--
 tools/{binman => binmanu}/fmap_util.py        |   0
 tools/{binman => binmanu}/ftest.py            |  32 +++++++++---------
 tools/{binman => binmanu}/image.py            |   8 ++---
 tools/{binman => binmanu}/image_test.py       |   2 +-
 tools/{binman => binmanu}/index.rst           |   0
 tools/{binman => binmanu}/main.py             |  30 ++++++++--------
 tools/{binman => binmanu}/missing-blob-help   |   0
 tools/{binman => binmanu}/setup.py            |   0
 tools/{binman => binmanu}/state.py            |   0
 .../{binman => binmanu}/test/001_invalid.dts  |   0
 .../test/002_missing_node.dts                 |   0
 tools/{binman => binmanu}/test/003_empty.dts  |   0
 .../test/004_invalid_entry.dts                |   0
 tools/{binman => binmanu}/test/005_simple.dts |   0
 .../test/006_dual_image.dts                   |   0
 .../test/007_bad_align.dts                    |   0
 tools/{binman => binmanu}/test/008_pack.dts   |   0
 .../test/009_pack_extra.dts                   |   0
 .../test/010_pack_align_power2.dts            |   0
 .../test/011_pack_align_size_power2.dts       |   0
 .../test/012_pack_inv_align.dts               |   0
 .../test/013_pack_inv_size_align.dts          |   0
 .../test/014_pack_overlap.dts                 |   0
 .../test/015_pack_overflow.dts                |   0
 .../test/016_pack_image_overflow.dts          |   0
 .../test/017_pack_image_size.dts              |   0
 .../test/018_pack_image_align.dts             |   0
 .../test/019_pack_inv_image_align.dts         |   0
 .../test/020_pack_inv_image_align_power2.dts  |   0
 .../test/021_image_pad.dts                    |   0
 .../test/022_image_name.dts                   |   0
 tools/{binman => binmanu}/test/023_blob.dts   |   0
 tools/{binman => binmanu}/test/024_sorted.dts |   0
 .../test/025_pack_zero_size.dts               |   0
 .../test/026_pack_u_boot_dtb.dts              |   0
 .../test/027_pack_4gb_no_size.dts             |   0
 .../test/028_pack_4gb_outside.dts             |   0
 .../{binman => binmanu}/test/029_x86_rom.dts  |   0
 .../test/030_x86_rom_me_no_desc.dts           |   0
 .../test/031_x86_rom_me.dts                   |   0
 .../test/032_intel_vga.dts                    |   0
 .../test/033_x86_start16.dts                  |   0
 .../test/034_x86_ucode.dts                    |   0
 .../test/035_x86_single_ucode.dts             |   0
 .../test/036_u_boot_img.dts                   |   0
 .../test/037_x86_no_ucode.dts                 |   0
 .../test/038_x86_ucode_missing_node.dts       |   0
 .../test/039_x86_ucode_missing_node2.dts      |   0
 .../test/040_x86_ucode_not_in_image.dts       |   0
 .../test/041_unknown_pos_size.dts             |   0
 .../test/042_intel_fsp.dts                    |   0
 .../test/043_intel_cmc.dts                    |   0
 .../test/044_x86_optional_ucode.dts           |   0
 .../test/045_prop_test.dts                    |   0
 .../test/046_intel_vbt.dts                    |   0
 .../test/047_spl_bss_pad.dts                  |   0
 .../test/048_x86_start16_spl.dts              |   0
 .../test/049_x86_ucode_spl.dts                |   0
 .../test/050_intel_mrc.dts                    |   0
 .../test/051_u_boot_spl_dtb.dts               |   0
 .../test/052_u_boot_spl_nodtb.dts             |   0
 .../{binman => binmanu}/test/053_symbols.dts  |   0
 .../test/054_unit_address.dts                 |   0
 .../{binman => binmanu}/test/055_sections.dts |   0
 .../test/056_name_prefix.dts                  |   0
 .../test/057_unknown_contents.dts             |   0
 .../test/058_x86_ucode_spl_needs_retry.dts    |   0
 .../test/059_change_size.dts                  |   0
 .../test/060_fdt_update.dts                   |   0
 .../test/061_fdt_update_bad.dts               |   0
 .../test/062_entry_args.dts                   |   0
 .../test/063_entry_args_missing.dts           |   0
 .../test/064_entry_args_required.dts          |   0
 .../test/065_entry_args_unknown_datatype.dts  |   0
 tools/{binman => binmanu}/test/066_text.dts   |   0
 tools/{binman => binmanu}/test/067_fmap.dts   |   0
 .../test/068_blob_named_by_arg.dts            |   0
 tools/{binman => binmanu}/test/069_fill.dts   |   0
 .../test/070_fill_no_size.dts                 |   0
 tools/{binman => binmanu}/test/071_gbb.dts    |   0
 .../test/072_gbb_too_small.dts                |   0
 .../test/073_gbb_no_size.dts                  |   0
 tools/{binman => binmanu}/test/074_vblock.dts |   0
 .../test/075_vblock_no_content.dts            |   0
 .../test/076_vblock_bad_phandle.dts           |   0
 .../test/077_vblock_bad_entry.dts             |   0
 .../test/078_u_boot_tpl.dts                   |   0
 .../{binman => binmanu}/test/079_uses_pos.dts |   0
 .../test/080_fill_empty.dts                   |   0
 .../test/081_x86_start16_tpl.dts              |   0
 .../test/082_fdt_update_all.dts               |   0
 .../{binman => binmanu}/test/083_compress.dts |   0
 tools/{binman => binmanu}/test/084_files.dts  |   0
 .../test/085_files_compress.dts               |   0
 .../test/086_files_none.dts                   |   0
 .../test/087_files_no_pattern.dts             |   0
 .../test/088_extend_size.dts                  |   0
 .../test/089_extend_size_bad.dts              |   0
 tools/{binman => binmanu}/test/090_hash.dts   |   0
 .../test/091_hash_no_algo.dts                 |   0
 .../test/092_hash_bad_algo.dts                |   0
 .../test/093_x86_tpl_ucode.dts                |   0
 .../{binman => binmanu}/test/094_fmap_x86.dts |   0
 .../test/095_fmap_x86_section.dts             |   0
 tools/{binman => binmanu}/test/096_elf.dts    |   0
 .../test/097_elf_strip.dts                    |   0
 .../098_4gb_and_skip_at_start_together.dts    |   0
 .../test/099_hash_section.dts                 |   0
 .../test/100_intel_refcode.dts                |   0
 .../test/101_sections_offset.dts              |   0
 .../{binman => binmanu}/test/102_cbfs_raw.dts |   0
 .../test/103_cbfs_raw_ppc.dts                 |   0
 .../test/104_cbfs_stage.dts                   |   0
 .../test/105_cbfs_raw_compress.dts            |   0
 .../test/106_cbfs_bad_arch.dts                |   0
 .../test/107_cbfs_no_size.dts                 |   0
 .../test/108_cbfs_no_contents.dts             |   0
 .../test/109_cbfs_bad_compress.dts            |   0
 .../test/110_cbfs_name.dts                    |   0
 .../test/111_x86_rom_ifwi.dts                 |   0
 .../test/112_x86_rom_ifwi_nodesc.dts          |   0
 .../test/113_x86_rom_ifwi_nodata.dts          |   0
 .../test/114_cbfs_offset.dts                  |   0
 tools/{binman => binmanu}/test/115_fdtmap.dts |   0
 .../test/116_fdtmap_hdr.dts                   |   0
 .../test/117_fdtmap_hdr_start.dts             |   0
 .../test/118_fdtmap_hdr_pos.dts               |   0
 .../test/119_fdtmap_hdr_missing.dts           |   0
 .../test/120_hdr_no_location.dts              |   0
 .../test/121_entry_extend.dts                 |   0
 .../test/122_entry_extend_twice.dts           |   0
 .../test/123_entry_extend_section.dts         |   0
 .../test/124_compress_dtb.dts                 |   0
 .../test/125_cbfs_update.dts                  |   0
 .../test/126_cbfs_bad_type.dts                |   0
 tools/{binman => binmanu}/test/127_list.dts   |   0
 .../test/128_decode_image.dts                 |   0
 .../test/129_decode_image_nohdr.dts           |   0
 .../test/130_list_fdtmap.dts                  |   0
 .../test/131_pack_align_section.dts           |   0
 .../{binman => binmanu}/test/132_replace.dts  |   0
 .../test/133_replace_multi.dts                |   0
 .../test/134_fdt_update_all_repack.dts        |   0
 .../test/135_fdtmap_hdr_middle.dts            |   0
 .../test/136_fdtmap_hdr_startbad.dts          |   0
 .../test/137_fdtmap_hdr_endbad.dts            |   0
 .../test/138_fdtmap_hdr_nosize.dts            |   0
 .../test/139_replace_repack.dts               |   0
 .../test/140_entry_shrink.dts                 |   0
 .../test/141_descriptor_offset.dts            |   0
 .../test/142_replace_cbfs.dts                 |   0
 .../test/143_replace_all.dts                  |   0
 .../test/144_x86_reset16.dts                  |   0
 .../test/145_x86_reset16_spl.dts              |   0
 .../test/146_x86_reset16_tpl.dts              |   0
 .../test/147_intel_fit.dts                    |   0
 .../test/148_intel_fit_missing.dts            |   0
 .../test/149_symbols_tpl.dts                  |   0
 .../150_powerpc_mpc85xx_bootpg_resetvec.dts   |   0
 .../test/151_x86_rom_ifwi_section.dts         |   0
 .../test/152_intel_fsp_m.dts                  |   0
 .../test/153_intel_fsp_s.dts                  |   0
 .../test/154_intel_fsp_t.dts                  |   0
 .../test/155_symbols_tpl_x86.dts              |   0
 .../{binman => binmanu}/test/156_mkimage.dts  |   0
 .../{binman => binmanu}/test/157_blob_ext.dts |   0
 .../test/158_blob_ext_missing.dts             |   0
 .../test/159_blob_ext_missing_sect.dts        |   0
 .../test/160_pack_overlap_zero.dts            |   0
 tools/{binman => binmanu}/test/161_fit.dts    |   0
 .../test/162_fit_external.dts                 |   0
 .../test/163_x86_rom_me_empty.dts             |   0
 .../test/164_x86_rom_me_missing.dts           |   0
 .../165_section_ignore_hash_signature.dts     |   0
 .../test/166_pad_in_sections.dts              |   0
 .../test/167_fit_image_subentry_alignment.dts |   0
 .../test/168_fit_missing_blob.dts             |   0
 .../{binman => binmanu}/test/169_atf_bl31.dts |   0
 .../{binman => binmanu}/test/170_fit_fdt.dts  |   0
 .../test/171_fit_fdt_missing_prop.dts         |   0
 tools/{binman => binmanu}/test/172_scp.dts    |   0
 .../test/173_missing_blob.dts                 |   0
 tools/{binman => binmanu}/test/174_env.dts    |   0
 .../test/175_env_no_size.dts                  |   0
 .../test/176_env_too_small.dts                |   0
 .../test/177_skip_at_start.dts                |   0
 .../test/178_skip_at_start_pad.dts            |   0
 .../test/179_skip_at_start_section_pad.dts    |   0
 .../test/180_section_pad.dts                  |   0
 .../test/181_section_align.dts                |   0
 .../test/182_compress_image.dts               |   0
 .../test/183_compress_image_less.dts          |   0
 .../test/184_compress_section_size.dts        |   0
 .../test/185_compress_section.dts             |   0
 .../test/186_compress_extra.dts               |   0
 .../test/187_symbols_sub.dts                  |   0
 .../test/188_image_entryarg.dts               |   0
 .../test/189_vblock_content.dts               |   0
 .../test/190_files_align.dts                  |   0
 .../test/191_read_image_skip.dts              |   0
 .../test/192_u_boot_tpl_nodtb.dts             |   0
 .../test/193_tpl_bss_pad.dts                  |   0
 .../{binman => binmanu}/test/194_fdt_incl.dts |   0
 .../test/195_fdt_incl_tpl.dts                 |   0
 .../test/196_symbols_nodtb.dts                |   0
 .../test/197_symbols_expand.dts               |   0
 .../test/198_collection.dts                   |   0
 .../test/199_collection_section.dts           |   0
 .../test/200_align_default.dts                |   0
 .../{binman => binmanu}/test/201_opensbi.dts  |   0
 .../test/202_section_timeout.dts              |   0
 tools/{binman => binmanu}/test/203_fip.dts    |   0
 .../test/204_fip_other.dts                    |   0
 .../test/205_fip_no_type.dts                  |   0
 .../{binman => binmanu}/test/206_fip_uuid.dts |   0
 tools/{binman => binmanu}/test/207_fip_ls.dts |   0
 .../test/208_fip_replace.dts                  |   0
 .../test/209_fip_missing.dts                  |   0
 .../{binman => binmanu}/test/210_fip_size.dts |   0
 .../test/211_fip_bad_align.dts                |   0
 .../test/212_fip_collection.dts               |   0
 .../test/213_fdtmap_alt_format.dts            |   0
 .../test/214_no_alt_format.dts                |   0
 .../test/215_blob_ext_list.dts                |   0
 .../test/216_blob_ext_list_missing.dts        |   0
 .../test/217_fake_blob.dts                    |   0
 .../test/218_blob_ext_list_fake.dts           |   0
 .../test/219_fit_gennode.dts                  |   0
 .../test/220_fit_subentry_bintool.dts         |   0
 .../test/221_fit_subentry_hash.dts            |   0
 tools/{binman => binmanu}/test/222_tee_os.dts |   0
 .../test/223_fit_fdt_oper.dts                 |   0
 .../test/224_fit_bad_oper.dts                 |   0
 .../test/225_expand_size_bad.dts              |   0
 .../test/226_fit_split_elf.dts                |   0
 .../test/227_fit_bad_dir.dts                  |   0
 .../test/228_fit_bad_dir_config.dts           |   0
 .../test/229_mkimage_missing.dts              |   0
 tools/{binman => binmanu}/test/230_dev.key    |   0
 .../{binman => binmanu}/test/230_pre_load.dts |   2 +-
 .../test/231_pre_load_pkcs.dts                |   2 +-
 .../test/232_pre_load_pss.dts                 |   2 +-
 .../test/233_pre_load_invalid_padding.dts     |   2 +-
 .../test/234_pre_load_invalid_sha.dts         |   2 +-
 .../test/235_pre_load_invalid_algo.dts        |   2 +-
 .../test/236_pre_load_invalid_key.dts         |   2 +-
 .../test/237_unique_names.dts                 |   0
 .../test/238_unique_names_multi.dts           |   0
 .../test/239_replace_with_bintool.dts         |   0
 .../test/240_fit_extract_replace.dts          |   0
 .../test/241_replace_section_simple.dts       |   0
 .../test/242_mkimage_name.dts                 |   0
 .../test/243_mkimage_image.dts                |   0
 .../test/244_mkimage_image_no_content.dts     |   0
 .../test/245_mkimage_image_bad.dts            |   0
 .../test/246_collection_other.dts             |   0
 .../test/247_mkimage_coll.dts                 |   0
 .../test/248_compress_dtb_prepend_invalid.dts |   0
 .../test/249_compress_dtb_prepend_length.dts  |   0
 .../test/250_compress_dtb_invalid.dts         |   0
 .../test/251_compress_dtb_zstd.dts            |   0
 .../test/252_mkimage_mult_data.dts            |   0
 .../test/253_mkimage_mult_no_content.dts      |   0
 .../test/254_mkimage_filename.dts             |   0
 .../test/255_u_boot_vpl.dts                   |   0
 .../test/256_u_boot_vpl_nodtb.dts             |   0
 .../test/257_fdt_incl_vpl.dts                 |   0
 .../test/258_vpl_bss_pad.dts                  |   0
 .../{binman => binmanu}/test/259_symlink.dts  |   0
 .../test/260_symbols_elf.dts                  |   0
 .../test/261_section_fname.dts                |   0
 tools/{binman => binmanu}/test/262_absent.dts |   0
 .../test/263_tee_os_opt.dts                   |   0
 .../test/264_tee_os_opt_fit.dts               |   0
 .../test/265_tee_os_opt_fit_bad.dts           |   0
 .../test/266_blob_ext_opt.dts                 |   0
 .../test/267_section_inner.dts                |   0
 tools/{binman => binmanu}/test/268_null.dts   |   0
 .../{binman => binmanu}/test/269_overlap.dts  |   0
 .../test/270_overlap_null.dts                 |   0
 .../test/271_overlap_bad.dts                  |   0
 .../test/272_overlap_no_size.dts              |   0
 .../test/273_blob_symbol.dts                  |   0
 .../test/274_offset_from_elf.dts              |   0
 .../test/275_fit_align.dts                    |   0
 .../test/276_fit_firmware_loadables.dts       |   0
 tools/{binman => binmanu}/test/Makefile       |   0
 tools/{binman => binmanu}/test/blob_syms.c    |   0
 tools/{binman => binmanu}/test/blob_syms.lds  |   0
 tools/{binman => binmanu}/test/bss_data.c     |   0
 tools/{binman => binmanu}/test/bss_data.lds   |   0
 tools/{binman => binmanu}/test/descriptor.bin | Bin
 tools/{binman => binmanu}/test/elf_sections.c |   0
 .../{binman => binmanu}/test/elf_sections.lds |   0
 tools/{binman => binmanu}/test/embed_data.c   |   0
 tools/{binman => binmanu}/test/embed_data.lds |   0
 tools/{binman => binmanu}/test/files/1.dat    |   0
 tools/{binman => binmanu}/test/files/2.dat    |   0
 .../test/files/ignored_dir.dat/ignore         |   0
 .../test/files/not-this-one                   |   0
 .../{binman => binmanu}/test/fitimage.bin.gz  | Bin
 .../test/generated/autoconf.h                 |   0
 tools/{binman => binmanu}/test/ifwi.bin.gz    | Bin
 .../test/u_boot_binman_embed.c                |   0
 .../test/u_boot_binman_embed.lds              |   0
 .../test/u_boot_binman_embed_sm.c             |   0
 .../test/u_boot_binman_syms.c                 |   0
 .../test/u_boot_binman_syms.lds               |   0
 .../test/u_boot_binman_syms_bad.c             |   0
 .../test/u_boot_binman_syms_bad.lds           |   0
 .../test/u_boot_binman_syms_size.c            |   0
 .../test/u_boot_binman_syms_x86.c             |   0
 .../test/u_boot_binman_syms_x86.lds           |   0
 .../test/u_boot_no_ucode_ptr.c                |   0
 .../test/u_boot_ucode_ptr.c                   |   0
 .../test/u_boot_ucode_ptr.lds                 |   0
 tools/u_boot_pylib/tools.py                   |   2 +-
 432 files changed, 233 insertions(+), 232 deletions(-)
 create mode 120000 tools/binman
 rename tools/{binman => binmanu}/.gitignore (100%)
 rename tools/{binman => binmanu}/README.rst (100%)
 rename tools/{binman => binmanu}/__init__.py (100%)
 rename tools/{binman => binmanu}/binman (100%)
 rename tools/{binman => binmanu}/binman.rst (100%)
 rename tools/{binman => binmanu}/bintool.py (99%)
 rename tools/{binman => binmanu}/bintool_test.py (99%)
 rename tools/{binman => binmanu}/bintools.rst (100%)
 rename tools/{binman => binmanu}/btool/_testing.py (97%)
 rename tools/{binman => binmanu}/btool/btool_gzip.py (96%)
 rename tools/{binman => binmanu}/btool/bzip2.py (96%)
 rename tools/{binman => binmanu}/btool/cbfstool.py (99%)
 rename tools/{binman => binmanu}/btool/fiptool.py (99%)
 rename tools/{binman => binmanu}/btool/futility.py (99%)
 rename tools/{binman => binmanu}/btool/ifwitool.py (99%)
 rename tools/{binman => binmanu}/btool/lz4.py (99%)
 rename tools/{binman => binmanu}/btool/lzma_alone.py (99%)
 rename tools/{binman => binmanu}/btool/lzop.py (96%)
 rename tools/{binman => binmanu}/btool/mkimage.py (98%)
 rename tools/{binman => binmanu}/btool/xz.py (96%)
 rename tools/{binman => binmanu}/btool/zstd.py (96%)
 rename tools/{binman => binmanu}/cbfs_util.py (99%)
 rename tools/{binman => binmanu}/cbfs_util_test.py (99%)
 rename tools/{binman => binmanu}/cmdline.py (99%)
 rename tools/{binman => binmanu}/control.py (99%)
 rename tools/{binman => binmanu}/elf.py (99%)
 rename tools/{binman => binmanu}/elf_test.py (99%)
 rename tools/{binman => binmanu}/entries.rst (100%)
 rename tools/{binman => binmanu}/entry.py (99%)
 rename tools/{binman => binmanu}/entry_test.py (97%)
 rename tools/{binman => binmanu}/etype/_testing.py (99%)
 rename tools/{binman => binmanu}/etype/atf_bl31.py (92%)
 rename tools/{binman => binmanu}/etype/atf_fip.py (98%)
 rename tools/{binman => binmanu}/etype/blob.py (98%)
 rename tools/{binman => binmanu}/etype/blob_dtb.py (96%)
 rename tools/{binman => binmanu}/etype/blob_ext.py (96%)
 rename tools/{binman => binmanu}/etype/blob_ext_list.py (97%)
 rename tools/{binman => binmanu}/etype/blob_named_by_arg.py (94%)
 rename tools/{binman => binmanu}/etype/blob_phase.py (95%)
 rename tools/{binman => binmanu}/etype/cbfs.py (98%)
 rename tools/{binman => binmanu}/etype/collection.py (98%)
 rename tools/{binman => binmanu}/etype/cros_ec_rw.py (91%)
 rename tools/{binman => binmanu}/etype/fdtmap.py (98%)
 rename tools/{binman => binmanu}/etype/files.py (96%)
 rename tools/{binman => binmanu}/etype/fill.py (97%)
 rename tools/{binman => binmanu}/etype/fit.py (99%)
 rename tools/{binman => binmanu}/etype/fmap.py (98%)
 rename tools/{binman => binmanu}/etype/gbb.py (98%)
 rename tools/{binman => binmanu}/etype/image_header.py (99%)
 rename tools/{binman => binmanu}/etype/intel_cmc.py (92%)
 rename tools/{binman => binmanu}/etype/intel_descriptor.py (97%)
 rename tools/{binman => binmanu}/etype/intel_fit.py (94%)
 rename tools/{binman => binmanu}/etype/intel_fit_ptr.py (96%)
 rename tools/{binman => binmanu}/etype/intel_fsp.py (94%)
 rename tools/{binman => binmanu}/etype/intel_fsp_m.py (94%)
 rename tools/{binman => binmanu}/etype/intel_fsp_s.py (94%)
 rename tools/{binman => binmanu}/etype/intel_fsp_t.py (94%)
 rename tools/{binman => binmanu}/etype/intel_ifwi.py (98%)
 rename tools/{binman => binmanu}/etype/intel_me.py (95%)
 rename tools/{binman => binmanu}/etype/intel_mrc.py (93%)
 rename tools/{binman => binmanu}/etype/intel_refcode.py (93%)
 rename tools/{binman => binmanu}/etype/intel_vbt.py (92%)
 rename tools/{binman => binmanu}/etype/intel_vga.py (93%)
 rename tools/{binman => binmanu}/etype/mkimage.py (99%)
 rename tools/{binman => binmanu}/etype/null.py (95%)
 rename tools/{binman => binmanu}/etype/opensbi.py (91%)
 rename tools/{binman => binmanu}/etype/powerpc_mpc85xx_bootpg_resetvec.py (94%)
 rename tools/{binman => binmanu}/etype/pre_load.py (97%)
 rename tools/{binman => binmanu}/etype/scp.py (89%)
 rename tools/{binman => binmanu}/etype/section.py (99%)
 rename tools/{binman => binmanu}/etype/tee_os.py (97%)
 rename tools/{binman => binmanu}/etype/text.py (98%)
 rename tools/{binman => binmanu}/etype/u_boot.py (92%)
 rename tools/{binman => binmanu}/etype/u_boot_dtb.py (91%)
 rename tools/{binman => binmanu}/etype/u_boot_dtb_with_ucode.py (96%)
 rename tools/{binman => binmanu}/etype/u_boot_elf.py (93%)
 rename tools/{binman => binmanu}/etype/u_boot_env.py (96%)
 rename tools/{binman => binmanu}/etype/u_boot_expanded.py (93%)
 rename tools/{binman => binmanu}/etype/u_boot_img.py (90%)
 rename tools/{binman => binmanu}/etype/u_boot_nodtb.py (92%)
 rename tools/{binman => binmanu}/etype/u_boot_spl.py (95%)
 rename tools/{binman => binmanu}/etype/u_boot_spl_bss_pad.py (94%)
 rename tools/{binman => binmanu}/etype/u_boot_spl_dtb.py (90%)
 rename tools/{binman => binmanu}/etype/u_boot_spl_elf.py (90%)
 rename tools/{binman => binmanu}/etype/u_boot_spl_expanded.py (95%)
 rename tools/{binman => binmanu}/etype/u_boot_spl_nodtb.py (94%)
 rename tools/{binman => binmanu}/etype/u_boot_spl_with_ucode_ptr.py (90%)
 rename tools/{binman => binmanu}/etype/u_boot_tpl.py (95%)
 rename tools/{binman => binmanu}/etype/u_boot_tpl_bss_pad.py (94%)
 rename tools/{binman => binmanu}/etype/u_boot_tpl_dtb.py (90%)
 rename tools/{binman => binmanu}/etype/u_boot_tpl_dtb_with_ucode.py (90%)
 rename tools/{binman => binmanu}/etype/u_boot_tpl_elf.py (90%)
 rename tools/{binman => binmanu}/etype/u_boot_tpl_expanded.py (95%)
 rename tools/{binman => binmanu}/etype/u_boot_tpl_nodtb.py (94%)
 rename tools/{binman => binmanu}/etype/u_boot_tpl_with_ucode_ptr.py (82%)
 rename tools/{binman => binmanu}/etype/u_boot_ucode.py (98%)
 rename tools/{binman => binmanu}/etype/u_boot_vpl.py (94%)
 rename tools/{binman => binmanu}/etype/u_boot_vpl_bss_pad.py (94%)
 rename tools/{binman => binmanu}/etype/u_boot_vpl_dtb.py (90%)
 rename tools/{binman => binmanu}/etype/u_boot_vpl_elf.py (90%)
 rename tools/{binman => binmanu}/etype/u_boot_vpl_expanded.py (95%)
 rename tools/{binman => binmanu}/etype/u_boot_vpl_nodtb.py (94%)
 rename tools/{binman => binmanu}/etype/u_boot_with_ucode_ptr.py (97%)
 rename tools/{binman => binmanu}/etype/vblock.py (97%)
 rename tools/{binman => binmanu}/etype/x86_reset16.py (92%)
 rename tools/{binman => binmanu}/etype/x86_reset16_spl.py (92%)
 rename tools/{binman => binmanu}/etype/x86_reset16_tpl.py (92%)
 rename tools/{binman => binmanu}/etype/x86_start16.py (93%)
 rename tools/{binman => binmanu}/etype/x86_start16_spl.py (93%)
 rename tools/{binman => binmanu}/etype/x86_start16_tpl.py (93%)
 rename tools/{binman => binmanu}/fdt_test.py (100%)
 rename tools/{binman => binmanu}/fip_util.py (100%)
 rename tools/{binman => binmanu}/fip_util_test.py (99%)
 rename tools/{binman => binmanu}/fmap_util.py (100%)
 rename tools/{binman => binmanu}/ftest.py (99%)
 rename tools/{binman => binmanu}/image.py (99%)
 rename tools/{binman => binmanu}/image_test.py (98%)
 rename tools/{binman => binmanu}/index.rst (100%)
 rename tools/{binman => binmanu}/main.py (88%)
 rename tools/{binman => binmanu}/missing-blob-help (100%)
 rename tools/{binman => binmanu}/setup.py (100%)
 rename tools/{binman => binmanu}/state.py (100%)
 rename tools/{binman => binmanu}/test/001_invalid.dts (100%)
 rename tools/{binman => binmanu}/test/002_missing_node.dts (100%)
 rename tools/{binman => binmanu}/test/003_empty.dts (100%)
 rename tools/{binman => binmanu}/test/004_invalid_entry.dts (100%)
 rename tools/{binman => binmanu}/test/005_simple.dts (100%)
 rename tools/{binman => binmanu}/test/006_dual_image.dts (100%)
 rename tools/{binman => binmanu}/test/007_bad_align.dts (100%)
 rename tools/{binman => binmanu}/test/008_pack.dts (100%)
 rename tools/{binman => binmanu}/test/009_pack_extra.dts (100%)
 rename tools/{binman => binmanu}/test/010_pack_align_power2.dts (100%)
 rename tools/{binman => binmanu}/test/011_pack_align_size_power2.dts (100%)
 rename tools/{binman => binmanu}/test/012_pack_inv_align.dts (100%)
 rename tools/{binman => binmanu}/test/013_pack_inv_size_align.dts (100%)
 rename tools/{binman => binmanu}/test/014_pack_overlap.dts (100%)
 rename tools/{binman => binmanu}/test/015_pack_overflow.dts (100%)
 rename tools/{binman => binmanu}/test/016_pack_image_overflow.dts (100%)
 rename tools/{binman => binmanu}/test/017_pack_image_size.dts (100%)
 rename tools/{binman => binmanu}/test/018_pack_image_align.dts (100%)
 rename tools/{binman => binmanu}/test/019_pack_inv_image_align.dts (100%)
 rename tools/{binman => binmanu}/test/020_pack_inv_image_align_power2.dts (100%)
 rename tools/{binman => binmanu}/test/021_image_pad.dts (100%)
 rename tools/{binman => binmanu}/test/022_image_name.dts (100%)
 rename tools/{binman => binmanu}/test/023_blob.dts (100%)
 rename tools/{binman => binmanu}/test/024_sorted.dts (100%)
 rename tools/{binman => binmanu}/test/025_pack_zero_size.dts (100%)
 rename tools/{binman => binmanu}/test/026_pack_u_boot_dtb.dts (100%)
 rename tools/{binman => binmanu}/test/027_pack_4gb_no_size.dts (100%)
 rename tools/{binman => binmanu}/test/028_pack_4gb_outside.dts (100%)
 rename tools/{binman => binmanu}/test/029_x86_rom.dts (100%)
 rename tools/{binman => binmanu}/test/030_x86_rom_me_no_desc.dts (100%)
 rename tools/{binman => binmanu}/test/031_x86_rom_me.dts (100%)
 rename tools/{binman => binmanu}/test/032_intel_vga.dts (100%)
 rename tools/{binman => binmanu}/test/033_x86_start16.dts (100%)
 rename tools/{binman => binmanu}/test/034_x86_ucode.dts (100%)
 rename tools/{binman => binmanu}/test/035_x86_single_ucode.dts (100%)
 rename tools/{binman => binmanu}/test/036_u_boot_img.dts (100%)
 rename tools/{binman => binmanu}/test/037_x86_no_ucode.dts (100%)
 rename tools/{binman => binmanu}/test/038_x86_ucode_missing_node.dts (100%)
 rename tools/{binman => binmanu}/test/039_x86_ucode_missing_node2.dts (100%)
 rename tools/{binman => binmanu}/test/040_x86_ucode_not_in_image.dts (100%)
 rename tools/{binman => binmanu}/test/041_unknown_pos_size.dts (100%)
 rename tools/{binman => binmanu}/test/042_intel_fsp.dts (100%)
 rename tools/{binman => binmanu}/test/043_intel_cmc.dts (100%)
 rename tools/{binman => binmanu}/test/044_x86_optional_ucode.dts (100%)
 rename tools/{binman => binmanu}/test/045_prop_test.dts (100%)
 rename tools/{binman => binmanu}/test/046_intel_vbt.dts (100%)
 rename tools/{binman => binmanu}/test/047_spl_bss_pad.dts (100%)
 rename tools/{binman => binmanu}/test/048_x86_start16_spl.dts (100%)
 rename tools/{binman => binmanu}/test/049_x86_ucode_spl.dts (100%)
 rename tools/{binman => binmanu}/test/050_intel_mrc.dts (100%)
 rename tools/{binman => binmanu}/test/051_u_boot_spl_dtb.dts (100%)
 rename tools/{binman => binmanu}/test/052_u_boot_spl_nodtb.dts (100%)
 rename tools/{binman => binmanu}/test/053_symbols.dts (100%)
 rename tools/{binman => binmanu}/test/054_unit_address.dts (100%)
 rename tools/{binman => binmanu}/test/055_sections.dts (100%)
 rename tools/{binman => binmanu}/test/056_name_prefix.dts (100%)
 rename tools/{binman => binmanu}/test/057_unknown_contents.dts (100%)
 rename tools/{binman => binmanu}/test/058_x86_ucode_spl_needs_retry.dts (100%)
 rename tools/{binman => binmanu}/test/059_change_size.dts (100%)
 rename tools/{binman => binmanu}/test/060_fdt_update.dts (100%)
 rename tools/{binman => binmanu}/test/061_fdt_update_bad.dts (100%)
 rename tools/{binman => binmanu}/test/062_entry_args.dts (100%)
 rename tools/{binman => binmanu}/test/063_entry_args_missing.dts (100%)
 rename tools/{binman => binmanu}/test/064_entry_args_required.dts (100%)
 rename tools/{binman => binmanu}/test/065_entry_args_unknown_datatype.dts (100%)
 rename tools/{binman => binmanu}/test/066_text.dts (100%)
 rename tools/{binman => binmanu}/test/067_fmap.dts (100%)
 rename tools/{binman => binmanu}/test/068_blob_named_by_arg.dts (100%)
 rename tools/{binman => binmanu}/test/069_fill.dts (100%)
 rename tools/{binman => binmanu}/test/070_fill_no_size.dts (100%)
 rename tools/{binman => binmanu}/test/071_gbb.dts (100%)
 rename tools/{binman => binmanu}/test/072_gbb_too_small.dts (100%)
 rename tools/{binman => binmanu}/test/073_gbb_no_size.dts (100%)
 rename tools/{binman => binmanu}/test/074_vblock.dts (100%)
 rename tools/{binman => binmanu}/test/075_vblock_no_content.dts (100%)
 rename tools/{binman => binmanu}/test/076_vblock_bad_phandle.dts (100%)
 rename tools/{binman => binmanu}/test/077_vblock_bad_entry.dts (100%)
 rename tools/{binman => binmanu}/test/078_u_boot_tpl.dts (100%)
 rename tools/{binman => binmanu}/test/079_uses_pos.dts (100%)
 rename tools/{binman => binmanu}/test/080_fill_empty.dts (100%)
 rename tools/{binman => binmanu}/test/081_x86_start16_tpl.dts (100%)
 rename tools/{binman => binmanu}/test/082_fdt_update_all.dts (100%)
 rename tools/{binman => binmanu}/test/083_compress.dts (100%)
 rename tools/{binman => binmanu}/test/084_files.dts (100%)
 rename tools/{binman => binmanu}/test/085_files_compress.dts (100%)
 rename tools/{binman => binmanu}/test/086_files_none.dts (100%)
 rename tools/{binman => binmanu}/test/087_files_no_pattern.dts (100%)
 rename tools/{binman => binmanu}/test/088_extend_size.dts (100%)
 rename tools/{binman => binmanu}/test/089_extend_size_bad.dts (100%)
 rename tools/{binman => binmanu}/test/090_hash.dts (100%)
 rename tools/{binman => binmanu}/test/091_hash_no_algo.dts (100%)
 rename tools/{binman => binmanu}/test/092_hash_bad_algo.dts (100%)
 rename tools/{binman => binmanu}/test/093_x86_tpl_ucode.dts (100%)
 rename tools/{binman => binmanu}/test/094_fmap_x86.dts (100%)
 rename tools/{binman => binmanu}/test/095_fmap_x86_section.dts (100%)
 rename tools/{binman => binmanu}/test/096_elf.dts (100%)
 rename tools/{binman => binmanu}/test/097_elf_strip.dts (100%)
 rename tools/{binman => binmanu}/test/098_4gb_and_skip_at_start_together.dts (100%)
 rename tools/{binman => binmanu}/test/099_hash_section.dts (100%)
 rename tools/{binman => binmanu}/test/100_intel_refcode.dts (100%)
 rename tools/{binman => binmanu}/test/101_sections_offset.dts (100%)
 rename tools/{binman => binmanu}/test/102_cbfs_raw.dts (100%)
 rename tools/{binman => binmanu}/test/103_cbfs_raw_ppc.dts (100%)
 rename tools/{binman => binmanu}/test/104_cbfs_stage.dts (100%)
 rename tools/{binman => binmanu}/test/105_cbfs_raw_compress.dts (100%)
 rename tools/{binman => binmanu}/test/106_cbfs_bad_arch.dts (100%)
 rename tools/{binman => binmanu}/test/107_cbfs_no_size.dts (100%)
 rename tools/{binman => binmanu}/test/108_cbfs_no_contents.dts (100%)
 rename tools/{binman => binmanu}/test/109_cbfs_bad_compress.dts (100%)
 rename tools/{binman => binmanu}/test/110_cbfs_name.dts (100%)
 rename tools/{binman => binmanu}/test/111_x86_rom_ifwi.dts (100%)
 rename tools/{binman => binmanu}/test/112_x86_rom_ifwi_nodesc.dts (100%)
 rename tools/{binman => binmanu}/test/113_x86_rom_ifwi_nodata.dts (100%)
 rename tools/{binman => binmanu}/test/114_cbfs_offset.dts (100%)
 rename tools/{binman => binmanu}/test/115_fdtmap.dts (100%)
 rename tools/{binman => binmanu}/test/116_fdtmap_hdr.dts (100%)
 rename tools/{binman => binmanu}/test/117_fdtmap_hdr_start.dts (100%)
 rename tools/{binman => binmanu}/test/118_fdtmap_hdr_pos.dts (100%)
 rename tools/{binman => binmanu}/test/119_fdtmap_hdr_missing.dts (100%)
 rename tools/{binman => binmanu}/test/120_hdr_no_location.dts (100%)
 rename tools/{binman => binmanu}/test/121_entry_extend.dts (100%)
 rename tools/{binman => binmanu}/test/122_entry_extend_twice.dts (100%)
 rename tools/{binman => binmanu}/test/123_entry_extend_section.dts (100%)
 rename tools/{binman => binmanu}/test/124_compress_dtb.dts (100%)
 rename tools/{binman => binmanu}/test/125_cbfs_update.dts (100%)
 rename tools/{binman => binmanu}/test/126_cbfs_bad_type.dts (100%)
 rename tools/{binman => binmanu}/test/127_list.dts (100%)
 rename tools/{binman => binmanu}/test/128_decode_image.dts (100%)
 rename tools/{binman => binmanu}/test/129_decode_image_nohdr.dts (100%)
 rename tools/{binman => binmanu}/test/130_list_fdtmap.dts (100%)
 rename tools/{binman => binmanu}/test/131_pack_align_section.dts (100%)
 rename tools/{binman => binmanu}/test/132_replace.dts (100%)
 rename tools/{binman => binmanu}/test/133_replace_multi.dts (100%)
 rename tools/{binman => binmanu}/test/134_fdt_update_all_repack.dts (100%)
 rename tools/{binman => binmanu}/test/135_fdtmap_hdr_middle.dts (100%)
 rename tools/{binman => binmanu}/test/136_fdtmap_hdr_startbad.dts (100%)
 rename tools/{binman => binmanu}/test/137_fdtmap_hdr_endbad.dts (100%)
 rename tools/{binman => binmanu}/test/138_fdtmap_hdr_nosize.dts (100%)
 rename tools/{binman => binmanu}/test/139_replace_repack.dts (100%)
 rename tools/{binman => binmanu}/test/140_entry_shrink.dts (100%)
 rename tools/{binman => binmanu}/test/141_descriptor_offset.dts (100%)
 rename tools/{binman => binmanu}/test/142_replace_cbfs.dts (100%)
 rename tools/{binman => binmanu}/test/143_replace_all.dts (100%)
 rename tools/{binman => binmanu}/test/144_x86_reset16.dts (100%)
 rename tools/{binman => binmanu}/test/145_x86_reset16_spl.dts (100%)
 rename tools/{binman => binmanu}/test/146_x86_reset16_tpl.dts (100%)
 rename tools/{binman => binmanu}/test/147_intel_fit.dts (100%)
 rename tools/{binman => binmanu}/test/148_intel_fit_missing.dts (100%)
 rename tools/{binman => binmanu}/test/149_symbols_tpl.dts (100%)
 rename tools/{binman => binmanu}/test/150_powerpc_mpc85xx_bootpg_resetvec.dts (100%)
 rename tools/{binman => binmanu}/test/151_x86_rom_ifwi_section.dts (100%)
 rename tools/{binman => binmanu}/test/152_intel_fsp_m.dts (100%)
 rename tools/{binman => binmanu}/test/153_intel_fsp_s.dts (100%)
 rename tools/{binman => binmanu}/test/154_intel_fsp_t.dts (100%)
 rename tools/{binman => binmanu}/test/155_symbols_tpl_x86.dts (100%)
 rename tools/{binman => binmanu}/test/156_mkimage.dts (100%)
 rename tools/{binman => binmanu}/test/157_blob_ext.dts (100%)
 rename tools/{binman => binmanu}/test/158_blob_ext_missing.dts (100%)
 rename tools/{binman => binmanu}/test/159_blob_ext_missing_sect.dts (100%)
 rename tools/{binman => binmanu}/test/160_pack_overlap_zero.dts (100%)
 rename tools/{binman => binmanu}/test/161_fit.dts (100%)
 rename tools/{binman => binmanu}/test/162_fit_external.dts (100%)
 rename tools/{binman => binmanu}/test/163_x86_rom_me_empty.dts (100%)
 rename tools/{binman => binmanu}/test/164_x86_rom_me_missing.dts (100%)
 rename tools/{binman => binmanu}/test/165_section_ignore_hash_signature.dts (100%)
 rename tools/{binman => binmanu}/test/166_pad_in_sections.dts (100%)
 rename tools/{binman => binmanu}/test/167_fit_image_subentry_alignment.dts (100%)
 rename tools/{binman => binmanu}/test/168_fit_missing_blob.dts (100%)
 rename tools/{binman => binmanu}/test/169_atf_bl31.dts (100%)
 rename tools/{binman => binmanu}/test/170_fit_fdt.dts (100%)
 rename tools/{binman => binmanu}/test/171_fit_fdt_missing_prop.dts (100%)
 rename tools/{binman => binmanu}/test/172_scp.dts (100%)
 rename tools/{binman => binmanu}/test/173_missing_blob.dts (100%)
 rename tools/{binman => binmanu}/test/174_env.dts (100%)
 rename tools/{binman => binmanu}/test/175_env_no_size.dts (100%)
 rename tools/{binman => binmanu}/test/176_env_too_small.dts (100%)
 rename tools/{binman => binmanu}/test/177_skip_at_start.dts (100%)
 rename tools/{binman => binmanu}/test/178_skip_at_start_pad.dts (100%)
 rename tools/{binman => binmanu}/test/179_skip_at_start_section_pad.dts (100%)
 rename tools/{binman => binmanu}/test/180_section_pad.dts (100%)
 rename tools/{binman => binmanu}/test/181_section_align.dts (100%)
 rename tools/{binman => binmanu}/test/182_compress_image.dts (100%)
 rename tools/{binman => binmanu}/test/183_compress_image_less.dts (100%)
 rename tools/{binman => binmanu}/test/184_compress_section_size.dts (100%)
 rename tools/{binman => binmanu}/test/185_compress_section.dts (100%)
 rename tools/{binman => binmanu}/test/186_compress_extra.dts (100%)
 rename tools/{binman => binmanu}/test/187_symbols_sub.dts (100%)
 rename tools/{binman => binmanu}/test/188_image_entryarg.dts (100%)
 rename tools/{binman => binmanu}/test/189_vblock_content.dts (100%)
 rename tools/{binman => binmanu}/test/190_files_align.dts (100%)
 rename tools/{binman => binmanu}/test/191_read_image_skip.dts (100%)
 rename tools/{binman => binmanu}/test/192_u_boot_tpl_nodtb.dts (100%)
 rename tools/{binman => binmanu}/test/193_tpl_bss_pad.dts (100%)
 rename tools/{binman => binmanu}/test/194_fdt_incl.dts (100%)
 rename tools/{binman => binmanu}/test/195_fdt_incl_tpl.dts (100%)
 rename tools/{binman => binmanu}/test/196_symbols_nodtb.dts (100%)
 rename tools/{binman => binmanu}/test/197_symbols_expand.dts (100%)
 rename tools/{binman => binmanu}/test/198_collection.dts (100%)
 rename tools/{binman => binmanu}/test/199_collection_section.dts (100%)
 rename tools/{binman => binmanu}/test/200_align_default.dts (100%)
 rename tools/{binman => binmanu}/test/201_opensbi.dts (100%)
 rename tools/{binman => binmanu}/test/202_section_timeout.dts (100%)
 rename tools/{binman => binmanu}/test/203_fip.dts (100%)
 rename tools/{binman => binmanu}/test/204_fip_other.dts (100%)
 rename tools/{binman => binmanu}/test/205_fip_no_type.dts (100%)
 rename tools/{binman => binmanu}/test/206_fip_uuid.dts (100%)
 rename tools/{binman => binmanu}/test/207_fip_ls.dts (100%)
 rename tools/{binman => binmanu}/test/208_fip_replace.dts (100%)
 rename tools/{binman => binmanu}/test/209_fip_missing.dts (100%)
 rename tools/{binman => binmanu}/test/210_fip_size.dts (100%)
 rename tools/{binman => binmanu}/test/211_fip_bad_align.dts (100%)
 rename tools/{binman => binmanu}/test/212_fip_collection.dts (100%)
 rename tools/{binman => binmanu}/test/213_fdtmap_alt_format.dts (100%)
 rename tools/{binman => binmanu}/test/214_no_alt_format.dts (100%)
 rename tools/{binman => binmanu}/test/215_blob_ext_list.dts (100%)
 rename tools/{binman => binmanu}/test/216_blob_ext_list_missing.dts (100%)
 rename tools/{binman => binmanu}/test/217_fake_blob.dts (100%)
 rename tools/{binman => binmanu}/test/218_blob_ext_list_fake.dts (100%)
 rename tools/{binman => binmanu}/test/219_fit_gennode.dts (100%)
 rename tools/{binman => binmanu}/test/220_fit_subentry_bintool.dts (100%)
 rename tools/{binman => binmanu}/test/221_fit_subentry_hash.dts (100%)
 rename tools/{binman => binmanu}/test/222_tee_os.dts (100%)
 rename tools/{binman => binmanu}/test/223_fit_fdt_oper.dts (100%)
 rename tools/{binman => binmanu}/test/224_fit_bad_oper.dts (100%)
 rename tools/{binman => binmanu}/test/225_expand_size_bad.dts (100%)
 rename tools/{binman => binmanu}/test/226_fit_split_elf.dts (100%)
 rename tools/{binman => binmanu}/test/227_fit_bad_dir.dts (100%)
 rename tools/{binman => binmanu}/test/228_fit_bad_dir_config.dts (100%)
 rename tools/{binman => binmanu}/test/229_mkimage_missing.dts (100%)
 rename tools/{binman => binmanu}/test/230_dev.key (100%)
 rename tools/{binman => binmanu}/test/230_pre_load.dts (85%)
 rename tools/{binman => binmanu}/test/231_pre_load_pkcs.dts (87%)
 rename tools/{binman => binmanu}/test/232_pre_load_pss.dts (86%)
 rename tools/{binman => binmanu}/test/233_pre_load_invalid_padding.dts (86%)
 rename tools/{binman => binmanu}/test/234_pre_load_invalid_sha.dts (86%)
 rename tools/{binman => binmanu}/test/235_pre_load_invalid_algo.dts (86%)
 rename tools/{binman => binmanu}/test/236_pre_load_invalid_key.dts (86%)
 rename tools/{binman => binmanu}/test/237_unique_names.dts (100%)
 rename tools/{binman => binmanu}/test/238_unique_names_multi.dts (100%)
 rename tools/{binman => binmanu}/test/239_replace_with_bintool.dts (100%)
 rename tools/{binman => binmanu}/test/240_fit_extract_replace.dts (100%)
 rename tools/{binman => binmanu}/test/241_replace_section_simple.dts (100%)
 rename tools/{binman => binmanu}/test/242_mkimage_name.dts (100%)
 rename tools/{binman => binmanu}/test/243_mkimage_image.dts (100%)
 rename tools/{binman => binmanu}/test/244_mkimage_image_no_content.dts (100%)
 rename tools/{binman => binmanu}/test/245_mkimage_image_bad.dts (100%)
 rename tools/{binman => binmanu}/test/246_collection_other.dts (100%)
 rename tools/{binman => binmanu}/test/247_mkimage_coll.dts (100%)
 rename tools/{binman => binmanu}/test/248_compress_dtb_prepend_invalid.dts (100%)
 rename tools/{binman => binmanu}/test/249_compress_dtb_prepend_length.dts (100%)
 rename tools/{binman => binmanu}/test/250_compress_dtb_invalid.dts (100%)
 rename tools/{binman => binmanu}/test/251_compress_dtb_zstd.dts (100%)
 rename tools/{binman => binmanu}/test/252_mkimage_mult_data.dts (100%)
 rename tools/{binman => binmanu}/test/253_mkimage_mult_no_content.dts (100%)
 rename tools/{binman => binmanu}/test/254_mkimage_filename.dts (100%)
 rename tools/{binman => binmanu}/test/255_u_boot_vpl.dts (100%)
 rename tools/{binman => binmanu}/test/256_u_boot_vpl_nodtb.dts (100%)
 rename tools/{binman => binmanu}/test/257_fdt_incl_vpl.dts (100%)
 rename tools/{binman => binmanu}/test/258_vpl_bss_pad.dts (100%)
 rename tools/{binman => binmanu}/test/259_symlink.dts (100%)
 rename tools/{binman => binmanu}/test/260_symbols_elf.dts (100%)
 rename tools/{binman => binmanu}/test/261_section_fname.dts (100%)
 rename tools/{binman => binmanu}/test/262_absent.dts (100%)
 rename tools/{binman => binmanu}/test/263_tee_os_opt.dts (100%)
 rename tools/{binman => binmanu}/test/264_tee_os_opt_fit.dts (100%)
 rename tools/{binman => binmanu}/test/265_tee_os_opt_fit_bad.dts (100%)
 rename tools/{binman => binmanu}/test/266_blob_ext_opt.dts (100%)
 rename tools/{binman => binmanu}/test/267_section_inner.dts (100%)
 rename tools/{binman => binmanu}/test/268_null.dts (100%)
 rename tools/{binman => binmanu}/test/269_overlap.dts (100%)
 rename tools/{binman => binmanu}/test/270_overlap_null.dts (100%)
 rename tools/{binman => binmanu}/test/271_overlap_bad.dts (100%)
 rename tools/{binman => binmanu}/test/272_overlap_no_size.dts (100%)
 rename tools/{binman => binmanu}/test/273_blob_symbol.dts (100%)
 rename tools/{binman => binmanu}/test/274_offset_from_elf.dts (100%)
 rename tools/{binman => binmanu}/test/275_fit_align.dts (100%)
 rename tools/{binman => binmanu}/test/276_fit_firmware_loadables.dts (100%)
 rename tools/{binman => binmanu}/test/Makefile (100%)
 rename tools/{binman => binmanu}/test/blob_syms.c (100%)
 rename tools/{binman => binmanu}/test/blob_syms.lds (100%)
 rename tools/{binman => binmanu}/test/bss_data.c (100%)
 rename tools/{binman => binmanu}/test/bss_data.lds (100%)
 rename tools/{binman => binmanu}/test/descriptor.bin (100%)
 rename tools/{binman => binmanu}/test/elf_sections.c (100%)
 rename tools/{binman => binmanu}/test/elf_sections.lds (100%)
 rename tools/{binman => binmanu}/test/embed_data.c (100%)
 rename tools/{binman => binmanu}/test/embed_data.lds (100%)
 rename tools/{binman => binmanu}/test/files/1.dat (100%)
 rename tools/{binman => binmanu}/test/files/2.dat (100%)
 rename tools/{binman => binmanu}/test/files/ignored_dir.dat/ignore (100%)
 rename tools/{binman => binmanu}/test/files/not-this-one (100%)
 rename tools/{binman => binmanu}/test/fitimage.bin.gz (100%)
 rename tools/{binman => binmanu}/test/generated/autoconf.h (100%)
 rename tools/{binman => binmanu}/test/ifwi.bin.gz (100%)
 rename tools/{binman => binmanu}/test/u_boot_binman_embed.c (100%)
 rename tools/{binman => binmanu}/test/u_boot_binman_embed.lds (100%)
 rename tools/{binman => binmanu}/test/u_boot_binman_embed_sm.c (100%)
 rename tools/{binman => binmanu}/test/u_boot_binman_syms.c (100%)
 rename tools/{binman => binmanu}/test/u_boot_binman_syms.lds (100%)
 rename tools/{binman => binmanu}/test/u_boot_binman_syms_bad.c (100%)
 rename tools/{binman => binmanu}/test/u_boot_binman_syms_bad.lds (100%)
 rename tools/{binman => binmanu}/test/u_boot_binman_syms_size.c (100%)
 rename tools/{binman => binmanu}/test/u_boot_binman_syms_x86.c (100%)
 rename tools/{binman => binmanu}/test/u_boot_binman_syms_x86.lds (100%)
 rename tools/{binman => binmanu}/test/u_boot_no_ucode_ptr.c (100%)
 rename tools/{binman => binmanu}/test/u_boot_ucode_ptr.c (100%)
 rename tools/{binman => binmanu}/test/u_boot_ucode_ptr.lds (100%)

diff --git a/scripts/event_dump.py b/scripts/event_dump.py
index 0117457526e..36786c7f1da 100755
--- a/scripts/event_dump.py
+++ b/scripts/event_dump.py
@@ -14,7 +14,7 @@ src_path = os.path.dirname(our_path)
 
 sys.path.insert(1, os.path.join(our_path, '../tools'))
 
-from binman import elf
+from binmanu import elf
 from u_boot_pylib import tools
 
 # A typical symbol looks like this:
diff --git a/tools/binman b/tools/binman
new file mode 120000
index 00000000000..fa81612af0f
--- /dev/null
+++ b/tools/binman
@@ -0,0 +1 @@
+binmanu
\ No newline at end of file
diff --git a/tools/binman/.gitignore b/tools/binmanu/.gitignore
similarity index 100%
rename from tools/binman/.gitignore
rename to tools/binmanu/.gitignore
diff --git a/tools/binman/README.rst b/tools/binmanu/README.rst
similarity index 100%
rename from tools/binman/README.rst
rename to tools/binmanu/README.rst
diff --git a/tools/binman/__init__.py b/tools/binmanu/__init__.py
similarity index 100%
rename from tools/binman/__init__.py
rename to tools/binmanu/__init__.py
diff --git a/tools/binman/binman b/tools/binmanu/binman
similarity index 100%
rename from tools/binman/binman
rename to tools/binmanu/binman
diff --git a/tools/binman/binman.rst b/tools/binmanu/binman.rst
similarity index 100%
rename from tools/binman/binman.rst
rename to tools/binmanu/binman.rst
diff --git a/tools/binman/bintool.py b/tools/binmanu/bintool.py
similarity index 99%
rename from tools/binman/bintool.py
rename to tools/binmanu/bintool.py
index 745b62b5a20..5d4fa88569f 100644
--- a/tools/binman/bintool.py
+++ b/tools/binmanu/bintool.py
@@ -80,12 +80,12 @@ class Bintool:
         # Import the module if we have not already done so
         if not module:
             try:
-                module = importlib.import_module('binman.btool.' + module_name)
+                module = importlib.import_module('binmanu.btool.' + module_name)
             except ImportError as exc:
                 try:
                     # Deal with classes which must be renamed due to conflicts
                     # with Python libraries
-                    module = importlib.import_module('binman.btool.btool_' +
+                    module = importlib.import_module('binmanu.btool.btool_' +
                                                      module_name)
                 except ImportError:
                     return module_name, exc
diff --git a/tools/binman/bintool_test.py b/tools/binmanu/bintool_test.py
similarity index 99%
rename from tools/binman/bintool_test.py
rename to tools/binmanu/bintool_test.py
index 87a6b11e676..41703fd283c 100644
--- a/tools/binman/bintool_test.py
+++ b/tools/binmanu/bintool_test.py
@@ -13,8 +13,8 @@ import unittest
 import unittest.mock
 import urllib.error
 
-from binman import bintool
-from binman.bintool import Bintool
+from binmanu import bintool
+from binmanu.bintool import Bintool
 
 from u_boot_pylib import command
 from u_boot_pylib import terminal
@@ -42,7 +42,7 @@ class TestBintool(unittest.TestCase):
         """Test that unknown bintool types are detected"""
         with self.assertRaises(ValueError) as exc:
             Bintool.create('missing')
-        self.assertIn("No module named 'binman.btool.missing'",
+        self.assertIn("No module named 'binmanu.btool.missing'",
                       str(exc.exception))
 
     def test_fresh_bintool(self):
diff --git a/tools/binman/bintools.rst b/tools/binmanu/bintools.rst
similarity index 100%
rename from tools/binman/bintools.rst
rename to tools/binmanu/bintools.rst
diff --git a/tools/binman/btool/_testing.py b/tools/binmanu/btool/_testing.py
similarity index 97%
rename from tools/binman/btool/_testing.py
rename to tools/binmanu/btool/_testing.py
index 4005e8a8a5d..5bb11f45f33 100644
--- a/tools/binman/btool/_testing.py
+++ b/tools/binmanu/btool/_testing.py
@@ -5,7 +5,7 @@
 
 This is not a real bintool, just one used for testing"""
 
-from binman import bintool
+from binmanu import bintool
 
 # pylint: disable=C0103
 class Bintool_testing(bintool.Bintool):
diff --git a/tools/binman/btool/btool_gzip.py b/tools/binmanu/btool/btool_gzip.py
similarity index 96%
rename from tools/binman/btool/btool_gzip.py
rename to tools/binmanu/btool/btool_gzip.py
index 0d75028120f..fe0b46cf638 100644
--- a/tools/binman/btool/btool_gzip.py
+++ b/tools/binmanu/btool/btool_gzip.py
@@ -11,7 +11,7 @@ Documentation is available via::
    man gzip
 """
 
-from binman import bintool
+from binmanu import bintool
 
 # pylint: disable=C0103
 class Bintoolgzip(bintool.BintoolPacker):
diff --git a/tools/binman/btool/bzip2.py b/tools/binmanu/btool/bzip2.py
similarity index 96%
rename from tools/binman/btool/bzip2.py
rename to tools/binmanu/btool/bzip2.py
index c3897d63acb..454cd1dfd51 100644
--- a/tools/binman/btool/bzip2.py
+++ b/tools/binmanu/btool/bzip2.py
@@ -11,7 +11,7 @@ Documentation is available via::
    man bzip2
 """
 
-from binman import bintool
+from binmanu import bintool
 
 # pylint: disable=C0103
 class Bintoolbzip2(bintool.BintoolPacker):
diff --git a/tools/binman/btool/cbfstool.py b/tools/binmanu/btool/cbfstool.py
similarity index 99%
rename from tools/binman/btool/cbfstool.py
rename to tools/binmanu/btool/cbfstool.py
index 29be2d8a2b5..bc8277928be 100644
--- a/tools/binman/btool/cbfstool.py
+++ b/tools/binmanu/btool/cbfstool.py
@@ -113,7 +113,7 @@ Since binman has a native implementation of CBFS (see cbfs_util.py), we don't
 actually need this tool, except for sanity checks in the tests.
 """
 
-from binman import bintool
+from binmanu import bintool
 
 class Bintoolcbfstool(bintool.Bintool):
     """Coreboot filesystem (CBFS) tool
diff --git a/tools/binman/btool/fiptool.py b/tools/binmanu/btool/fiptool.py
similarity index 99%
rename from tools/binman/btool/fiptool.py
rename to tools/binmanu/btool/fiptool.py
index c80f8275c4c..3122d2a0f3c 100644
--- a/tools/binman/btool/fiptool.py
+++ b/tools/binmanu/btool/fiptool.py
@@ -29,7 +29,7 @@ Commands supported:
 
 """
 
-from binman import bintool
+from binmanu import bintool
 
 class Bintoolfiptool(bintool.Bintool):
     """Image generation for ARM Trusted Firmware
diff --git a/tools/binman/btool/futility.py b/tools/binmanu/btool/futility.py
similarity index 99%
rename from tools/binman/btool/futility.py
rename to tools/binmanu/btool/futility.py
index 04c9aefe9b4..bbb568f8568 100644
--- a/tools/binman/btool/futility.py
+++ b/tools/binmanu/btool/futility.py
@@ -52,7 +52,7 @@ The following commands are built-in:
   version              Show the futility source revision and build date
 """
 
-from binman import bintool
+from binmanu import bintool
 
 class Bintoolfutility(bintool.Bintool):
     """Handles the 'futility' tool
diff --git a/tools/binman/btool/ifwitool.py b/tools/binmanu/btool/ifwitool.py
similarity index 99%
rename from tools/binman/btool/ifwitool.py
rename to tools/binmanu/btool/ifwitool.py
index 96778fce87f..ff4f4220709 100644
--- a/tools/binman/btool/ifwitool.py
+++ b/tools/binmanu/btool/ifwitool.py
@@ -56,7 +56,7 @@ UEP(UEP)
 UFS_RATE_B(UFS Rate B Config)
 """
 
-from binman import bintool
+from binmanu import bintool
 
 class Bintoolifwitool(bintool.Bintool):
     """Handles the 'ifwitool' tool
diff --git a/tools/binman/btool/lz4.py b/tools/binmanu/btool/lz4.py
similarity index 99%
rename from tools/binman/btool/lz4.py
rename to tools/binmanu/btool/lz4.py
index fd520d13a56..dd663101095 100644
--- a/tools/binman/btool/lz4.py
+++ b/tools/binmanu/btool/lz4.py
@@ -59,7 +59,7 @@ Benchmark arguments :
 import re
 import tempfile
 
-from binman import bintool
+from binmanu import bintool
 from u_boot_pylib import tools
 
 # pylint: disable=C0103
diff --git a/tools/binman/btool/lzma_alone.py b/tools/binmanu/btool/lzma_alone.py
similarity index 99%
rename from tools/binman/btool/lzma_alone.py
rename to tools/binmanu/btool/lzma_alone.py
index 1fda2f68c7b..bf8bfd8983f 100644
--- a/tools/binman/btool/lzma_alone.py
+++ b/tools/binmanu/btool/lzma_alone.py
@@ -36,7 +36,7 @@ Usage:  LZMA <e|d> inputFile outputFile [<switches>...]
 import re
 import tempfile
 
-from binman import bintool
+from binmanu import bintool
 from u_boot_pylib import tools
 
 # pylint: disable=C0103
diff --git a/tools/binman/btool/lzop.py b/tools/binmanu/btool/lzop.py
similarity index 96%
rename from tools/binman/btool/lzop.py
rename to tools/binmanu/btool/lzop.py
index f6903b4db75..0815077c9ff 100644
--- a/tools/binman/btool/lzop.py
+++ b/tools/binmanu/btool/lzop.py
@@ -11,7 +11,7 @@ Documentation is available via::
    man lzop
 """
 
-from binman import bintool
+from binmanu import bintool
 
 # pylint: disable=C0103
 class Bintoollzop(bintool.BintoolPacker):
diff --git a/tools/binman/btool/mkimage.py b/tools/binmanu/btool/mkimage.py
similarity index 98%
rename from tools/binman/btool/mkimage.py
rename to tools/binmanu/btool/mkimage.py
index d5b407c5547..ba30dcf86b7 100644
--- a/tools/binman/btool/mkimage.py
+++ b/tools/binmanu/btool/mkimage.py
@@ -5,7 +5,7 @@
 
 import re
 
-from binman import bintool
+from binmanu import bintool
 
 class Bintoolmkimage(bintool.Bintool):
     """Image generation for U-Boot
diff --git a/tools/binman/btool/xz.py b/tools/binmanu/btool/xz.py
similarity index 96%
rename from tools/binman/btool/xz.py
rename to tools/binmanu/btool/xz.py
index e2b413d18bd..0b91702b900 100644
--- a/tools/binman/btool/xz.py
+++ b/tools/binmanu/btool/xz.py
@@ -11,7 +11,7 @@ Documentation is available via::
    man xz
 """
 
-from binman import bintool
+from binmanu import bintool
 
 # pylint: disable=C0103
 class Bintoolxz(bintool.BintoolPacker):
diff --git a/tools/binman/btool/zstd.py b/tools/binmanu/btool/zstd.py
similarity index 96%
rename from tools/binman/btool/zstd.py
rename to tools/binmanu/btool/zstd.py
index 299bd371269..9ae6c94d47a 100644
--- a/tools/binman/btool/zstd.py
+++ b/tools/binmanu/btool/zstd.py
@@ -11,7 +11,7 @@ Documentation is available via::
    man zstd
 """
 
-from binman import bintool
+from binmanu import bintool
 
 # pylint: disable=C0103
 class Bintoolzstd(bintool.BintoolPacker):
diff --git a/tools/binman/cbfs_util.py b/tools/binmanu/cbfs_util.py
similarity index 99%
rename from tools/binman/cbfs_util.py
rename to tools/binmanu/cbfs_util.py
index fc56b40b753..83ac3161956 100644
--- a/tools/binman/cbfs_util.py
+++ b/tools/binmanu/cbfs_util.py
@@ -20,8 +20,8 @@ import io
 import struct
 import sys
 
-from binman import bintool
-from binman import elf
+from binmanu import bintool
+from binmanu import elf
 from u_boot_pylib import command
 from u_boot_pylib import tools
 
diff --git a/tools/binman/cbfs_util_test.py b/tools/binmanu/cbfs_util_test.py
similarity index 99%
rename from tools/binman/cbfs_util_test.py
rename to tools/binmanu/cbfs_util_test.py
index ee951d10cf3..86bca2654ea 100755
--- a/tools/binman/cbfs_util_test.py
+++ b/tools/binmanu/cbfs_util_test.py
@@ -16,10 +16,10 @@ import struct
 import tempfile
 import unittest
 
-from binman import bintool
-from binman import cbfs_util
-from binman.cbfs_util import CbfsWriter
-from binman import elf
+from binmanu import bintool
+from binmanu import cbfs_util
+from binmanu.cbfs_util import CbfsWriter
+from binmanu import elf
 from u_boot_pylib import test_util
 from u_boot_pylib import tools
 
diff --git a/tools/binman/cmdline.py b/tools/binmanu/cmdline.py
similarity index 99%
rename from tools/binman/cmdline.py
rename to tools/binmanu/cmdline.py
index 986d6f1a315..81c01d914ff 100644
--- a/tools/binman/cmdline.py
+++ b/tools/binmanu/cmdline.py
@@ -7,7 +7,7 @@
 
 import argparse
 from argparse import ArgumentParser
-from binman import state
+from binmanu import state
 
 def make_extract_parser(subparsers):
     """make_extract_parser: Make a subparser for the 'extract' command
diff --git a/tools/binman/control.py b/tools/binmanu/control.py
similarity index 99%
rename from tools/binman/control.py
rename to tools/binmanu/control.py
index 3e27b72f881..b7d50f8d76a 100644
--- a/tools/binman/control.py
+++ b/tools/binmanu/control.py
@@ -13,10 +13,10 @@ import re
 
 import sys
 
-from binman import bintool
-from binman import cbfs_util
-from binman import elf
-from binman import entry
+from binmanu import bintool
+from binmanu import cbfs_util
+from binmanu import elf
+from binmanu import entry
 from u_boot_pylib import command
 from u_boot_pylib import tools
 from u_boot_pylib import tout
@@ -151,7 +151,7 @@ def WriteEntryDocs(modules, test_missing=None):
             to show as missing even if it is present. Should be set to None in
             normal use.
     """
-    from binman.entry import Entry
+    from binmanu.entry import Entry
     Entry.WriteDocs(modules, test_missing)
 
 
@@ -213,7 +213,7 @@ def ReadEntry(image_fname, entry_path, decomp=True):
         data extracted from the entry
     """
     global Image
-    from binman.image import Image
+    from binmanu.image import Image
 
     image = Image.FromFile(image_fname)
     image.CollectBintools()
@@ -647,8 +647,8 @@ def Binman(args):
         return 0
 
     # Put these here so that we can import this module without libfdt
-    from binman.image import Image
-    from binman import state
+    from binmanu.image import Image
+    from binmanu import state
 
     if args.cmd in ['ls', 'extract', 'replace', 'tool']:
         try:
diff --git a/tools/binman/elf.py b/tools/binmanu/elf.py
similarity index 99%
rename from tools/binman/elf.py
rename to tools/binmanu/elf.py
index 5816284c32a..c81e4e5641a 100644
--- a/tools/binman/elf.py
+++ b/tools/binmanu/elf.py
@@ -341,7 +341,7 @@ def MakeElf(elf_fname, text, data):
         text: Text (code) to put in the file's .text section
         data: Data to put in the file's .data section
     """
-    outdir = tempfile.mkdtemp(prefix='binman.elf.')
+    outdir = tempfile.mkdtemp(prefix='binmanu.elf.')
     s_file = os.path.join(outdir, 'elf.S')
 
     # Spilt the text into two parts so that we can make the entry point two
diff --git a/tools/binman/elf_test.py b/tools/binmanu/elf_test.py
similarity index 99%
rename from tools/binman/elf_test.py
rename to tools/binmanu/elf_test.py
index c98083961b5..af8fbfd2584 100644
--- a/tools/binman/elf_test.py
+++ b/tools/binmanu/elf_test.py
@@ -11,7 +11,7 @@ import sys
 import tempfile
 import unittest
 
-from binman import elf
+from binmanu import elf
 from u_boot_pylib import command
 from u_boot_pylib import test_util
 from u_boot_pylib import tools
diff --git a/tools/binman/entries.rst b/tools/binmanu/entries.rst
similarity index 100%
rename from tools/binman/entries.rst
rename to tools/binmanu/entries.rst
diff --git a/tools/binman/entry.py b/tools/binmanu/entry.py
similarity index 99%
rename from tools/binman/entry.py
rename to tools/binmanu/entry.py
index 13224523978..05cc46287df 100644
--- a/tools/binman/entry.py
+++ b/tools/binmanu/entry.py
@@ -11,8 +11,8 @@ import pathlib
 import sys
 import time
 
-from binman import bintool
-from binman import elf
+from binmanu import bintool
+from binmanu import elf
 from dtoc import fdt_util
 from u_boot_pylib import tools
 from u_boot_pylib.tools import to_hex, to_hex_size
@@ -107,7 +107,7 @@ class Entry(object):
                  auto_write_symbols=False):
         # Put this here to allow entry-docs and help to work without libfdt
         global state
-        from binman import state
+        from binmanu import state
 
         self.section = section
         self.etype = etype
@@ -180,7 +180,7 @@ class Entry(object):
         # Import the module if we have not already done so.
         if not module:
             try:
-                module = importlib.import_module('binman.etype.' + module_name)
+                module = importlib.import_module('binmanu.etype.' + module_name)
             except ImportError as e:
                 if expanded:
                     return None
diff --git a/tools/binman/entry_test.py b/tools/binmanu/entry_test.py
similarity index 97%
rename from tools/binman/entry_test.py
rename to tools/binmanu/entry_test.py
index ac6582cf86a..15564faa39f 100644
--- a/tools/binman/entry_test.py
+++ b/tools/binmanu/entry_test.py
@@ -10,8 +10,8 @@ import os
 import sys
 import unittest
 
-from binman import entry
-from binman.etype.blob import Entry_blob
+from binmanu import entry
+from binmanu.etype.blob import Entry_blob
 from dtoc import fdt
 from dtoc import fdt_util
 from u_boot_pylib import tools
@@ -35,11 +35,11 @@ class TestEntry(unittest.TestCase):
         if entry:
             importlib.reload(entry)
         else:
-            from binman import entry
+            from binmanu import entry
 
     def testEntryContents(self):
         """Test the Entry bass class"""
-        from binman import entry
+        from binmanu import entry
         base_entry = entry.Entry(None, None, None)
         self.assertEqual(True, base_entry.ObtainContents())
 
diff --git a/tools/binman/etype/_testing.py b/tools/binmanu/etype/_testing.py
similarity index 99%
rename from tools/binman/etype/_testing.py
rename to tools/binmanu/etype/_testing.py
index e092d98ce15..1751fbc71d6 100644
--- a/tools/binman/etype/_testing.py
+++ b/tools/binmanu/etype/_testing.py
@@ -7,7 +7,7 @@
 
 from collections import OrderedDict
 
-from binman.entry import Entry, EntryArg
+from binmanu.entry import Entry, EntryArg
 from dtoc import fdt_util
 from u_boot_pylib import tools
 
diff --git a/tools/binman/etype/atf_bl31.py b/tools/binmanu/etype/atf_bl31.py
similarity index 92%
rename from tools/binman/etype/atf_bl31.py
rename to tools/binmanu/etype/atf_bl31.py
index 2041da416c9..7db63664b07 100644
--- a/tools/binman/etype/atf_bl31.py
+++ b/tools/binmanu/etype/atf_bl31.py
@@ -5,7 +5,7 @@
 # Entry-type module for ARM Trusted Firmware binary blob
 #
 
-from binman.etype.blob_named_by_arg import Entry_blob_named_by_arg
+from binmanu.etype.blob_named_by_arg import Entry_blob_named_by_arg
 
 class Entry_atf_bl31(Entry_blob_named_by_arg):
     """ARM Trusted Firmware (ATF) BL31 blob
diff --git a/tools/binman/etype/atf_fip.py b/tools/binmanu/etype/atf_fip.py
similarity index 98%
rename from tools/binman/etype/atf_fip.py
rename to tools/binmanu/etype/atf_fip.py
index d5b862040b4..73c69a7b784 100644
--- a/tools/binman/etype/atf_fip.py
+++ b/tools/binmanu/etype/atf_fip.py
@@ -7,9 +7,9 @@
 
 from collections import OrderedDict
 
-from binman.entry import Entry
-from binman.etype.section import Entry_section
-from binman.fip_util import FIP_TYPES, FipReader, FipWriter, UUID_LEN
+from binmanu.entry import Entry
+from binmanu.etype.section import Entry_section
+from binmanu.fip_util import FIP_TYPES, FipReader, FipWriter, UUID_LEN
 from dtoc import fdt_util
 from u_boot_pylib import tools
 
@@ -168,7 +168,7 @@ class Entry_atf_fip(Entry_section):
     def __init__(self, section, etype, node):
         # Put this here to allow entry-docs and help to work without libfdt
         global state
-        from binman import state
+        from binmanu import state
 
         super().__init__(section, etype, node)
         self.align_default = None
diff --git a/tools/binman/etype/blob.py b/tools/binmanu/etype/blob.py
similarity index 98%
rename from tools/binman/etype/blob.py
rename to tools/binmanu/etype/blob.py
index f9c4e33b110..ad54d48a2e1 100644
--- a/tools/binman/etype/blob.py
+++ b/tools/binmanu/etype/blob.py
@@ -5,8 +5,8 @@
 # Entry-type module for blobs, which are binary objects read from files
 #
 
-from binman.entry import Entry
-from binman import state
+from binmanu.entry import Entry
+from binmanu import state
 from dtoc import fdt_util
 from u_boot_pylib import tools
 from u_boot_pylib import tout
diff --git a/tools/binman/etype/blob_dtb.py b/tools/binmanu/etype/blob_dtb.py
similarity index 96%
rename from tools/binman/etype/blob_dtb.py
rename to tools/binmanu/etype/blob_dtb.py
index 6a3fbc47753..468c1a8128c 100644
--- a/tools/binman/etype/blob_dtb.py
+++ b/tools/binmanu/etype/blob_dtb.py
@@ -5,8 +5,8 @@
 # Entry-type module for U-Boot device tree files
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 from dtoc import fdt_util
 import struct
 
@@ -26,7 +26,7 @@ class Entry_blob_dtb(Entry_blob):
     def __init__(self, section, etype, node):
         # Put this here to allow entry-docs and help to work without libfdt
         global state
-        from binman import state
+        from binmanu import state
 
         super().__init__(section, etype, node)
         self.prepend = None
diff --git a/tools/binman/etype/blob_ext.py b/tools/binmanu/etype/blob_ext.py
similarity index 96%
rename from tools/binman/etype/blob_ext.py
rename to tools/binmanu/etype/blob_ext.py
index 9eb762b0a23..0d1c2db48c3 100644
--- a/tools/binman/etype/blob_ext.py
+++ b/tools/binmanu/etype/blob_ext.py
@@ -7,7 +7,7 @@
 
 import os
 
-from binman.etype.blob import Entry_blob
+from binmanu.etype.blob import Entry_blob
 from dtoc import fdt_util
 from u_boot_pylib import tools
 from u_boot_pylib import tout
diff --git a/tools/binman/etype/blob_ext_list.py b/tools/binmanu/etype/blob_ext_list.py
similarity index 97%
rename from tools/binman/etype/blob_ext_list.py
rename to tools/binmanu/etype/blob_ext_list.py
index 1bfcf6733a7..549b6bbfb00 100644
--- a/tools/binman/etype/blob_ext_list.py
+++ b/tools/binmanu/etype/blob_ext_list.py
@@ -7,7 +7,7 @@
 
 import os
 
-from binman.etype.blob import Entry_blob
+from binmanu.etype.blob import Entry_blob
 from dtoc import fdt_util
 from u_boot_pylib import tools
 from u_boot_pylib import tout
diff --git a/tools/binman/etype/blob_named_by_arg.py b/tools/binmanu/etype/blob_named_by_arg.py
similarity index 94%
rename from tools/binman/etype/blob_named_by_arg.py
rename to tools/binmanu/etype/blob_named_by_arg.py
index 7c486b2dc91..56e58868510 100644
--- a/tools/binman/etype/blob_named_by_arg.py
+++ b/tools/binmanu/etype/blob_named_by_arg.py
@@ -8,8 +8,8 @@
 
 from collections import OrderedDict
 
-from binman.etype.blob import Entry_blob
-from binman.entry import EntryArg
+from binmanu.etype.blob import Entry_blob
+from binmanu.entry import EntryArg
 
 
 class Entry_blob_named_by_arg(Entry_blob):
diff --git a/tools/binman/etype/blob_phase.py b/tools/binmanu/etype/blob_phase.py
similarity index 95%
rename from tools/binman/etype/blob_phase.py
rename to tools/binmanu/etype/blob_phase.py
index b937158756f..c6fd37a2728 100644
--- a/tools/binman/etype/blob_phase.py
+++ b/tools/binmanu/etype/blob_phase.py
@@ -5,7 +5,7 @@
 # Entry-type base class for U-Boot or SPL binary with devicetree
 #
 
-from binman.etype.section import Entry_section
+from binmanu.etype.section import Entry_section
 
 # This is imported if needed
 state = None
@@ -35,7 +35,7 @@ class Entry_blob_phase(Entry_section):
         """
         # Put this here to allow entry-docs and help to work without libfdt
         global state
-        from binman import state
+        from binmanu import state
 
         super().__init__(section, etype, node)
         self.root_fname = root_fname
diff --git a/tools/binman/etype/cbfs.py b/tools/binmanu/etype/cbfs.py
similarity index 98%
rename from tools/binman/etype/cbfs.py
rename to tools/binmanu/etype/cbfs.py
index 832f8d038f0..edb51388e20 100644
--- a/tools/binman/etype/cbfs.py
+++ b/tools/binmanu/etype/cbfs.py
@@ -7,9 +7,9 @@
 
 from collections import OrderedDict
 
-from binman import cbfs_util
-from binman.cbfs_util import CbfsWriter
-from binman.entry import Entry
+from binmanu import cbfs_util
+from binmanu.cbfs_util import CbfsWriter
+from binmanu.entry import Entry
 from dtoc import fdt_util
 
 # This is imported if needed
@@ -168,7 +168,7 @@ class Entry_cbfs(Entry):
     def __init__(self, section, etype, node):
         # Put this here to allow entry-docs and help to work without libfdt
         global state
-        from binman import state
+        from binmanu import state
 
         super().__init__(section, etype, node)
         self.align_default = None
diff --git a/tools/binman/etype/collection.py b/tools/binmanu/etype/collection.py
similarity index 98%
rename from tools/binman/etype/collection.py
rename to tools/binmanu/etype/collection.py
index c532aafe3e7..962e043bda0 100644
--- a/tools/binman/etype/collection.py
+++ b/tools/binmanu/etype/collection.py
@@ -8,7 +8,7 @@
 from collections import OrderedDict
 import os
 
-from binman.entry import Entry
+from binmanu.entry import Entry
 from dtoc import fdt_util
 
 class Entry_collection(Entry):
diff --git a/tools/binman/etype/cros_ec_rw.py b/tools/binmanu/etype/cros_ec_rw.py
similarity index 91%
rename from tools/binman/etype/cros_ec_rw.py
rename to tools/binmanu/etype/cros_ec_rw.py
index bf676b2d1a7..ef5450a92a6 100644
--- a/tools/binman/etype/cros_ec_rw.py
+++ b/tools/binmanu/etype/cros_ec_rw.py
@@ -5,7 +5,7 @@
 # Entry-type module for a Chromium OS EC image (read-write section)
 #
 
-from binman.etype.blob_named_by_arg import Entry_blob_named_by_arg
+from binmanu.etype.blob_named_by_arg import Entry_blob_named_by_arg
 
 class Entry_cros_ec_rw(Entry_blob_named_by_arg):
     """A blob entry which contains a Chromium OS read-write EC image
diff --git a/tools/binman/etype/fdtmap.py b/tools/binmanu/etype/fdtmap.py
similarity index 98%
rename from tools/binman/etype/fdtmap.py
rename to tools/binmanu/etype/fdtmap.py
index f1f6217940f..ff2bf058745 100644
--- a/tools/binman/etype/fdtmap.py
+++ b/tools/binmanu/etype/fdtmap.py
@@ -8,7 +8,7 @@ This handles putting an FDT into the image with just the information about the
 image.
 """
 
-from binman.entry import Entry
+from binmanu.entry import Entry
 from u_boot_pylib import tools
 from u_boot_pylib import tout
 
@@ -91,7 +91,7 @@ class Entry_fdtmap(Entry):
         global Fdt
 
         import libfdt
-        from binman import state
+        from binmanu import state
         from dtoc.fdt import Fdt
 
         super().__init__(section, etype, node)
diff --git a/tools/binman/etype/files.py b/tools/binmanu/etype/files.py
similarity index 96%
rename from tools/binman/etype/files.py
rename to tools/binmanu/etype/files.py
index c8757eafab1..1ab263dea49 100644
--- a/tools/binman/etype/files.py
+++ b/tools/binmanu/etype/files.py
@@ -9,7 +9,7 @@
 import glob
 import os
 
-from binman.etype.section import Entry_section
+from binmanu.etype.section import Entry_section
 from dtoc import fdt_util
 from u_boot_pylib import tools
 
@@ -33,7 +33,7 @@ class Entry_files(Entry_section):
     def __init__(self, section, etype, node):
         # Put this here to allow entry-docs and help to work without libfdt
         global state
-        from binman import state
+        from binmanu import state
 
         super().__init__(section, etype, node)
 
diff --git a/tools/binman/etype/fill.py b/tools/binmanu/etype/fill.py
similarity index 97%
rename from tools/binman/etype/fill.py
rename to tools/binmanu/etype/fill.py
index 7c93d4e2689..640afc33222 100644
--- a/tools/binman/etype/fill.py
+++ b/tools/binmanu/etype/fill.py
@@ -3,7 +3,7 @@
 # Written by Simon Glass <sjg@chromium.org>
 #
 
-from binman.entry import Entry
+from binmanu.entry import Entry
 from dtoc import fdt_util
 from u_boot_pylib import tools
 
diff --git a/tools/binman/etype/fit.py b/tools/binmanu/etype/fit.py
similarity index 99%
rename from tools/binman/etype/fit.py
rename to tools/binmanu/etype/fit.py
index 9d34aabd19a..14e0ba97c6b 100644
--- a/tools/binman/etype/fit.py
+++ b/tools/binmanu/etype/fit.py
@@ -7,9 +7,9 @@
 
 import libfdt
 
-from binman.entry import Entry, EntryArg
-from binman.etype.section import Entry_section
-from binman import elf
+from binmanu.entry import Entry, EntryArg
+from binmanu.etype.section import Entry_section
+from binmanu import elf
 from dtoc import fdt_util
 from dtoc.fdt import Fdt
 from u_boot_pylib import tools
diff --git a/tools/binman/etype/fmap.py b/tools/binmanu/etype/fmap.py
similarity index 98%
rename from tools/binman/etype/fmap.py
rename to tools/binmanu/etype/fmap.py
index dacdafd8f6f..ebc3c07f093 100644
--- a/tools/binman/etype/fmap.py
+++ b/tools/binmanu/etype/fmap.py
@@ -5,8 +5,8 @@
 # Entry-type module for a Flash map, as used by the flashrom SPI flash tool
 #
 
-from binman.entry import Entry
-from binman import fmap_util
+from binmanu.entry import Entry
+from binmanu import fmap_util
 from u_boot_pylib import tools
 from u_boot_pylib.tools import to_hex_size
 from u_boot_pylib import tout
diff --git a/tools/binman/etype/gbb.py b/tools/binmanu/etype/gbb.py
similarity index 98%
rename from tools/binman/etype/gbb.py
rename to tools/binmanu/etype/gbb.py
index cca18af6e2f..e56eff580ee 100644
--- a/tools/binman/etype/gbb.py
+++ b/tools/binmanu/etype/gbb.py
@@ -9,7 +9,7 @@
 from collections import OrderedDict
 
 from u_boot_pylib import command
-from binman.entry import Entry, EntryArg
+from binmanu.entry import Entry, EntryArg
 
 from dtoc import fdt_util
 from u_boot_pylib import tools
diff --git a/tools/binman/etype/image_header.py b/tools/binmanu/etype/image_header.py
similarity index 99%
rename from tools/binman/etype/image_header.py
rename to tools/binmanu/etype/image_header.py
index 24011884958..4731b215afa 100644
--- a/tools/binman/etype/image_header.py
+++ b/tools/binmanu/etype/image_header.py
@@ -11,7 +11,7 @@ image.
 
 import struct
 
-from binman.entry import Entry
+from binmanu.entry import Entry
 from dtoc import fdt_util
 
 IMAGE_HEADER_MAGIC = b'BinM'
diff --git a/tools/binman/etype/intel_cmc.py b/tools/binmanu/etype/intel_cmc.py
similarity index 92%
rename from tools/binman/etype/intel_cmc.py
rename to tools/binmanu/etype/intel_cmc.py
index 494d43c9cf9..6eca6fe0881 100644
--- a/tools/binman/etype/intel_cmc.py
+++ b/tools/binmanu/etype/intel_cmc.py
@@ -5,7 +5,7 @@
 # Entry-type module for Intel Chip Microcode binary blob
 #
 
-from binman.etype.blob_ext import Entry_blob_ext
+from binmanu.etype.blob_ext import Entry_blob_ext
 
 class Entry_intel_cmc(Entry_blob_ext):
     """Intel Chipset Micro Code (CMC) file
diff --git a/tools/binman/etype/intel_descriptor.py b/tools/binmanu/etype/intel_descriptor.py
similarity index 97%
rename from tools/binman/etype/intel_descriptor.py
rename to tools/binmanu/etype/intel_descriptor.py
index 7fe88a9ec1a..a8ab34c89bf 100644
--- a/tools/binman/etype/intel_descriptor.py
+++ b/tools/binmanu/etype/intel_descriptor.py
@@ -7,8 +7,8 @@
 
 import struct
 
-from binman.entry import Entry
-from binman.etype.blob_ext import Entry_blob_ext
+from binmanu.entry import Entry
+from binmanu.etype.blob_ext import Entry_blob_ext
 
 FD_SIGNATURE   = struct.pack('<L', 0x0ff0a55a)
 MAX_REGIONS    = 5
diff --git a/tools/binman/etype/intel_fit.py b/tools/binmanu/etype/intel_fit.py
similarity index 94%
rename from tools/binman/etype/intel_fit.py
rename to tools/binmanu/etype/intel_fit.py
index f1a10c55a67..6aa8958de0c 100644
--- a/tools/binman/etype/intel_fit.py
+++ b/tools/binmanu/etype/intel_fit.py
@@ -7,7 +7,7 @@
 
 import struct
 
-from binman.etype.blob_ext import Entry_blob_ext
+from binmanu.etype.blob_ext import Entry_blob_ext
 
 class Entry_intel_fit(Entry_blob_ext):
     """Intel Firmware Image Table (FIT)
diff --git a/tools/binman/etype/intel_fit_ptr.py b/tools/binmanu/etype/intel_fit_ptr.py
similarity index 96%
rename from tools/binman/etype/intel_fit_ptr.py
rename to tools/binmanu/etype/intel_fit_ptr.py
index 01f082281c5..0c67a2ae565 100644
--- a/tools/binman/etype/intel_fit_ptr.py
+++ b/tools/binmanu/etype/intel_fit_ptr.py
@@ -7,7 +7,7 @@
 
 import struct
 
-from binman.etype.blob_ext import Entry_blob_ext
+from binmanu.etype.blob_ext import Entry_blob_ext
 
 class Entry_intel_fit_ptr(Entry_blob_ext):
     """Intel Firmware Image Table (FIT) pointer
diff --git a/tools/binman/etype/intel_fsp.py b/tools/binmanu/etype/intel_fsp.py
similarity index 94%
rename from tools/binman/etype/intel_fsp.py
rename to tools/binmanu/etype/intel_fsp.py
index 326cb7d09b3..f2cc499029b 100644
--- a/tools/binman/etype/intel_fsp.py
+++ b/tools/binmanu/etype/intel_fsp.py
@@ -5,7 +5,7 @@
 # Entry-type module for Intel Firmware Support Package binary blob
 #
 
-from binman.etype.blob_ext import Entry_blob_ext
+from binmanu.etype.blob_ext import Entry_blob_ext
 
 class Entry_intel_fsp(Entry_blob_ext):
     """Intel Firmware Support Package (FSP) file
diff --git a/tools/binman/etype/intel_fsp_m.py b/tools/binmanu/etype/intel_fsp_m.py
similarity index 94%
rename from tools/binman/etype/intel_fsp_m.py
rename to tools/binmanu/etype/intel_fsp_m.py
index 9bcac790ed9..efaadde033f 100644
--- a/tools/binman/etype/intel_fsp_m.py
+++ b/tools/binmanu/etype/intel_fsp_m.py
@@ -5,7 +5,7 @@
 # Entry-type module for Intel Firmware Support Package binary blob (M section)
 #
 
-from binman.etype.blob_ext import Entry_blob_ext
+from binmanu.etype.blob_ext import Entry_blob_ext
 
 class Entry_intel_fsp_m(Entry_blob_ext):
     """Intel Firmware Support Package (FSP) memory init
diff --git a/tools/binman/etype/intel_fsp_s.py b/tools/binmanu/etype/intel_fsp_s.py
similarity index 94%
rename from tools/binman/etype/intel_fsp_s.py
rename to tools/binmanu/etype/intel_fsp_s.py
index 1d5046d452b..eebbcaa42b6 100644
--- a/tools/binman/etype/intel_fsp_s.py
+++ b/tools/binmanu/etype/intel_fsp_s.py
@@ -5,7 +5,7 @@
 # Entry-type module for Intel Firmware Support Package binary blob (S section)
 #
 
-from binman.etype.blob_ext import Entry_blob_ext
+from binmanu.etype.blob_ext import Entry_blob_ext
 
 class Entry_intel_fsp_s(Entry_blob_ext):
     """Intel Firmware Support Package (FSP) silicon init
diff --git a/tools/binman/etype/intel_fsp_t.py b/tools/binmanu/etype/intel_fsp_t.py
similarity index 94%
rename from tools/binman/etype/intel_fsp_t.py
rename to tools/binmanu/etype/intel_fsp_t.py
index 80d95cc6f9c..b9198c317de 100644
--- a/tools/binman/etype/intel_fsp_t.py
+++ b/tools/binmanu/etype/intel_fsp_t.py
@@ -5,7 +5,7 @@
 # Entry-type module for Intel Firmware Support Package binary blob (T section)
 #
 
-from binman.etype.blob_ext import Entry_blob_ext
+from binmanu.etype.blob_ext import Entry_blob_ext
 
 class Entry_intel_fsp_t(Entry_blob_ext):
     """Intel Firmware Support Package (FSP) temp ram init
diff --git a/tools/binman/etype/intel_ifwi.py b/tools/binmanu/etype/intel_ifwi.py
similarity index 98%
rename from tools/binman/etype/intel_ifwi.py
rename to tools/binmanu/etype/intel_ifwi.py
index 6513b97c3e5..5d9a2a30112 100644
--- a/tools/binman/etype/intel_ifwi.py
+++ b/tools/binmanu/etype/intel_ifwi.py
@@ -7,8 +7,8 @@
 
 from collections import OrderedDict
 
-from binman.entry import Entry
-from binman.etype.blob_ext import Entry_blob_ext
+from binmanu.entry import Entry
+from binmanu.etype.blob_ext import Entry_blob_ext
 from dtoc import fdt_util
 from u_boot_pylib import tools
 
diff --git a/tools/binman/etype/intel_me.py b/tools/binmanu/etype/intel_me.py
similarity index 95%
rename from tools/binman/etype/intel_me.py
rename to tools/binmanu/etype/intel_me.py
index b93ebabdc9e..b2b2e196e27 100644
--- a/tools/binman/etype/intel_me.py
+++ b/tools/binmanu/etype/intel_me.py
@@ -5,7 +5,7 @@
 # Entry-type module for Intel Management Engine binary blob
 #
 
-from binman.etype.blob_ext import Entry_blob_ext
+from binmanu.etype.blob_ext import Entry_blob_ext
 
 class Entry_intel_me(Entry_blob_ext):
     """Intel Management Engine (ME) file
diff --git a/tools/binman/etype/intel_mrc.py b/tools/binmanu/etype/intel_mrc.py
similarity index 93%
rename from tools/binman/etype/intel_mrc.py
rename to tools/binmanu/etype/intel_mrc.py
index bb8b26ff686..7b27871d5af 100644
--- a/tools/binman/etype/intel_mrc.py
+++ b/tools/binmanu/etype/intel_mrc.py
@@ -5,7 +5,7 @@
 # Entry-type module for Intel Memory Reference Code binary blob
 #
 
-from binman.etype.blob_ext import Entry_blob_ext
+from binmanu.etype.blob_ext import Entry_blob_ext
 
 class Entry_intel_mrc(Entry_blob_ext):
     """Intel Memory Reference Code (MRC) file
diff --git a/tools/binman/etype/intel_refcode.py b/tools/binmanu/etype/intel_refcode.py
similarity index 93%
rename from tools/binman/etype/intel_refcode.py
rename to tools/binmanu/etype/intel_refcode.py
index 9112730a9a4..257ad32f677 100644
--- a/tools/binman/etype/intel_refcode.py
+++ b/tools/binmanu/etype/intel_refcode.py
@@ -5,7 +5,7 @@
 # Entry-type module for Intel Memory Reference Code binary blob
 #
 
-from binman.etype.blob_ext import Entry_blob_ext
+from binmanu.etype.blob_ext import Entry_blob_ext
 
 class Entry_intel_refcode(Entry_blob_ext):
     """Intel Reference Code file
diff --git a/tools/binman/etype/intel_vbt.py b/tools/binmanu/etype/intel_vbt.py
similarity index 92%
rename from tools/binman/etype/intel_vbt.py
rename to tools/binmanu/etype/intel_vbt.py
index 8afd576600c..3050bcf4b4a 100644
--- a/tools/binman/etype/intel_vbt.py
+++ b/tools/binmanu/etype/intel_vbt.py
@@ -4,7 +4,7 @@
 # Entry-type module for Intel Video BIOS Table binary blob
 #
 
-from binman.etype.blob_ext import Entry_blob_ext
+from binmanu.etype.blob_ext import Entry_blob_ext
 
 class Entry_intel_vbt(Entry_blob_ext):
     """Intel Video BIOS Table (VBT) file
diff --git a/tools/binman/etype/intel_vga.py b/tools/binmanu/etype/intel_vga.py
similarity index 93%
rename from tools/binman/etype/intel_vga.py
rename to tools/binmanu/etype/intel_vga.py
index 51e6465f0d0..de3be8e9beb 100644
--- a/tools/binman/etype/intel_vga.py
+++ b/tools/binmanu/etype/intel_vga.py
@@ -5,7 +5,7 @@
 # Entry-type module for x86 VGA ROM binary blob
 #
 
-from binman.etype.blob_ext import Entry_blob_ext
+from binmanu.etype.blob_ext import Entry_blob_ext
 
 class Entry_intel_vga(Entry_blob_ext):
     """Intel Video Graphics Adaptor (VGA) file
diff --git a/tools/binman/etype/mkimage.py b/tools/binmanu/etype/mkimage.py
similarity index 99%
rename from tools/binman/etype/mkimage.py
rename to tools/binmanu/etype/mkimage.py
index 27a0c4bd7c6..dd68b1530da 100644
--- a/tools/binman/etype/mkimage.py
+++ b/tools/binmanu/etype/mkimage.py
@@ -7,7 +7,7 @@
 
 from collections import OrderedDict
 
-from binman.entry import Entry
+from binmanu.entry import Entry
 from dtoc import fdt_util
 from u_boot_pylib import tools
 
diff --git a/tools/binman/etype/null.py b/tools/binmanu/etype/null.py
similarity index 95%
rename from tools/binman/etype/null.py
rename to tools/binmanu/etype/null.py
index 263fb5244df..024d06a68ea 100644
--- a/tools/binman/etype/null.py
+++ b/tools/binmanu/etype/null.py
@@ -3,7 +3,7 @@
 # Written by Simon Glass <sjg@chromium.org>
 #
 
-from binman.entry import Entry
+from binmanu.entry import Entry
 from dtoc import fdt_util
 from u_boot_pylib import tools
 
diff --git a/tools/binman/etype/opensbi.py b/tools/binmanu/etype/opensbi.py
similarity index 91%
rename from tools/binman/etype/opensbi.py
rename to tools/binmanu/etype/opensbi.py
index 74d473d535a..4a6f1f11185 100644
--- a/tools/binman/etype/opensbi.py
+++ b/tools/binmanu/etype/opensbi.py
@@ -5,7 +5,7 @@
 # Entry-type module for RISC-V OpenSBI binary blob
 #
 
-from binman.etype.blob_named_by_arg import Entry_blob_named_by_arg
+from binmanu.etype.blob_named_by_arg import Entry_blob_named_by_arg
 
 class Entry_opensbi(Entry_blob_named_by_arg):
     """RISC-V OpenSBI fw_dynamic blob
diff --git a/tools/binman/etype/powerpc_mpc85xx_bootpg_resetvec.py b/tools/binmanu/etype/powerpc_mpc85xx_bootpg_resetvec.py
similarity index 94%
rename from tools/binman/etype/powerpc_mpc85xx_bootpg_resetvec.py
rename to tools/binmanu/etype/powerpc_mpc85xx_bootpg_resetvec.py
index 3a92fa399fb..70297cd672b 100644
--- a/tools/binman/etype/powerpc_mpc85xx_bootpg_resetvec.py
+++ b/tools/binmanu/etype/powerpc_mpc85xx_bootpg_resetvec.py
@@ -4,7 +4,7 @@
 # Entry-type module for the PowerPC mpc85xx bootpg and resetvec code for U-Boot
 #
 
-from binman.etype.blob import Entry_blob
+from binmanu.etype.blob import Entry_blob
 
 class Entry_powerpc_mpc85xx_bootpg_resetvec(Entry_blob):
     """PowerPC mpc85xx bootpg + resetvec code for U-Boot
diff --git a/tools/binman/etype/pre_load.py b/tools/binmanu/etype/pre_load.py
similarity index 97%
rename from tools/binman/etype/pre_load.py
rename to tools/binmanu/etype/pre_load.py
index bd3545bffc0..b61b2030eee 100644
--- a/tools/binman/etype/pre_load.py
+++ b/tools/binmanu/etype/pre_load.py
@@ -10,9 +10,9 @@ import struct
 from dtoc import fdt_util
 from u_boot_pylib import tools
 
-from binman.entry import Entry
-from binman.etype.collection import Entry_collection
-from binman.entry import EntryArg
+from binmanu.entry import Entry
+from binmanu.etype.collection import Entry_collection
+from binmanu.entry import EntryArg
 
 from Cryptodome.Hash import SHA256, SHA384, SHA512
 from Cryptodome.PublicKey import RSA
diff --git a/tools/binman/etype/scp.py b/tools/binmanu/etype/scp.py
similarity index 89%
rename from tools/binman/etype/scp.py
rename to tools/binmanu/etype/scp.py
index a9bee3ce8bc..5f7bd818dab 100644
--- a/tools/binman/etype/scp.py
+++ b/tools/binmanu/etype/scp.py
@@ -4,7 +4,7 @@
 # Entry-type module for System Control Processor (SCP) firmware blob
 #
 
-from binman.etype.blob_named_by_arg import Entry_blob_named_by_arg
+from binmanu.etype.blob_named_by_arg import Entry_blob_named_by_arg
 
 class Entry_scp(Entry_blob_named_by_arg):
     """System Control Processor (SCP) firmware blob
diff --git a/tools/binman/etype/section.py b/tools/binmanu/etype/section.py
similarity index 99%
rename from tools/binman/etype/section.py
rename to tools/binmanu/etype/section.py
index 1f0bbd7f2ce..753ff73376b 100644
--- a/tools/binman/etype/section.py
+++ b/tools/binmanu/etype/section.py
@@ -13,8 +13,8 @@ import concurrent.futures
 import re
 import sys
 
-from binman.entry import Entry
-from binman import state
+from binmanu.entry import Entry
+from binmanu import state
 from dtoc import fdt_util
 from u_boot_pylib import tools
 from u_boot_pylib import tout
diff --git a/tools/binman/etype/tee_os.py b/tools/binmanu/etype/tee_os.py
similarity index 97%
rename from tools/binman/etype/tee_os.py
rename to tools/binmanu/etype/tee_os.py
index 5529727e833..e9f576a1a2f 100644
--- a/tools/binman/etype/tee_os.py
+++ b/tools/binmanu/etype/tee_os.py
@@ -6,8 +6,8 @@
 
 import struct
 
-from binman.etype.blob_named_by_arg import Entry_blob_named_by_arg
-from binman import elf
+from binmanu.etype.blob_named_by_arg import Entry_blob_named_by_arg
+from binmanu import elf
 
 class Entry_tee_os(Entry_blob_named_by_arg):
     """Entry containing an OP-TEE Trusted OS (TEE) blob
diff --git a/tools/binman/etype/text.py b/tools/binmanu/etype/text.py
similarity index 98%
rename from tools/binman/etype/text.py
rename to tools/binmanu/etype/text.py
index e4deb4abacc..bbc8a7b5777 100644
--- a/tools/binman/etype/text.py
+++ b/tools/binmanu/etype/text.py
@@ -5,7 +5,7 @@
 
 from collections import OrderedDict
 
-from binman.entry import Entry, EntryArg
+from binmanu.entry import Entry, EntryArg
 from dtoc import fdt_util
 from u_boot_pylib import tools
 
diff --git a/tools/binman/etype/u_boot.py b/tools/binmanu/etype/u_boot.py
similarity index 92%
rename from tools/binman/etype/u_boot.py
rename to tools/binmanu/etype/u_boot.py
index d5639eef2e4..12c330e65c0 100644
--- a/tools/binman/etype/u_boot.py
+++ b/tools/binmanu/etype/u_boot.py
@@ -5,8 +5,8 @@
 # Entry-type module for the expanded U-Boot binary
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 
 class Entry_u_boot(Entry_blob):
     """U-Boot flat binary
diff --git a/tools/binman/etype/u_boot_dtb.py b/tools/binmanu/etype/u_boot_dtb.py
similarity index 91%
rename from tools/binman/etype/u_boot_dtb.py
rename to tools/binmanu/etype/u_boot_dtb.py
index 65e71291d27..93324ec9894 100644
--- a/tools/binman/etype/u_boot_dtb.py
+++ b/tools/binmanu/etype/u_boot_dtb.py
@@ -5,8 +5,8 @@
 # Entry-type module for U-Boot device tree
 #
 
-from binman.entry import Entry
-from binman.etype.blob_dtb import Entry_blob_dtb
+from binmanu.entry import Entry
+from binmanu.etype.blob_dtb import Entry_blob_dtb
 
 class Entry_u_boot_dtb(Entry_blob_dtb):
     """U-Boot device tree
diff --git a/tools/binman/etype/u_boot_dtb_with_ucode.py b/tools/binmanu/etype/u_boot_dtb_with_ucode.py
similarity index 96%
rename from tools/binman/etype/u_boot_dtb_with_ucode.py
rename to tools/binmanu/etype/u_boot_dtb_with_ucode.py
index f7225cecc16..49e0288811a 100644
--- a/tools/binman/etype/u_boot_dtb_with_ucode.py
+++ b/tools/binmanu/etype/u_boot_dtb_with_ucode.py
@@ -5,8 +5,8 @@
 # Entry-type module for U-Boot device tree with the microcode removed
 #
 
-from binman.entry import Entry
-from binman.etype.blob_dtb import Entry_blob_dtb
+from binmanu.entry import Entry
+from binmanu.etype.blob_dtb import Entry_blob_dtb
 from u_boot_pylib import tools
 
 # This is imported if needed
@@ -29,7 +29,7 @@ class Entry_u_boot_dtb_with_ucode(Entry_blob_dtb):
     def __init__(self, section, etype, node):
         # Put this here to allow entry-docs and help to work without libfdt
         global state
-        from binman import state
+        from binmanu import state
 
         super().__init__(section, etype, node)
         self.ucode_data = b''
diff --git a/tools/binman/etype/u_boot_elf.py b/tools/binmanu/etype/u_boot_elf.py
similarity index 93%
rename from tools/binman/etype/u_boot_elf.py
rename to tools/binmanu/etype/u_boot_elf.py
index f4d86aa176a..621577021f2 100644
--- a/tools/binman/etype/u_boot_elf.py
+++ b/tools/binmanu/etype/u_boot_elf.py
@@ -5,8 +5,8 @@
 # Entry-type module for U-Boot ELF image
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 
 from dtoc import fdt_util
 from u_boot_pylib import tools
diff --git a/tools/binman/etype/u_boot_env.py b/tools/binmanu/etype/u_boot_env.py
similarity index 96%
rename from tools/binman/etype/u_boot_env.py
rename to tools/binmanu/etype/u_boot_env.py
index c027e93d42c..9603e9eb3b6 100644
--- a/tools/binman/etype/u_boot_env.py
+++ b/tools/binmanu/etype/u_boot_env.py
@@ -6,7 +6,7 @@
 import struct
 import zlib
 
-from binman.etype.blob import Entry_blob
+from binmanu.etype.blob import Entry_blob
 from dtoc import fdt_util
 from u_boot_pylib import tools
 
diff --git a/tools/binman/etype/u_boot_expanded.py b/tools/binmanu/etype/u_boot_expanded.py
similarity index 93%
rename from tools/binman/etype/u_boot_expanded.py
rename to tools/binmanu/etype/u_boot_expanded.py
index 8797824c9f0..457f867aa82 100644
--- a/tools/binman/etype/u_boot_expanded.py
+++ b/tools/binmanu/etype/u_boot_expanded.py
@@ -5,7 +5,7 @@
 # Entry-type module for U-Boot binary
 #
 
-from binman.etype.blob_phase import Entry_blob_phase
+from binmanu.etype.blob_phase import Entry_blob_phase
 
 class Entry_u_boot_expanded(Entry_blob_phase):
     """U-Boot flat binary broken out into its component parts
diff --git a/tools/binman/etype/u_boot_img.py b/tools/binmanu/etype/u_boot_img.py
similarity index 90%
rename from tools/binman/etype/u_boot_img.py
rename to tools/binmanu/etype/u_boot_img.py
index 8a739d8edb6..ccc939e1904 100644
--- a/tools/binman/etype/u_boot_img.py
+++ b/tools/binmanu/etype/u_boot_img.py
@@ -5,8 +5,8 @@
 # Entry-type module for U-Boot binary
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 
 class Entry_u_boot_img(Entry_blob):
     """U-Boot legacy image
diff --git a/tools/binman/etype/u_boot_nodtb.py b/tools/binmanu/etype/u_boot_nodtb.py
similarity index 92%
rename from tools/binman/etype/u_boot_nodtb.py
rename to tools/binmanu/etype/u_boot_nodtb.py
index 347ba7dc697..8efd8e9275c 100644
--- a/tools/binman/etype/u_boot_nodtb.py
+++ b/tools/binmanu/etype/u_boot_nodtb.py
@@ -5,8 +5,8 @@
 # Entry-type module for 'u-boot-nodtb.bin'
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 
 class Entry_u_boot_nodtb(Entry_blob):
     """U-Boot flat binary without device tree appended
diff --git a/tools/binman/etype/u_boot_spl.py b/tools/binmanu/etype/u_boot_spl.py
similarity index 95%
rename from tools/binman/etype/u_boot_spl.py
rename to tools/binmanu/etype/u_boot_spl.py
index 7f710c857db..e00c9f69288 100644
--- a/tools/binman/etype/u_boot_spl.py
+++ b/tools/binmanu/etype/u_boot_spl.py
@@ -5,8 +5,8 @@
 # Entry-type module for spl/u-boot-spl.bin
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 
 class Entry_u_boot_spl(Entry_blob):
     """U-Boot SPL binary
diff --git a/tools/binman/etype/u_boot_spl_bss_pad.py b/tools/binmanu/etype/u_boot_spl_bss_pad.py
similarity index 94%
rename from tools/binman/etype/u_boot_spl_bss_pad.py
rename to tools/binmanu/etype/u_boot_spl_bss_pad.py
index 1ffeb3911fd..0912aab08ef 100644
--- a/tools/binman/etype/u_boot_spl_bss_pad.py
+++ b/tools/binmanu/etype/u_boot_spl_bss_pad.py
@@ -7,9 +7,9 @@
 # to it will appear to SPL to be at the end of BSS rather than the start.
 #
 
-from binman import elf
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu import elf
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 from u_boot_pylib import tools
 
 class Entry_u_boot_spl_bss_pad(Entry_blob):
diff --git a/tools/binman/etype/u_boot_spl_dtb.py b/tools/binmanu/etype/u_boot_spl_dtb.py
similarity index 90%
rename from tools/binman/etype/u_boot_spl_dtb.py
rename to tools/binmanu/etype/u_boot_spl_dtb.py
index eefc4a44aab..7431977f2b4 100644
--- a/tools/binman/etype/u_boot_spl_dtb.py
+++ b/tools/binmanu/etype/u_boot_spl_dtb.py
@@ -5,8 +5,8 @@
 # Entry-type module for U-Boot device tree in SPL (Secondary Program Loader)
 #
 
-from binman.entry import Entry
-from binman.etype.blob_dtb import Entry_blob_dtb
+from binmanu.entry import Entry
+from binmanu.etype.blob_dtb import Entry_blob_dtb
 
 class Entry_u_boot_spl_dtb(Entry_blob_dtb):
     """U-Boot SPL device tree
diff --git a/tools/binman/etype/u_boot_spl_elf.py b/tools/binmanu/etype/u_boot_spl_elf.py
similarity index 90%
rename from tools/binman/etype/u_boot_spl_elf.py
rename to tools/binmanu/etype/u_boot_spl_elf.py
index 7b7b4e01495..949141c3f09 100644
--- a/tools/binman/etype/u_boot_spl_elf.py
+++ b/tools/binmanu/etype/u_boot_spl_elf.py
@@ -5,8 +5,8 @@
 # Entry-type module for U-Boot SPL ELF image
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 
 class Entry_u_boot_spl_elf(Entry_blob):
     """U-Boot SPL ELF image
diff --git a/tools/binman/etype/u_boot_spl_expanded.py b/tools/binmanu/etype/u_boot_spl_expanded.py
similarity index 95%
rename from tools/binman/etype/u_boot_spl_expanded.py
rename to tools/binmanu/etype/u_boot_spl_expanded.py
index fcd0dd19ac4..da3b5fdb05b 100644
--- a/tools/binman/etype/u_boot_spl_expanded.py
+++ b/tools/binmanu/etype/u_boot_spl_expanded.py
@@ -7,8 +7,8 @@
 
 from u_boot_pylib import tout
 
-from binman import state
-from binman.etype.blob_phase import Entry_blob_phase
+from binmanu import state
+from binmanu.etype.blob_phase import Entry_blob_phase
 
 class Entry_u_boot_spl_expanded(Entry_blob_phase):
     """U-Boot SPL flat binary broken out into its component parts
diff --git a/tools/binman/etype/u_boot_spl_nodtb.py b/tools/binmanu/etype/u_boot_spl_nodtb.py
similarity index 94%
rename from tools/binman/etype/u_boot_spl_nodtb.py
rename to tools/binmanu/etype/u_boot_spl_nodtb.py
index e7ec329c902..b9bc0f50c18 100644
--- a/tools/binman/etype/u_boot_spl_nodtb.py
+++ b/tools/binmanu/etype/u_boot_spl_nodtb.py
@@ -5,8 +5,8 @@
 # Entry-type module for 'u-boot-spl-nodtb.bin'
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 
 class Entry_u_boot_spl_nodtb(Entry_blob):
     """SPL binary without device tree appended
diff --git a/tools/binman/etype/u_boot_spl_with_ucode_ptr.py b/tools/binmanu/etype/u_boot_spl_with_ucode_ptr.py
similarity index 90%
rename from tools/binman/etype/u_boot_spl_with_ucode_ptr.py
rename to tools/binmanu/etype/u_boot_spl_with_ucode_ptr.py
index 72739a5eb67..8842797de81 100644
--- a/tools/binman/etype/u_boot_spl_with_ucode_ptr.py
+++ b/tools/binmanu/etype/u_boot_spl_with_ucode_ptr.py
@@ -7,7 +7,7 @@
 
 import struct
 
-from binman.etype.u_boot_with_ucode_ptr import Entry_u_boot_with_ucode_ptr
+from binmanu.etype.u_boot_with_ucode_ptr import Entry_u_boot_with_ucode_ptr
 
 class Entry_u_boot_spl_with_ucode_ptr(Entry_u_boot_with_ucode_ptr):
     """U-Boot SPL with embedded microcode pointer
diff --git a/tools/binman/etype/u_boot_tpl.py b/tools/binmanu/etype/u_boot_tpl.py
similarity index 95%
rename from tools/binman/etype/u_boot_tpl.py
rename to tools/binmanu/etype/u_boot_tpl.py
index 397b9f89531..7e198167e2e 100644
--- a/tools/binman/etype/u_boot_tpl.py
+++ b/tools/binmanu/etype/u_boot_tpl.py
@@ -5,8 +5,8 @@
 # Entry-type module for tpl/u-boot-tpl.bin
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 
 class Entry_u_boot_tpl(Entry_blob):
     """U-Boot TPL binary
diff --git a/tools/binman/etype/u_boot_tpl_bss_pad.py b/tools/binmanu/etype/u_boot_tpl_bss_pad.py
similarity index 94%
rename from tools/binman/etype/u_boot_tpl_bss_pad.py
rename to tools/binmanu/etype/u_boot_tpl_bss_pad.py
index 29c6a954129..36fd7cce7c3 100644
--- a/tools/binman/etype/u_boot_tpl_bss_pad.py
+++ b/tools/binmanu/etype/u_boot_tpl_bss_pad.py
@@ -7,9 +7,9 @@
 # to it will appear to TPL to be at the end of BSS rather than the start.
 #
 
-from binman import elf
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu import elf
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 from u_boot_pylib import tools
 
 class Entry_u_boot_tpl_bss_pad(Entry_blob):
diff --git a/tools/binman/etype/u_boot_tpl_dtb.py b/tools/binmanu/etype/u_boot_tpl_dtb.py
similarity index 90%
rename from tools/binman/etype/u_boot_tpl_dtb.py
rename to tools/binmanu/etype/u_boot_tpl_dtb.py
index 2ff1d7ced1a..a13049def1c 100644
--- a/tools/binman/etype/u_boot_tpl_dtb.py
+++ b/tools/binmanu/etype/u_boot_tpl_dtb.py
@@ -5,8 +5,8 @@
 # Entry-type module for U-Boot device tree in TPL (Tertiary Program Loader)
 #
 
-from binman.entry import Entry
-from binman.etype.blob_dtb import Entry_blob_dtb
+from binmanu.entry import Entry
+from binmanu.etype.blob_dtb import Entry_blob_dtb
 
 class Entry_u_boot_tpl_dtb(Entry_blob_dtb):
     """U-Boot TPL device tree
diff --git a/tools/binman/etype/u_boot_tpl_dtb_with_ucode.py b/tools/binmanu/etype/u_boot_tpl_dtb_with_ucode.py
similarity index 90%
rename from tools/binman/etype/u_boot_tpl_dtb_with_ucode.py
rename to tools/binmanu/etype/u_boot_tpl_dtb_with_ucode.py
index 066f18dfef2..b8a133de60e 100644
--- a/tools/binman/etype/u_boot_tpl_dtb_with_ucode.py
+++ b/tools/binmanu/etype/u_boot_tpl_dtb_with_ucode.py
@@ -5,7 +5,7 @@
 # Entry-type module for U-Boot device tree with the microcode removed
 #
 
-from binman.etype.u_boot_dtb_with_ucode import Entry_u_boot_dtb_with_ucode
+from binmanu.etype.u_boot_dtb_with_ucode import Entry_u_boot_dtb_with_ucode
 
 class Entry_u_boot_tpl_dtb_with_ucode(Entry_u_boot_dtb_with_ucode):
     """U-Boot TPL with embedded microcode pointer
diff --git a/tools/binman/etype/u_boot_tpl_elf.py b/tools/binmanu/etype/u_boot_tpl_elf.py
similarity index 90%
rename from tools/binman/etype/u_boot_tpl_elf.py
rename to tools/binmanu/etype/u_boot_tpl_elf.py
index fd100019b39..1cdb653ac87 100644
--- a/tools/binman/etype/u_boot_tpl_elf.py
+++ b/tools/binmanu/etype/u_boot_tpl_elf.py
@@ -5,8 +5,8 @@
 # Entry-type module for U-Boot TPL ELF image
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 
 class Entry_u_boot_tpl_elf(Entry_blob):
     """U-Boot TPL ELF image
diff --git a/tools/binman/etype/u_boot_tpl_expanded.py b/tools/binmanu/etype/u_boot_tpl_expanded.py
similarity index 95%
rename from tools/binman/etype/u_boot_tpl_expanded.py
rename to tools/binmanu/etype/u_boot_tpl_expanded.py
index 58db4f37556..3b968a2f3eb 100644
--- a/tools/binman/etype/u_boot_tpl_expanded.py
+++ b/tools/binmanu/etype/u_boot_tpl_expanded.py
@@ -7,8 +7,8 @@
 
 from u_boot_pylib import tout
 
-from binman import state
-from binman.etype.blob_phase import Entry_blob_phase
+from binmanu import state
+from binmanu.etype.blob_phase import Entry_blob_phase
 
 class Entry_u_boot_tpl_expanded(Entry_blob_phase):
     """U-Boot TPL flat binary broken out into its component parts
diff --git a/tools/binman/etype/u_boot_tpl_nodtb.py b/tools/binmanu/etype/u_boot_tpl_nodtb.py
similarity index 94%
rename from tools/binman/etype/u_boot_tpl_nodtb.py
rename to tools/binmanu/etype/u_boot_tpl_nodtb.py
index 9bb2b5dda30..b58a4176b7f 100644
--- a/tools/binman/etype/u_boot_tpl_nodtb.py
+++ b/tools/binmanu/etype/u_boot_tpl_nodtb.py
@@ -5,8 +5,8 @@
 # Entry-type module for 'u-boot-tpl-nodtb.bin'
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 
 class Entry_u_boot_tpl_nodtb(Entry_blob):
     """TPL binary without device tree appended
diff --git a/tools/binman/etype/u_boot_tpl_with_ucode_ptr.py b/tools/binmanu/etype/u_boot_tpl_with_ucode_ptr.py
similarity index 82%
rename from tools/binman/etype/u_boot_tpl_with_ucode_ptr.py
rename to tools/binmanu/etype/u_boot_tpl_with_ucode_ptr.py
index 86f9578b714..296c2ecb056 100644
--- a/tools/binman/etype/u_boot_tpl_with_ucode_ptr.py
+++ b/tools/binmanu/etype/u_boot_tpl_with_ucode_ptr.py
@@ -7,9 +7,9 @@
 
 import struct
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
-from binman.etype.u_boot_with_ucode_ptr import Entry_u_boot_with_ucode_ptr
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
+from binmanu.etype.u_boot_with_ucode_ptr import Entry_u_boot_with_ucode_ptr
 from u_boot_pylib import command
 from u_boot_pylib import tools
 
diff --git a/tools/binman/etype/u_boot_ucode.py b/tools/binmanu/etype/u_boot_ucode.py
similarity index 98%
rename from tools/binman/etype/u_boot_ucode.py
rename to tools/binmanu/etype/u_boot_ucode.py
index 97ed7d7eb14..b329e5355dd 100644
--- a/tools/binman/etype/u_boot_ucode.py
+++ b/tools/binmanu/etype/u_boot_ucode.py
@@ -5,8 +5,8 @@
 # Entry-type module for a U-Boot binary with an embedded microcode pointer
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 from u_boot_pylib import tools
 
 class Entry_u_boot_ucode(Entry_blob):
diff --git a/tools/binman/etype/u_boot_vpl.py b/tools/binmanu/etype/u_boot_vpl.py
similarity index 94%
rename from tools/binman/etype/u_boot_vpl.py
rename to tools/binmanu/etype/u_boot_vpl.py
index 31d7e8374e2..70c04b6c4c1 100644
--- a/tools/binman/etype/u_boot_vpl.py
+++ b/tools/binmanu/etype/u_boot_vpl.py
@@ -5,8 +5,8 @@
 # Entry-type module for vpl/u-boot-vpl.bin
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 
 class Entry_u_boot_vpl(Entry_blob):
     """U-Boot VPL binary
diff --git a/tools/binman/etype/u_boot_vpl_bss_pad.py b/tools/binmanu/etype/u_boot_vpl_bss_pad.py
similarity index 94%
rename from tools/binman/etype/u_boot_vpl_bss_pad.py
rename to tools/binmanu/etype/u_boot_vpl_bss_pad.py
index bba38ccf9e9..7d8b7f5d721 100644
--- a/tools/binman/etype/u_boot_vpl_bss_pad.py
+++ b/tools/binmanu/etype/u_boot_vpl_bss_pad.py
@@ -7,9 +7,9 @@
 # to it will appear to VPL to be at the end of BSS rather than the start.
 #
 
-from binman import elf
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu import elf
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 from u_boot_pylib import tools
 
 class Entry_u_boot_vpl_bss_pad(Entry_blob):
diff --git a/tools/binman/etype/u_boot_vpl_dtb.py b/tools/binmanu/etype/u_boot_vpl_dtb.py
similarity index 90%
rename from tools/binman/etype/u_boot_vpl_dtb.py
rename to tools/binmanu/etype/u_boot_vpl_dtb.py
index f6253bf2431..e6e3c7de770 100644
--- a/tools/binman/etype/u_boot_vpl_dtb.py
+++ b/tools/binmanu/etype/u_boot_vpl_dtb.py
@@ -5,8 +5,8 @@
 # Entry-type module for U-Boot device tree in VPL (Verifying Program Loader)
 #
 
-from binman.entry import Entry
-from binman.etype.blob_dtb import Entry_blob_dtb
+from binmanu.entry import Entry
+from binmanu.etype.blob_dtb import Entry_blob_dtb
 
 class Entry_u_boot_vpl_dtb(Entry_blob_dtb):
     """U-Boot VPL device tree
diff --git a/tools/binman/etype/u_boot_vpl_elf.py b/tools/binmanu/etype/u_boot_vpl_elf.py
similarity index 90%
rename from tools/binman/etype/u_boot_vpl_elf.py
rename to tools/binmanu/etype/u_boot_vpl_elf.py
index 2c686790194..0cf499bafc5 100644
--- a/tools/binman/etype/u_boot_vpl_elf.py
+++ b/tools/binmanu/etype/u_boot_vpl_elf.py
@@ -5,8 +5,8 @@
 # Entry-type module for U-Boot VPL ELF image
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 
 class Entry_u_boot_vpl_elf(Entry_blob):
     """U-Boot VPL ELF image
diff --git a/tools/binman/etype/u_boot_vpl_expanded.py b/tools/binmanu/etype/u_boot_vpl_expanded.py
similarity index 95%
rename from tools/binman/etype/u_boot_vpl_expanded.py
rename to tools/binmanu/etype/u_boot_vpl_expanded.py
index deff5a3f8c2..35a54c0bbd6 100644
--- a/tools/binman/etype/u_boot_vpl_expanded.py
+++ b/tools/binmanu/etype/u_boot_vpl_expanded.py
@@ -7,8 +7,8 @@
 
 from u_boot_pylib import tout
 
-from binman import state
-from binman.etype.blob_phase import Entry_blob_phase
+from binmanu import state
+from binmanu.etype.blob_phase import Entry_blob_phase
 
 class Entry_u_boot_vpl_expanded(Entry_blob_phase):
     """U-Boot VPL flat binary broken out into its component parts
diff --git a/tools/binman/etype/u_boot_vpl_nodtb.py b/tools/binmanu/etype/u_boot_vpl_nodtb.py
similarity index 94%
rename from tools/binman/etype/u_boot_vpl_nodtb.py
rename to tools/binmanu/etype/u_boot_vpl_nodtb.py
index 64c2767488d..399df91ebf7 100644
--- a/tools/binman/etype/u_boot_vpl_nodtb.py
+++ b/tools/binmanu/etype/u_boot_vpl_nodtb.py
@@ -5,8 +5,8 @@
 # Entry-type module for 'u-boot-vpl-nodtb.bin'
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 
 class Entry_u_boot_vpl_nodtb(Entry_blob):
     """VPL binary without device tree appended
diff --git a/tools/binman/etype/u_boot_with_ucode_ptr.py b/tools/binmanu/etype/u_boot_with_ucode_ptr.py
similarity index 97%
rename from tools/binman/etype/u_boot_with_ucode_ptr.py
rename to tools/binmanu/etype/u_boot_with_ucode_ptr.py
index 41731fd0e13..d56c2b91871 100644
--- a/tools/binman/etype/u_boot_with_ucode_ptr.py
+++ b/tools/binmanu/etype/u_boot_with_ucode_ptr.py
@@ -7,9 +7,9 @@
 
 import struct
 
-from binman import elf
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu import elf
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 from dtoc import fdt_util
 from u_boot_pylib import tools
 from u_boot_pylib import command
diff --git a/tools/binman/etype/vblock.py b/tools/binmanu/etype/vblock.py
similarity index 97%
rename from tools/binman/etype/vblock.py
rename to tools/binmanu/etype/vblock.py
index 4adb9a4e9bf..4781d98279c 100644
--- a/tools/binman/etype/vblock.py
+++ b/tools/binmanu/etype/vblock.py
@@ -9,8 +9,8 @@
 from collections import OrderedDict
 import os
 
-from binman.entry import EntryArg
-from binman.etype.collection import Entry_collection
+from binmanu.entry import EntryArg
+from binmanu.etype.collection import Entry_collection
 
 from dtoc import fdt_util
 from u_boot_pylib import tools
diff --git a/tools/binman/etype/x86_reset16.py b/tools/binmanu/etype/x86_reset16.py
similarity index 92%
rename from tools/binman/etype/x86_reset16.py
rename to tools/binmanu/etype/x86_reset16.py
index 5d49f16e21c..8d73c97c1ea 100644
--- a/tools/binman/etype/x86_reset16.py
+++ b/tools/binmanu/etype/x86_reset16.py
@@ -5,8 +5,8 @@
 # Entry-type module for the 16-bit x86 reset code for U-Boot
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 
 class Entry_x86_reset16(Entry_blob):
     """x86 16-bit reset code for U-Boot
diff --git a/tools/binman/etype/x86_reset16_spl.py b/tools/binmanu/etype/x86_reset16_spl.py
similarity index 92%
rename from tools/binman/etype/x86_reset16_spl.py
rename to tools/binmanu/etype/x86_reset16_spl.py
index 775b90699ba..907273533bb 100644
--- a/tools/binman/etype/x86_reset16_spl.py
+++ b/tools/binmanu/etype/x86_reset16_spl.py
@@ -5,8 +5,8 @@
 # Entry-type module for the 16-bit x86 reset code for U-Boot
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 
 class Entry_x86_reset16_spl(Entry_blob):
     """x86 16-bit reset code for U-Boot
diff --git a/tools/binman/etype/x86_reset16_tpl.py b/tools/binmanu/etype/x86_reset16_tpl.py
similarity index 92%
rename from tools/binman/etype/x86_reset16_tpl.py
rename to tools/binmanu/etype/x86_reset16_tpl.py
index 52d3f4869ae..623e2f85198 100644
--- a/tools/binman/etype/x86_reset16_tpl.py
+++ b/tools/binmanu/etype/x86_reset16_tpl.py
@@ -5,8 +5,8 @@
 # Entry-type module for the 16-bit x86 reset code for U-Boot
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 
 class Entry_x86_reset16_tpl(Entry_blob):
     """x86 16-bit reset code for U-Boot
diff --git a/tools/binman/etype/x86_start16.py b/tools/binmanu/etype/x86_start16.py
similarity index 93%
rename from tools/binman/etype/x86_start16.py
rename to tools/binmanu/etype/x86_start16.py
index 18fdd95d370..201f01cc39b 100644
--- a/tools/binman/etype/x86_start16.py
+++ b/tools/binmanu/etype/x86_start16.py
@@ -5,8 +5,8 @@
 # Entry-type module for the 16-bit x86 start-up code for U-Boot
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 
 class Entry_x86_start16(Entry_blob):
     """x86 16-bit start-up code for U-Boot
diff --git a/tools/binman/etype/x86_start16_spl.py b/tools/binmanu/etype/x86_start16_spl.py
similarity index 93%
rename from tools/binman/etype/x86_start16_spl.py
rename to tools/binmanu/etype/x86_start16_spl.py
index ac8e90f2e0c..856183872f1 100644
--- a/tools/binman/etype/x86_start16_spl.py
+++ b/tools/binmanu/etype/x86_start16_spl.py
@@ -5,8 +5,8 @@
 # Entry-type module for the 16-bit x86 start-up code for U-Boot SPL
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 
 class Entry_x86_start16_spl(Entry_blob):
     """x86 16-bit start-up code for SPL
diff --git a/tools/binman/etype/x86_start16_tpl.py b/tools/binmanu/etype/x86_start16_tpl.py
similarity index 93%
rename from tools/binman/etype/x86_start16_tpl.py
rename to tools/binmanu/etype/x86_start16_tpl.py
index 72d4608bb73..1d506208a66 100644
--- a/tools/binman/etype/x86_start16_tpl.py
+++ b/tools/binmanu/etype/x86_start16_tpl.py
@@ -5,8 +5,8 @@
 # Entry-type module for the 16-bit x86 start-up code for U-Boot TPL
 #
 
-from binman.entry import Entry
-from binman.etype.blob import Entry_blob
+from binmanu.entry import Entry
+from binmanu.etype.blob import Entry_blob
 
 class Entry_x86_start16_tpl(Entry_blob):
     """x86 16-bit start-up code for TPL
diff --git a/tools/binman/fdt_test.py b/tools/binmanu/fdt_test.py
similarity index 100%
rename from tools/binman/fdt_test.py
rename to tools/binmanu/fdt_test.py
diff --git a/tools/binman/fip_util.py b/tools/binmanu/fip_util.py
similarity index 100%
rename from tools/binman/fip_util.py
rename to tools/binmanu/fip_util.py
diff --git a/tools/binman/fip_util_test.py b/tools/binmanu/fip_util_test.py
similarity index 99%
rename from tools/binman/fip_util_test.py
rename to tools/binmanu/fip_util_test.py
index 56aa56f4643..caa2049f6cb 100755
--- a/tools/binman/fip_util_test.py
+++ b/tools/binmanu/fip_util_test.py
@@ -20,8 +20,8 @@ OUR_PATH = os.path.dirname(os.path.realpath(__file__))
 sys.path.insert(2, os.path.join(OUR_PATH, '..'))
 
 # pylint: disable=C0413
-from binman import bintool
-from binman import fip_util
+from binmanu import bintool
+from binmanu import fip_util
 from u_boot_pylib import test_util
 from u_boot_pylib import tools
 
diff --git a/tools/binman/fmap_util.py b/tools/binmanu/fmap_util.py
similarity index 100%
rename from tools/binman/fmap_util.py
rename to tools/binmanu/fmap_util.py
diff --git a/tools/binman/ftest.py b/tools/binmanu/ftest.py
similarity index 99%
rename from tools/binman/ftest.py
rename to tools/binmanu/ftest.py
index 3cb17b6dec8..6412200fe66 100644
--- a/tools/binman/ftest.py
+++ b/tools/binmanu/ftest.py
@@ -20,20 +20,20 @@ import unittest
 import unittest.mock
 import urllib.error
 
-from binman import bintool
-from binman import cbfs_util
-from binman import cmdline
-from binman import control
-from binman import elf
-from binman import elf_test
-from binman import fip_util
-from binman import fmap_util
-from binman import state
+from binmanu import bintool
+from binmanu import cbfs_util
+from binmanu import cmdline
+from binmanu import control
+from binmanu import elf
+from binmanu import elf_test
+from binmanu import fip_util
+from binmanu import fmap_util
+from binmanu import state
 from dtoc import fdt
 from dtoc import fdt_util
-from binman.etype import fdtmap
-from binman.etype import image_header
-from binman.image import Image
+from binmanu.etype import fdtmap
+from binmanu.etype import image_header
+from binmanu.image import Image
 from u_boot_pylib import command
 from u_boot_pylib import test_util
 from u_boot_pylib import tools
@@ -131,7 +131,7 @@ class TestFunctional(unittest.TestCase):
     @classmethod
     def setUpClass(cls):
         global entry
-        from binman import entry
+        from binmanu import entry
 
         # Handle the case where argv[0] is 'python'
         cls._binman_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
@@ -296,7 +296,7 @@ class TestFunctional(unittest.TestCase):
                 New image filename
         """
         image_fname = tools.get_output_filename('image.bin')
-        tmpdir = tempfile.mkdtemp(prefix='binman.')
+        tmpdir = tempfile.mkdtemp(prefix='binmanu.')
         updated_fname = os.path.join(tmpdir, 'image-updated.bin')
         tools.write_file(updated_fname, tools.read_file(image_fname))
         self._CleanupOutputDir()
@@ -1529,7 +1529,7 @@ class TestFunctional(unittest.TestCase):
             self._DoReadFile('057_unknown_contents.dts', True)
         self.assertIn("Image '/binman': Internal error: Could not complete "
                 "processing of contents: remaining ["
-                "<binman.etype._testing.Entry__testing ", str(e.exception))
+                "<binmanu.etype._testing.Entry__testing ", str(e.exception))
 
     def testBadChangeSize(self):
         """Test that trying to change the size of an entry fails"""
@@ -1576,7 +1576,7 @@ class TestFunctional(unittest.TestCase):
         with self.assertRaises(ValueError) as e:
             self._DoReadFileDtb('061_fdt_update_bad.dts', update_dtb=True)
         self.assertIn('Could not complete processing of Fdt: remaining '
-                      '[<binman.etype._testing.Entry__testing',
+                      '[<binmanu.etype._testing.Entry__testing',
                         str(e.exception))
 
     def testEntryArgs(self):
diff --git a/tools/binman/image.py b/tools/binmanu/image.py
similarity index 99%
rename from tools/binman/image.py
rename to tools/binmanu/image.py
index 8ebf71d61a8..3e3070ed4b2 100644
--- a/tools/binman/image.py
+++ b/tools/binmanu/image.py
@@ -12,10 +12,10 @@ import os
 import re
 import sys
 
-from binman.entry import Entry
-from binman.etype import fdtmap
-from binman.etype import image_header
-from binman.etype import section
+from binmanu.entry import Entry
+from binmanu.etype import fdtmap
+from binmanu.etype import image_header
+from binmanu.etype import section
 from dtoc import fdt
 from dtoc import fdt_util
 from u_boot_pylib import tools
diff --git a/tools/binman/image_test.py b/tools/binmanu/image_test.py
similarity index 98%
rename from tools/binman/image_test.py
rename to tools/binmanu/image_test.py
index bd51c1e55d1..caaf53aacf5 100644
--- a/tools/binman/image_test.py
+++ b/tools/binmanu/image_test.py
@@ -6,7 +6,7 @@
 
 import unittest
 
-from binman.image import Image
+from binmanu.image import Image
 from u_boot_pylib.test_util import capture_sys_output
 
 class TestImage(unittest.TestCase):
diff --git a/tools/binman/index.rst b/tools/binmanu/index.rst
similarity index 100%
rename from tools/binman/index.rst
rename to tools/binmanu/index.rst
diff --git a/tools/binman/main.py b/tools/binmanu/main.py
similarity index 88%
rename from tools/binman/main.py
rename to tools/binmanu/main.py
index eef17b7b55f..813343f2fda 100755
--- a/tools/binman/main.py
+++ b/tools/binmanu/main.py
@@ -33,7 +33,7 @@ sys.pycache_prefix = os.path.relpath(our_path, srctree)
 # in PYTHONPATH)
 sys.path.insert(2, our1_path)
 
-from binman import bintool
+from binmanu import bintool
 from u_boot_pylib import test_util
 
 # Bring in the libfdt module
@@ -42,8 +42,8 @@ sys.path.insert(2, os.path.join(srctree, 'scripts/dtc/pylibfdt'))
 sys.path.insert(2, os.path.join(srctree, 'build-sandbox/scripts/dtc/pylibfdt'))
 sys.path.insert(2, os.path.join(srctree, 'build-sandbox_spl/scripts/dtc/pylibfdt'))
 
-from binman import cmdline
-from binman import control
+from binmanu import cmdline
+from binmanu import control
 from u_boot_pylib import test_util
 
 def RunTests(debug, verbosity, processes, test_preserve_dirs, args, toolpath):
@@ -62,14 +62,14 @@ def RunTests(debug, verbosity, processes, test_preserve_dirs, args, toolpath):
             name to execute (as in 'binman test testSections', for example)
         toolpath: List of paths to use for tools
     """
-    from binman import bintool_test
-    from binman import cbfs_util_test
-    from binman import elf_test
-    from binman import entry_test
-    from binman import fdt_test
-    from binman import fip_util_test
-    from binman import ftest
-    from binman import image_test
+    from binmanu import bintool_test
+    from binmanu import cbfs_util_test
+    from binmanu import elf_test
+    from binmanu import entry_test
+    from binmanu import fdt_test
+    from binmanu import fip_util_test
+    from binmanu import ftest
+    from binmanu import image_test
     import doctest
 
     test_name = args and args[0] or None
@@ -85,7 +85,7 @@ def RunTests(debug, verbosity, processes, test_preserve_dirs, args, toolpath):
 
     return (0 if result.wasSuccessful() else 1)
 
-def RunTestCoverage(toolpath):
+def RunTestCoverage(toolpath, build_dir):
     """Run the tests and check that we get 100% coverage"""
     glob_list = control.GetEntryModules(False)
     all_set = set([os.path.splitext(os.path.basename(item))[0]
@@ -94,10 +94,10 @@ def RunTestCoverage(toolpath):
     if toolpath:
         for path in toolpath:
             extra_args += ' --toolpath %s' % path
-    test_util.run_test_coverage('tools/binman/binman', None,
+    test_util.run_test_coverage('tools/binmanu/binman', None,
             ['*test*', '*main.py', 'tools/patman/*', 'tools/dtoc/*',
              'tools/u_boot_pylib/*'],
-            args.build_dir, all_set, extra_args or None)
+            build_dir, all_set, extra_args or None)
 
 def RunBinman(args):
     """Main entry point to binman once arguments are parsed
@@ -117,7 +117,7 @@ def RunBinman(args):
 
     if args.cmd == 'test':
         if args.test_coverage:
-            RunTestCoverage(args.toolpath)
+            RunTestCoverage(args.toolpath, args.build_dir)
         else:
             ret_code = RunTests(args.debug, args.verbosity, args.processes,
                                 args.test_preserve_dirs, args.tests,
diff --git a/tools/binman/missing-blob-help b/tools/binmanu/missing-blob-help
similarity index 100%
rename from tools/binman/missing-blob-help
rename to tools/binmanu/missing-blob-help
diff --git a/tools/binman/setup.py b/tools/binmanu/setup.py
similarity index 100%
rename from tools/binman/setup.py
rename to tools/binmanu/setup.py
diff --git a/tools/binman/state.py b/tools/binmanu/state.py
similarity index 100%
rename from tools/binman/state.py
rename to tools/binmanu/state.py
diff --git a/tools/binman/test/001_invalid.dts b/tools/binmanu/test/001_invalid.dts
similarity index 100%
rename from tools/binman/test/001_invalid.dts
rename to tools/binmanu/test/001_invalid.dts
diff --git a/tools/binman/test/002_missing_node.dts b/tools/binmanu/test/002_missing_node.dts
similarity index 100%
rename from tools/binman/test/002_missing_node.dts
rename to tools/binmanu/test/002_missing_node.dts
diff --git a/tools/binman/test/003_empty.dts b/tools/binmanu/test/003_empty.dts
similarity index 100%
rename from tools/binman/test/003_empty.dts
rename to tools/binmanu/test/003_empty.dts
diff --git a/tools/binman/test/004_invalid_entry.dts b/tools/binmanu/test/004_invalid_entry.dts
similarity index 100%
rename from tools/binman/test/004_invalid_entry.dts
rename to tools/binmanu/test/004_invalid_entry.dts
diff --git a/tools/binman/test/005_simple.dts b/tools/binmanu/test/005_simple.dts
similarity index 100%
rename from tools/binman/test/005_simple.dts
rename to tools/binmanu/test/005_simple.dts
diff --git a/tools/binman/test/006_dual_image.dts b/tools/binmanu/test/006_dual_image.dts
similarity index 100%
rename from tools/binman/test/006_dual_image.dts
rename to tools/binmanu/test/006_dual_image.dts
diff --git a/tools/binman/test/007_bad_align.dts b/tools/binmanu/test/007_bad_align.dts
similarity index 100%
rename from tools/binman/test/007_bad_align.dts
rename to tools/binmanu/test/007_bad_align.dts
diff --git a/tools/binman/test/008_pack.dts b/tools/binmanu/test/008_pack.dts
similarity index 100%
rename from tools/binman/test/008_pack.dts
rename to tools/binmanu/test/008_pack.dts
diff --git a/tools/binman/test/009_pack_extra.dts b/tools/binmanu/test/009_pack_extra.dts
similarity index 100%
rename from tools/binman/test/009_pack_extra.dts
rename to tools/binmanu/test/009_pack_extra.dts
diff --git a/tools/binman/test/010_pack_align_power2.dts b/tools/binmanu/test/010_pack_align_power2.dts
similarity index 100%
rename from tools/binman/test/010_pack_align_power2.dts
rename to tools/binmanu/test/010_pack_align_power2.dts
diff --git a/tools/binman/test/011_pack_align_size_power2.dts b/tools/binmanu/test/011_pack_align_size_power2.dts
similarity index 100%
rename from tools/binman/test/011_pack_align_size_power2.dts
rename to tools/binmanu/test/011_pack_align_size_power2.dts
diff --git a/tools/binman/test/012_pack_inv_align.dts b/tools/binmanu/test/012_pack_inv_align.dts
similarity index 100%
rename from tools/binman/test/012_pack_inv_align.dts
rename to tools/binmanu/test/012_pack_inv_align.dts
diff --git a/tools/binman/test/013_pack_inv_size_align.dts b/tools/binmanu/test/013_pack_inv_size_align.dts
similarity index 100%
rename from tools/binman/test/013_pack_inv_size_align.dts
rename to tools/binmanu/test/013_pack_inv_size_align.dts
diff --git a/tools/binman/test/014_pack_overlap.dts b/tools/binmanu/test/014_pack_overlap.dts
similarity index 100%
rename from tools/binman/test/014_pack_overlap.dts
rename to tools/binmanu/test/014_pack_overlap.dts
diff --git a/tools/binman/test/015_pack_overflow.dts b/tools/binmanu/test/015_pack_overflow.dts
similarity index 100%
rename from tools/binman/test/015_pack_overflow.dts
rename to tools/binmanu/test/015_pack_overflow.dts
diff --git a/tools/binman/test/016_pack_image_overflow.dts b/tools/binmanu/test/016_pack_image_overflow.dts
similarity index 100%
rename from tools/binman/test/016_pack_image_overflow.dts
rename to tools/binmanu/test/016_pack_image_overflow.dts
diff --git a/tools/binman/test/017_pack_image_size.dts b/tools/binmanu/test/017_pack_image_size.dts
similarity index 100%
rename from tools/binman/test/017_pack_image_size.dts
rename to tools/binmanu/test/017_pack_image_size.dts
diff --git a/tools/binman/test/018_pack_image_align.dts b/tools/binmanu/test/018_pack_image_align.dts
similarity index 100%
rename from tools/binman/test/018_pack_image_align.dts
rename to tools/binmanu/test/018_pack_image_align.dts
diff --git a/tools/binman/test/019_pack_inv_image_align.dts b/tools/binmanu/test/019_pack_inv_image_align.dts
similarity index 100%
rename from tools/binman/test/019_pack_inv_image_align.dts
rename to tools/binmanu/test/019_pack_inv_image_align.dts
diff --git a/tools/binman/test/020_pack_inv_image_align_power2.dts b/tools/binmanu/test/020_pack_inv_image_align_power2.dts
similarity index 100%
rename from tools/binman/test/020_pack_inv_image_align_power2.dts
rename to tools/binmanu/test/020_pack_inv_image_align_power2.dts
diff --git a/tools/binman/test/021_image_pad.dts b/tools/binmanu/test/021_image_pad.dts
similarity index 100%
rename from tools/binman/test/021_image_pad.dts
rename to tools/binmanu/test/021_image_pad.dts
diff --git a/tools/binman/test/022_image_name.dts b/tools/binmanu/test/022_image_name.dts
similarity index 100%
rename from tools/binman/test/022_image_name.dts
rename to tools/binmanu/test/022_image_name.dts
diff --git a/tools/binman/test/023_blob.dts b/tools/binmanu/test/023_blob.dts
similarity index 100%
rename from tools/binman/test/023_blob.dts
rename to tools/binmanu/test/023_blob.dts
diff --git a/tools/binman/test/024_sorted.dts b/tools/binmanu/test/024_sorted.dts
similarity index 100%
rename from tools/binman/test/024_sorted.dts
rename to tools/binmanu/test/024_sorted.dts
diff --git a/tools/binman/test/025_pack_zero_size.dts b/tools/binmanu/test/025_pack_zero_size.dts
similarity index 100%
rename from tools/binman/test/025_pack_zero_size.dts
rename to tools/binmanu/test/025_pack_zero_size.dts
diff --git a/tools/binman/test/026_pack_u_boot_dtb.dts b/tools/binmanu/test/026_pack_u_boot_dtb.dts
similarity index 100%
rename from tools/binman/test/026_pack_u_boot_dtb.dts
rename to tools/binmanu/test/026_pack_u_boot_dtb.dts
diff --git a/tools/binman/test/027_pack_4gb_no_size.dts b/tools/binmanu/test/027_pack_4gb_no_size.dts
similarity index 100%
rename from tools/binman/test/027_pack_4gb_no_size.dts
rename to tools/binmanu/test/027_pack_4gb_no_size.dts
diff --git a/tools/binman/test/028_pack_4gb_outside.dts b/tools/binmanu/test/028_pack_4gb_outside.dts
similarity index 100%
rename from tools/binman/test/028_pack_4gb_outside.dts
rename to tools/binmanu/test/028_pack_4gb_outside.dts
diff --git a/tools/binman/test/029_x86_rom.dts b/tools/binmanu/test/029_x86_rom.dts
similarity index 100%
rename from tools/binman/test/029_x86_rom.dts
rename to tools/binmanu/test/029_x86_rom.dts
diff --git a/tools/binman/test/030_x86_rom_me_no_desc.dts b/tools/binmanu/test/030_x86_rom_me_no_desc.dts
similarity index 100%
rename from tools/binman/test/030_x86_rom_me_no_desc.dts
rename to tools/binmanu/test/030_x86_rom_me_no_desc.dts
diff --git a/tools/binman/test/031_x86_rom_me.dts b/tools/binmanu/test/031_x86_rom_me.dts
similarity index 100%
rename from tools/binman/test/031_x86_rom_me.dts
rename to tools/binmanu/test/031_x86_rom_me.dts
diff --git a/tools/binman/test/032_intel_vga.dts b/tools/binmanu/test/032_intel_vga.dts
similarity index 100%
rename from tools/binman/test/032_intel_vga.dts
rename to tools/binmanu/test/032_intel_vga.dts
diff --git a/tools/binman/test/033_x86_start16.dts b/tools/binmanu/test/033_x86_start16.dts
similarity index 100%
rename from tools/binman/test/033_x86_start16.dts
rename to tools/binmanu/test/033_x86_start16.dts
diff --git a/tools/binman/test/034_x86_ucode.dts b/tools/binmanu/test/034_x86_ucode.dts
similarity index 100%
rename from tools/binman/test/034_x86_ucode.dts
rename to tools/binmanu/test/034_x86_ucode.dts
diff --git a/tools/binman/test/035_x86_single_ucode.dts b/tools/binmanu/test/035_x86_single_ucode.dts
similarity index 100%
rename from tools/binman/test/035_x86_single_ucode.dts
rename to tools/binmanu/test/035_x86_single_ucode.dts
diff --git a/tools/binman/test/036_u_boot_img.dts b/tools/binmanu/test/036_u_boot_img.dts
similarity index 100%
rename from tools/binman/test/036_u_boot_img.dts
rename to tools/binmanu/test/036_u_boot_img.dts
diff --git a/tools/binman/test/037_x86_no_ucode.dts b/tools/binmanu/test/037_x86_no_ucode.dts
similarity index 100%
rename from tools/binman/test/037_x86_no_ucode.dts
rename to tools/binmanu/test/037_x86_no_ucode.dts
diff --git a/tools/binman/test/038_x86_ucode_missing_node.dts b/tools/binmanu/test/038_x86_ucode_missing_node.dts
similarity index 100%
rename from tools/binman/test/038_x86_ucode_missing_node.dts
rename to tools/binmanu/test/038_x86_ucode_missing_node.dts
diff --git a/tools/binman/test/039_x86_ucode_missing_node2.dts b/tools/binmanu/test/039_x86_ucode_missing_node2.dts
similarity index 100%
rename from tools/binman/test/039_x86_ucode_missing_node2.dts
rename to tools/binmanu/test/039_x86_ucode_missing_node2.dts
diff --git a/tools/binman/test/040_x86_ucode_not_in_image.dts b/tools/binmanu/test/040_x86_ucode_not_in_image.dts
similarity index 100%
rename from tools/binman/test/040_x86_ucode_not_in_image.dts
rename to tools/binmanu/test/040_x86_ucode_not_in_image.dts
diff --git a/tools/binman/test/041_unknown_pos_size.dts b/tools/binmanu/test/041_unknown_pos_size.dts
similarity index 100%
rename from tools/binman/test/041_unknown_pos_size.dts
rename to tools/binmanu/test/041_unknown_pos_size.dts
diff --git a/tools/binman/test/042_intel_fsp.dts b/tools/binmanu/test/042_intel_fsp.dts
similarity index 100%
rename from tools/binman/test/042_intel_fsp.dts
rename to tools/binmanu/test/042_intel_fsp.dts
diff --git a/tools/binman/test/043_intel_cmc.dts b/tools/binmanu/test/043_intel_cmc.dts
similarity index 100%
rename from tools/binman/test/043_intel_cmc.dts
rename to tools/binmanu/test/043_intel_cmc.dts
diff --git a/tools/binman/test/044_x86_optional_ucode.dts b/tools/binmanu/test/044_x86_optional_ucode.dts
similarity index 100%
rename from tools/binman/test/044_x86_optional_ucode.dts
rename to tools/binmanu/test/044_x86_optional_ucode.dts
diff --git a/tools/binman/test/045_prop_test.dts b/tools/binmanu/test/045_prop_test.dts
similarity index 100%
rename from tools/binman/test/045_prop_test.dts
rename to tools/binmanu/test/045_prop_test.dts
diff --git a/tools/binman/test/046_intel_vbt.dts b/tools/binmanu/test/046_intel_vbt.dts
similarity index 100%
rename from tools/binman/test/046_intel_vbt.dts
rename to tools/binmanu/test/046_intel_vbt.dts
diff --git a/tools/binman/test/047_spl_bss_pad.dts b/tools/binmanu/test/047_spl_bss_pad.dts
similarity index 100%
rename from tools/binman/test/047_spl_bss_pad.dts
rename to tools/binmanu/test/047_spl_bss_pad.dts
diff --git a/tools/binman/test/048_x86_start16_spl.dts b/tools/binmanu/test/048_x86_start16_spl.dts
similarity index 100%
rename from tools/binman/test/048_x86_start16_spl.dts
rename to tools/binmanu/test/048_x86_start16_spl.dts
diff --git a/tools/binman/test/049_x86_ucode_spl.dts b/tools/binmanu/test/049_x86_ucode_spl.dts
similarity index 100%
rename from tools/binman/test/049_x86_ucode_spl.dts
rename to tools/binmanu/test/049_x86_ucode_spl.dts
diff --git a/tools/binman/test/050_intel_mrc.dts b/tools/binmanu/test/050_intel_mrc.dts
similarity index 100%
rename from tools/binman/test/050_intel_mrc.dts
rename to tools/binmanu/test/050_intel_mrc.dts
diff --git a/tools/binman/test/051_u_boot_spl_dtb.dts b/tools/binmanu/test/051_u_boot_spl_dtb.dts
similarity index 100%
rename from tools/binman/test/051_u_boot_spl_dtb.dts
rename to tools/binmanu/test/051_u_boot_spl_dtb.dts
diff --git a/tools/binman/test/052_u_boot_spl_nodtb.dts b/tools/binmanu/test/052_u_boot_spl_nodtb.dts
similarity index 100%
rename from tools/binman/test/052_u_boot_spl_nodtb.dts
rename to tools/binmanu/test/052_u_boot_spl_nodtb.dts
diff --git a/tools/binman/test/053_symbols.dts b/tools/binmanu/test/053_symbols.dts
similarity index 100%
rename from tools/binman/test/053_symbols.dts
rename to tools/binmanu/test/053_symbols.dts
diff --git a/tools/binman/test/054_unit_address.dts b/tools/binmanu/test/054_unit_address.dts
similarity index 100%
rename from tools/binman/test/054_unit_address.dts
rename to tools/binmanu/test/054_unit_address.dts
diff --git a/tools/binman/test/055_sections.dts b/tools/binmanu/test/055_sections.dts
similarity index 100%
rename from tools/binman/test/055_sections.dts
rename to tools/binmanu/test/055_sections.dts
diff --git a/tools/binman/test/056_name_prefix.dts b/tools/binmanu/test/056_name_prefix.dts
similarity index 100%
rename from tools/binman/test/056_name_prefix.dts
rename to tools/binmanu/test/056_name_prefix.dts
diff --git a/tools/binman/test/057_unknown_contents.dts b/tools/binmanu/test/057_unknown_contents.dts
similarity index 100%
rename from tools/binman/test/057_unknown_contents.dts
rename to tools/binmanu/test/057_unknown_contents.dts
diff --git a/tools/binman/test/058_x86_ucode_spl_needs_retry.dts b/tools/binmanu/test/058_x86_ucode_spl_needs_retry.dts
similarity index 100%
rename from tools/binman/test/058_x86_ucode_spl_needs_retry.dts
rename to tools/binmanu/test/058_x86_ucode_spl_needs_retry.dts
diff --git a/tools/binman/test/059_change_size.dts b/tools/binmanu/test/059_change_size.dts
similarity index 100%
rename from tools/binman/test/059_change_size.dts
rename to tools/binmanu/test/059_change_size.dts
diff --git a/tools/binman/test/060_fdt_update.dts b/tools/binmanu/test/060_fdt_update.dts
similarity index 100%
rename from tools/binman/test/060_fdt_update.dts
rename to tools/binmanu/test/060_fdt_update.dts
diff --git a/tools/binman/test/061_fdt_update_bad.dts b/tools/binmanu/test/061_fdt_update_bad.dts
similarity index 100%
rename from tools/binman/test/061_fdt_update_bad.dts
rename to tools/binmanu/test/061_fdt_update_bad.dts
diff --git a/tools/binman/test/062_entry_args.dts b/tools/binmanu/test/062_entry_args.dts
similarity index 100%
rename from tools/binman/test/062_entry_args.dts
rename to tools/binmanu/test/062_entry_args.dts
diff --git a/tools/binman/test/063_entry_args_missing.dts b/tools/binmanu/test/063_entry_args_missing.dts
similarity index 100%
rename from tools/binman/test/063_entry_args_missing.dts
rename to tools/binmanu/test/063_entry_args_missing.dts
diff --git a/tools/binman/test/064_entry_args_required.dts b/tools/binmanu/test/064_entry_args_required.dts
similarity index 100%
rename from tools/binman/test/064_entry_args_required.dts
rename to tools/binmanu/test/064_entry_args_required.dts
diff --git a/tools/binman/test/065_entry_args_unknown_datatype.dts b/tools/binmanu/test/065_entry_args_unknown_datatype.dts
similarity index 100%
rename from tools/binman/test/065_entry_args_unknown_datatype.dts
rename to tools/binmanu/test/065_entry_args_unknown_datatype.dts
diff --git a/tools/binman/test/066_text.dts b/tools/binmanu/test/066_text.dts
similarity index 100%
rename from tools/binman/test/066_text.dts
rename to tools/binmanu/test/066_text.dts
diff --git a/tools/binman/test/067_fmap.dts b/tools/binmanu/test/067_fmap.dts
similarity index 100%
rename from tools/binman/test/067_fmap.dts
rename to tools/binmanu/test/067_fmap.dts
diff --git a/tools/binman/test/068_blob_named_by_arg.dts b/tools/binmanu/test/068_blob_named_by_arg.dts
similarity index 100%
rename from tools/binman/test/068_blob_named_by_arg.dts
rename to tools/binmanu/test/068_blob_named_by_arg.dts
diff --git a/tools/binman/test/069_fill.dts b/tools/binmanu/test/069_fill.dts
similarity index 100%
rename from tools/binman/test/069_fill.dts
rename to tools/binmanu/test/069_fill.dts
diff --git a/tools/binman/test/070_fill_no_size.dts b/tools/binmanu/test/070_fill_no_size.dts
similarity index 100%
rename from tools/binman/test/070_fill_no_size.dts
rename to tools/binmanu/test/070_fill_no_size.dts
diff --git a/tools/binman/test/071_gbb.dts b/tools/binmanu/test/071_gbb.dts
similarity index 100%
rename from tools/binman/test/071_gbb.dts
rename to tools/binmanu/test/071_gbb.dts
diff --git a/tools/binman/test/072_gbb_too_small.dts b/tools/binmanu/test/072_gbb_too_small.dts
similarity index 100%
rename from tools/binman/test/072_gbb_too_small.dts
rename to tools/binmanu/test/072_gbb_too_small.dts
diff --git a/tools/binman/test/073_gbb_no_size.dts b/tools/binmanu/test/073_gbb_no_size.dts
similarity index 100%
rename from tools/binman/test/073_gbb_no_size.dts
rename to tools/binmanu/test/073_gbb_no_size.dts
diff --git a/tools/binman/test/074_vblock.dts b/tools/binmanu/test/074_vblock.dts
similarity index 100%
rename from tools/binman/test/074_vblock.dts
rename to tools/binmanu/test/074_vblock.dts
diff --git a/tools/binman/test/075_vblock_no_content.dts b/tools/binmanu/test/075_vblock_no_content.dts
similarity index 100%
rename from tools/binman/test/075_vblock_no_content.dts
rename to tools/binmanu/test/075_vblock_no_content.dts
diff --git a/tools/binman/test/076_vblock_bad_phandle.dts b/tools/binmanu/test/076_vblock_bad_phandle.dts
similarity index 100%
rename from tools/binman/test/076_vblock_bad_phandle.dts
rename to tools/binmanu/test/076_vblock_bad_phandle.dts
diff --git a/tools/binman/test/077_vblock_bad_entry.dts b/tools/binmanu/test/077_vblock_bad_entry.dts
similarity index 100%
rename from tools/binman/test/077_vblock_bad_entry.dts
rename to tools/binmanu/test/077_vblock_bad_entry.dts
diff --git a/tools/binman/test/078_u_boot_tpl.dts b/tools/binmanu/test/078_u_boot_tpl.dts
similarity index 100%
rename from tools/binman/test/078_u_boot_tpl.dts
rename to tools/binmanu/test/078_u_boot_tpl.dts
diff --git a/tools/binman/test/079_uses_pos.dts b/tools/binmanu/test/079_uses_pos.dts
similarity index 100%
rename from tools/binman/test/079_uses_pos.dts
rename to tools/binmanu/test/079_uses_pos.dts
diff --git a/tools/binman/test/080_fill_empty.dts b/tools/binmanu/test/080_fill_empty.dts
similarity index 100%
rename from tools/binman/test/080_fill_empty.dts
rename to tools/binmanu/test/080_fill_empty.dts
diff --git a/tools/binman/test/081_x86_start16_tpl.dts b/tools/binmanu/test/081_x86_start16_tpl.dts
similarity index 100%
rename from tools/binman/test/081_x86_start16_tpl.dts
rename to tools/binmanu/test/081_x86_start16_tpl.dts
diff --git a/tools/binman/test/082_fdt_update_all.dts b/tools/binmanu/test/082_fdt_update_all.dts
similarity index 100%
rename from tools/binman/test/082_fdt_update_all.dts
rename to tools/binmanu/test/082_fdt_update_all.dts
diff --git a/tools/binman/test/083_compress.dts b/tools/binmanu/test/083_compress.dts
similarity index 100%
rename from tools/binman/test/083_compress.dts
rename to tools/binmanu/test/083_compress.dts
diff --git a/tools/binman/test/084_files.dts b/tools/binmanu/test/084_files.dts
similarity index 100%
rename from tools/binman/test/084_files.dts
rename to tools/binmanu/test/084_files.dts
diff --git a/tools/binman/test/085_files_compress.dts b/tools/binmanu/test/085_files_compress.dts
similarity index 100%
rename from tools/binman/test/085_files_compress.dts
rename to tools/binmanu/test/085_files_compress.dts
diff --git a/tools/binman/test/086_files_none.dts b/tools/binmanu/test/086_files_none.dts
similarity index 100%
rename from tools/binman/test/086_files_none.dts
rename to tools/binmanu/test/086_files_none.dts
diff --git a/tools/binman/test/087_files_no_pattern.dts b/tools/binmanu/test/087_files_no_pattern.dts
similarity index 100%
rename from tools/binman/test/087_files_no_pattern.dts
rename to tools/binmanu/test/087_files_no_pattern.dts
diff --git a/tools/binman/test/088_extend_size.dts b/tools/binmanu/test/088_extend_size.dts
similarity index 100%
rename from tools/binman/test/088_extend_size.dts
rename to tools/binmanu/test/088_extend_size.dts
diff --git a/tools/binman/test/089_extend_size_bad.dts b/tools/binmanu/test/089_extend_size_bad.dts
similarity index 100%
rename from tools/binman/test/089_extend_size_bad.dts
rename to tools/binmanu/test/089_extend_size_bad.dts
diff --git a/tools/binman/test/090_hash.dts b/tools/binmanu/test/090_hash.dts
similarity index 100%
rename from tools/binman/test/090_hash.dts
rename to tools/binmanu/test/090_hash.dts
diff --git a/tools/binman/test/091_hash_no_algo.dts b/tools/binmanu/test/091_hash_no_algo.dts
similarity index 100%
rename from tools/binman/test/091_hash_no_algo.dts
rename to tools/binmanu/test/091_hash_no_algo.dts
diff --git a/tools/binman/test/092_hash_bad_algo.dts b/tools/binmanu/test/092_hash_bad_algo.dts
similarity index 100%
rename from tools/binman/test/092_hash_bad_algo.dts
rename to tools/binmanu/test/092_hash_bad_algo.dts
diff --git a/tools/binman/test/093_x86_tpl_ucode.dts b/tools/binmanu/test/093_x86_tpl_ucode.dts
similarity index 100%
rename from tools/binman/test/093_x86_tpl_ucode.dts
rename to tools/binmanu/test/093_x86_tpl_ucode.dts
diff --git a/tools/binman/test/094_fmap_x86.dts b/tools/binmanu/test/094_fmap_x86.dts
similarity index 100%
rename from tools/binman/test/094_fmap_x86.dts
rename to tools/binmanu/test/094_fmap_x86.dts
diff --git a/tools/binman/test/095_fmap_x86_section.dts b/tools/binmanu/test/095_fmap_x86_section.dts
similarity index 100%
rename from tools/binman/test/095_fmap_x86_section.dts
rename to tools/binmanu/test/095_fmap_x86_section.dts
diff --git a/tools/binman/test/096_elf.dts b/tools/binmanu/test/096_elf.dts
similarity index 100%
rename from tools/binman/test/096_elf.dts
rename to tools/binmanu/test/096_elf.dts
diff --git a/tools/binman/test/097_elf_strip.dts b/tools/binmanu/test/097_elf_strip.dts
similarity index 100%
rename from tools/binman/test/097_elf_strip.dts
rename to tools/binmanu/test/097_elf_strip.dts
diff --git a/tools/binman/test/098_4gb_and_skip_at_start_together.dts b/tools/binmanu/test/098_4gb_and_skip_at_start_together.dts
similarity index 100%
rename from tools/binman/test/098_4gb_and_skip_at_start_together.dts
rename to tools/binmanu/test/098_4gb_and_skip_at_start_together.dts
diff --git a/tools/binman/test/099_hash_section.dts b/tools/binmanu/test/099_hash_section.dts
similarity index 100%
rename from tools/binman/test/099_hash_section.dts
rename to tools/binmanu/test/099_hash_section.dts
diff --git a/tools/binman/test/100_intel_refcode.dts b/tools/binmanu/test/100_intel_refcode.dts
similarity index 100%
rename from tools/binman/test/100_intel_refcode.dts
rename to tools/binmanu/test/100_intel_refcode.dts
diff --git a/tools/binman/test/101_sections_offset.dts b/tools/binmanu/test/101_sections_offset.dts
similarity index 100%
rename from tools/binman/test/101_sections_offset.dts
rename to tools/binmanu/test/101_sections_offset.dts
diff --git a/tools/binman/test/102_cbfs_raw.dts b/tools/binmanu/test/102_cbfs_raw.dts
similarity index 100%
rename from tools/binman/test/102_cbfs_raw.dts
rename to tools/binmanu/test/102_cbfs_raw.dts
diff --git a/tools/binman/test/103_cbfs_raw_ppc.dts b/tools/binmanu/test/103_cbfs_raw_ppc.dts
similarity index 100%
rename from tools/binman/test/103_cbfs_raw_ppc.dts
rename to tools/binmanu/test/103_cbfs_raw_ppc.dts
diff --git a/tools/binman/test/104_cbfs_stage.dts b/tools/binmanu/test/104_cbfs_stage.dts
similarity index 100%
rename from tools/binman/test/104_cbfs_stage.dts
rename to tools/binmanu/test/104_cbfs_stage.dts
diff --git a/tools/binman/test/105_cbfs_raw_compress.dts b/tools/binmanu/test/105_cbfs_raw_compress.dts
similarity index 100%
rename from tools/binman/test/105_cbfs_raw_compress.dts
rename to tools/binmanu/test/105_cbfs_raw_compress.dts
diff --git a/tools/binman/test/106_cbfs_bad_arch.dts b/tools/binmanu/test/106_cbfs_bad_arch.dts
similarity index 100%
rename from tools/binman/test/106_cbfs_bad_arch.dts
rename to tools/binmanu/test/106_cbfs_bad_arch.dts
diff --git a/tools/binman/test/107_cbfs_no_size.dts b/tools/binmanu/test/107_cbfs_no_size.dts
similarity index 100%
rename from tools/binman/test/107_cbfs_no_size.dts
rename to tools/binmanu/test/107_cbfs_no_size.dts
diff --git a/tools/binman/test/108_cbfs_no_contents.dts b/tools/binmanu/test/108_cbfs_no_contents.dts
similarity index 100%
rename from tools/binman/test/108_cbfs_no_contents.dts
rename to tools/binmanu/test/108_cbfs_no_contents.dts
diff --git a/tools/binman/test/109_cbfs_bad_compress.dts b/tools/binmanu/test/109_cbfs_bad_compress.dts
similarity index 100%
rename from tools/binman/test/109_cbfs_bad_compress.dts
rename to tools/binmanu/test/109_cbfs_bad_compress.dts
diff --git a/tools/binman/test/110_cbfs_name.dts b/tools/binmanu/test/110_cbfs_name.dts
similarity index 100%
rename from tools/binman/test/110_cbfs_name.dts
rename to tools/binmanu/test/110_cbfs_name.dts
diff --git a/tools/binman/test/111_x86_rom_ifwi.dts b/tools/binmanu/test/111_x86_rom_ifwi.dts
similarity index 100%
rename from tools/binman/test/111_x86_rom_ifwi.dts
rename to tools/binmanu/test/111_x86_rom_ifwi.dts
diff --git a/tools/binman/test/112_x86_rom_ifwi_nodesc.dts b/tools/binmanu/test/112_x86_rom_ifwi_nodesc.dts
similarity index 100%
rename from tools/binman/test/112_x86_rom_ifwi_nodesc.dts
rename to tools/binmanu/test/112_x86_rom_ifwi_nodesc.dts
diff --git a/tools/binman/test/113_x86_rom_ifwi_nodata.dts b/tools/binmanu/test/113_x86_rom_ifwi_nodata.dts
similarity index 100%
rename from tools/binman/test/113_x86_rom_ifwi_nodata.dts
rename to tools/binmanu/test/113_x86_rom_ifwi_nodata.dts
diff --git a/tools/binman/test/114_cbfs_offset.dts b/tools/binmanu/test/114_cbfs_offset.dts
similarity index 100%
rename from tools/binman/test/114_cbfs_offset.dts
rename to tools/binmanu/test/114_cbfs_offset.dts
diff --git a/tools/binman/test/115_fdtmap.dts b/tools/binmanu/test/115_fdtmap.dts
similarity index 100%
rename from tools/binman/test/115_fdtmap.dts
rename to tools/binmanu/test/115_fdtmap.dts
diff --git a/tools/binman/test/116_fdtmap_hdr.dts b/tools/binmanu/test/116_fdtmap_hdr.dts
similarity index 100%
rename from tools/binman/test/116_fdtmap_hdr.dts
rename to tools/binmanu/test/116_fdtmap_hdr.dts
diff --git a/tools/binman/test/117_fdtmap_hdr_start.dts b/tools/binmanu/test/117_fdtmap_hdr_start.dts
similarity index 100%
rename from tools/binman/test/117_fdtmap_hdr_start.dts
rename to tools/binmanu/test/117_fdtmap_hdr_start.dts
diff --git a/tools/binman/test/118_fdtmap_hdr_pos.dts b/tools/binmanu/test/118_fdtmap_hdr_pos.dts
similarity index 100%
rename from tools/binman/test/118_fdtmap_hdr_pos.dts
rename to tools/binmanu/test/118_fdtmap_hdr_pos.dts
diff --git a/tools/binman/test/119_fdtmap_hdr_missing.dts b/tools/binmanu/test/119_fdtmap_hdr_missing.dts
similarity index 100%
rename from tools/binman/test/119_fdtmap_hdr_missing.dts
rename to tools/binmanu/test/119_fdtmap_hdr_missing.dts
diff --git a/tools/binman/test/120_hdr_no_location.dts b/tools/binmanu/test/120_hdr_no_location.dts
similarity index 100%
rename from tools/binman/test/120_hdr_no_location.dts
rename to tools/binmanu/test/120_hdr_no_location.dts
diff --git a/tools/binman/test/121_entry_extend.dts b/tools/binmanu/test/121_entry_extend.dts
similarity index 100%
rename from tools/binman/test/121_entry_extend.dts
rename to tools/binmanu/test/121_entry_extend.dts
diff --git a/tools/binman/test/122_entry_extend_twice.dts b/tools/binmanu/test/122_entry_extend_twice.dts
similarity index 100%
rename from tools/binman/test/122_entry_extend_twice.dts
rename to tools/binmanu/test/122_entry_extend_twice.dts
diff --git a/tools/binman/test/123_entry_extend_section.dts b/tools/binmanu/test/123_entry_extend_section.dts
similarity index 100%
rename from tools/binman/test/123_entry_extend_section.dts
rename to tools/binmanu/test/123_entry_extend_section.dts
diff --git a/tools/binman/test/124_compress_dtb.dts b/tools/binmanu/test/124_compress_dtb.dts
similarity index 100%
rename from tools/binman/test/124_compress_dtb.dts
rename to tools/binmanu/test/124_compress_dtb.dts
diff --git a/tools/binman/test/125_cbfs_update.dts b/tools/binmanu/test/125_cbfs_update.dts
similarity index 100%
rename from tools/binman/test/125_cbfs_update.dts
rename to tools/binmanu/test/125_cbfs_update.dts
diff --git a/tools/binman/test/126_cbfs_bad_type.dts b/tools/binmanu/test/126_cbfs_bad_type.dts
similarity index 100%
rename from tools/binman/test/126_cbfs_bad_type.dts
rename to tools/binmanu/test/126_cbfs_bad_type.dts
diff --git a/tools/binman/test/127_list.dts b/tools/binmanu/test/127_list.dts
similarity index 100%
rename from tools/binman/test/127_list.dts
rename to tools/binmanu/test/127_list.dts
diff --git a/tools/binman/test/128_decode_image.dts b/tools/binmanu/test/128_decode_image.dts
similarity index 100%
rename from tools/binman/test/128_decode_image.dts
rename to tools/binmanu/test/128_decode_image.dts
diff --git a/tools/binman/test/129_decode_image_nohdr.dts b/tools/binmanu/test/129_decode_image_nohdr.dts
similarity index 100%
rename from tools/binman/test/129_decode_image_nohdr.dts
rename to tools/binmanu/test/129_decode_image_nohdr.dts
diff --git a/tools/binman/test/130_list_fdtmap.dts b/tools/binmanu/test/130_list_fdtmap.dts
similarity index 100%
rename from tools/binman/test/130_list_fdtmap.dts
rename to tools/binmanu/test/130_list_fdtmap.dts
diff --git a/tools/binman/test/131_pack_align_section.dts b/tools/binmanu/test/131_pack_align_section.dts
similarity index 100%
rename from tools/binman/test/131_pack_align_section.dts
rename to tools/binmanu/test/131_pack_align_section.dts
diff --git a/tools/binman/test/132_replace.dts b/tools/binmanu/test/132_replace.dts
similarity index 100%
rename from tools/binman/test/132_replace.dts
rename to tools/binmanu/test/132_replace.dts
diff --git a/tools/binman/test/133_replace_multi.dts b/tools/binmanu/test/133_replace_multi.dts
similarity index 100%
rename from tools/binman/test/133_replace_multi.dts
rename to tools/binmanu/test/133_replace_multi.dts
diff --git a/tools/binman/test/134_fdt_update_all_repack.dts b/tools/binmanu/test/134_fdt_update_all_repack.dts
similarity index 100%
rename from tools/binman/test/134_fdt_update_all_repack.dts
rename to tools/binmanu/test/134_fdt_update_all_repack.dts
diff --git a/tools/binman/test/135_fdtmap_hdr_middle.dts b/tools/binmanu/test/135_fdtmap_hdr_middle.dts
similarity index 100%
rename from tools/binman/test/135_fdtmap_hdr_middle.dts
rename to tools/binmanu/test/135_fdtmap_hdr_middle.dts
diff --git a/tools/binman/test/136_fdtmap_hdr_startbad.dts b/tools/binmanu/test/136_fdtmap_hdr_startbad.dts
similarity index 100%
rename from tools/binman/test/136_fdtmap_hdr_startbad.dts
rename to tools/binmanu/test/136_fdtmap_hdr_startbad.dts
diff --git a/tools/binman/test/137_fdtmap_hdr_endbad.dts b/tools/binmanu/test/137_fdtmap_hdr_endbad.dts
similarity index 100%
rename from tools/binman/test/137_fdtmap_hdr_endbad.dts
rename to tools/binmanu/test/137_fdtmap_hdr_endbad.dts
diff --git a/tools/binman/test/138_fdtmap_hdr_nosize.dts b/tools/binmanu/test/138_fdtmap_hdr_nosize.dts
similarity index 100%
rename from tools/binman/test/138_fdtmap_hdr_nosize.dts
rename to tools/binmanu/test/138_fdtmap_hdr_nosize.dts
diff --git a/tools/binman/test/139_replace_repack.dts b/tools/binmanu/test/139_replace_repack.dts
similarity index 100%
rename from tools/binman/test/139_replace_repack.dts
rename to tools/binmanu/test/139_replace_repack.dts
diff --git a/tools/binman/test/140_entry_shrink.dts b/tools/binmanu/test/140_entry_shrink.dts
similarity index 100%
rename from tools/binman/test/140_entry_shrink.dts
rename to tools/binmanu/test/140_entry_shrink.dts
diff --git a/tools/binman/test/141_descriptor_offset.dts b/tools/binmanu/test/141_descriptor_offset.dts
similarity index 100%
rename from tools/binman/test/141_descriptor_offset.dts
rename to tools/binmanu/test/141_descriptor_offset.dts
diff --git a/tools/binman/test/142_replace_cbfs.dts b/tools/binmanu/test/142_replace_cbfs.dts
similarity index 100%
rename from tools/binman/test/142_replace_cbfs.dts
rename to tools/binmanu/test/142_replace_cbfs.dts
diff --git a/tools/binman/test/143_replace_all.dts b/tools/binmanu/test/143_replace_all.dts
similarity index 100%
rename from tools/binman/test/143_replace_all.dts
rename to tools/binmanu/test/143_replace_all.dts
diff --git a/tools/binman/test/144_x86_reset16.dts b/tools/binmanu/test/144_x86_reset16.dts
similarity index 100%
rename from tools/binman/test/144_x86_reset16.dts
rename to tools/binmanu/test/144_x86_reset16.dts
diff --git a/tools/binman/test/145_x86_reset16_spl.dts b/tools/binmanu/test/145_x86_reset16_spl.dts
similarity index 100%
rename from tools/binman/test/145_x86_reset16_spl.dts
rename to tools/binmanu/test/145_x86_reset16_spl.dts
diff --git a/tools/binman/test/146_x86_reset16_tpl.dts b/tools/binmanu/test/146_x86_reset16_tpl.dts
similarity index 100%
rename from tools/binman/test/146_x86_reset16_tpl.dts
rename to tools/binmanu/test/146_x86_reset16_tpl.dts
diff --git a/tools/binman/test/147_intel_fit.dts b/tools/binmanu/test/147_intel_fit.dts
similarity index 100%
rename from tools/binman/test/147_intel_fit.dts
rename to tools/binmanu/test/147_intel_fit.dts
diff --git a/tools/binman/test/148_intel_fit_missing.dts b/tools/binmanu/test/148_intel_fit_missing.dts
similarity index 100%
rename from tools/binman/test/148_intel_fit_missing.dts
rename to tools/binmanu/test/148_intel_fit_missing.dts
diff --git a/tools/binman/test/149_symbols_tpl.dts b/tools/binmanu/test/149_symbols_tpl.dts
similarity index 100%
rename from tools/binman/test/149_symbols_tpl.dts
rename to tools/binmanu/test/149_symbols_tpl.dts
diff --git a/tools/binman/test/150_powerpc_mpc85xx_bootpg_resetvec.dts b/tools/binmanu/test/150_powerpc_mpc85xx_bootpg_resetvec.dts
similarity index 100%
rename from tools/binman/test/150_powerpc_mpc85xx_bootpg_resetvec.dts
rename to tools/binmanu/test/150_powerpc_mpc85xx_bootpg_resetvec.dts
diff --git a/tools/binman/test/151_x86_rom_ifwi_section.dts b/tools/binmanu/test/151_x86_rom_ifwi_section.dts
similarity index 100%
rename from tools/binman/test/151_x86_rom_ifwi_section.dts
rename to tools/binmanu/test/151_x86_rom_ifwi_section.dts
diff --git a/tools/binman/test/152_intel_fsp_m.dts b/tools/binmanu/test/152_intel_fsp_m.dts
similarity index 100%
rename from tools/binman/test/152_intel_fsp_m.dts
rename to tools/binmanu/test/152_intel_fsp_m.dts
diff --git a/tools/binman/test/153_intel_fsp_s.dts b/tools/binmanu/test/153_intel_fsp_s.dts
similarity index 100%
rename from tools/binman/test/153_intel_fsp_s.dts
rename to tools/binmanu/test/153_intel_fsp_s.dts
diff --git a/tools/binman/test/154_intel_fsp_t.dts b/tools/binmanu/test/154_intel_fsp_t.dts
similarity index 100%
rename from tools/binman/test/154_intel_fsp_t.dts
rename to tools/binmanu/test/154_intel_fsp_t.dts
diff --git a/tools/binman/test/155_symbols_tpl_x86.dts b/tools/binmanu/test/155_symbols_tpl_x86.dts
similarity index 100%
rename from tools/binman/test/155_symbols_tpl_x86.dts
rename to tools/binmanu/test/155_symbols_tpl_x86.dts
diff --git a/tools/binman/test/156_mkimage.dts b/tools/binmanu/test/156_mkimage.dts
similarity index 100%
rename from tools/binman/test/156_mkimage.dts
rename to tools/binmanu/test/156_mkimage.dts
diff --git a/tools/binman/test/157_blob_ext.dts b/tools/binmanu/test/157_blob_ext.dts
similarity index 100%
rename from tools/binman/test/157_blob_ext.dts
rename to tools/binmanu/test/157_blob_ext.dts
diff --git a/tools/binman/test/158_blob_ext_missing.dts b/tools/binmanu/test/158_blob_ext_missing.dts
similarity index 100%
rename from tools/binman/test/158_blob_ext_missing.dts
rename to tools/binmanu/test/158_blob_ext_missing.dts
diff --git a/tools/binman/test/159_blob_ext_missing_sect.dts b/tools/binmanu/test/159_blob_ext_missing_sect.dts
similarity index 100%
rename from tools/binman/test/159_blob_ext_missing_sect.dts
rename to tools/binmanu/test/159_blob_ext_missing_sect.dts
diff --git a/tools/binman/test/160_pack_overlap_zero.dts b/tools/binmanu/test/160_pack_overlap_zero.dts
similarity index 100%
rename from tools/binman/test/160_pack_overlap_zero.dts
rename to tools/binmanu/test/160_pack_overlap_zero.dts
diff --git a/tools/binman/test/161_fit.dts b/tools/binmanu/test/161_fit.dts
similarity index 100%
rename from tools/binman/test/161_fit.dts
rename to tools/binmanu/test/161_fit.dts
diff --git a/tools/binman/test/162_fit_external.dts b/tools/binmanu/test/162_fit_external.dts
similarity index 100%
rename from tools/binman/test/162_fit_external.dts
rename to tools/binmanu/test/162_fit_external.dts
diff --git a/tools/binman/test/163_x86_rom_me_empty.dts b/tools/binmanu/test/163_x86_rom_me_empty.dts
similarity index 100%
rename from tools/binman/test/163_x86_rom_me_empty.dts
rename to tools/binmanu/test/163_x86_rom_me_empty.dts
diff --git a/tools/binman/test/164_x86_rom_me_missing.dts b/tools/binmanu/test/164_x86_rom_me_missing.dts
similarity index 100%
rename from tools/binman/test/164_x86_rom_me_missing.dts
rename to tools/binmanu/test/164_x86_rom_me_missing.dts
diff --git a/tools/binman/test/165_section_ignore_hash_signature.dts b/tools/binmanu/test/165_section_ignore_hash_signature.dts
similarity index 100%
rename from tools/binman/test/165_section_ignore_hash_signature.dts
rename to tools/binmanu/test/165_section_ignore_hash_signature.dts
diff --git a/tools/binman/test/166_pad_in_sections.dts b/tools/binmanu/test/166_pad_in_sections.dts
similarity index 100%
rename from tools/binman/test/166_pad_in_sections.dts
rename to tools/binmanu/test/166_pad_in_sections.dts
diff --git a/tools/binman/test/167_fit_image_subentry_alignment.dts b/tools/binmanu/test/167_fit_image_subentry_alignment.dts
similarity index 100%
rename from tools/binman/test/167_fit_image_subentry_alignment.dts
rename to tools/binmanu/test/167_fit_image_subentry_alignment.dts
diff --git a/tools/binman/test/168_fit_missing_blob.dts b/tools/binmanu/test/168_fit_missing_blob.dts
similarity index 100%
rename from tools/binman/test/168_fit_missing_blob.dts
rename to tools/binmanu/test/168_fit_missing_blob.dts
diff --git a/tools/binman/test/169_atf_bl31.dts b/tools/binmanu/test/169_atf_bl31.dts
similarity index 100%
rename from tools/binman/test/169_atf_bl31.dts
rename to tools/binmanu/test/169_atf_bl31.dts
diff --git a/tools/binman/test/170_fit_fdt.dts b/tools/binmanu/test/170_fit_fdt.dts
similarity index 100%
rename from tools/binman/test/170_fit_fdt.dts
rename to tools/binmanu/test/170_fit_fdt.dts
diff --git a/tools/binman/test/171_fit_fdt_missing_prop.dts b/tools/binmanu/test/171_fit_fdt_missing_prop.dts
similarity index 100%
rename from tools/binman/test/171_fit_fdt_missing_prop.dts
rename to tools/binmanu/test/171_fit_fdt_missing_prop.dts
diff --git a/tools/binman/test/172_scp.dts b/tools/binmanu/test/172_scp.dts
similarity index 100%
rename from tools/binman/test/172_scp.dts
rename to tools/binmanu/test/172_scp.dts
diff --git a/tools/binman/test/173_missing_blob.dts b/tools/binmanu/test/173_missing_blob.dts
similarity index 100%
rename from tools/binman/test/173_missing_blob.dts
rename to tools/binmanu/test/173_missing_blob.dts
diff --git a/tools/binman/test/174_env.dts b/tools/binmanu/test/174_env.dts
similarity index 100%
rename from tools/binman/test/174_env.dts
rename to tools/binmanu/test/174_env.dts
diff --git a/tools/binman/test/175_env_no_size.dts b/tools/binmanu/test/175_env_no_size.dts
similarity index 100%
rename from tools/binman/test/175_env_no_size.dts
rename to tools/binmanu/test/175_env_no_size.dts
diff --git a/tools/binman/test/176_env_too_small.dts b/tools/binmanu/test/176_env_too_small.dts
similarity index 100%
rename from tools/binman/test/176_env_too_small.dts
rename to tools/binmanu/test/176_env_too_small.dts
diff --git a/tools/binman/test/177_skip_at_start.dts b/tools/binmanu/test/177_skip_at_start.dts
similarity index 100%
rename from tools/binman/test/177_skip_at_start.dts
rename to tools/binmanu/test/177_skip_at_start.dts
diff --git a/tools/binman/test/178_skip_at_start_pad.dts b/tools/binmanu/test/178_skip_at_start_pad.dts
similarity index 100%
rename from tools/binman/test/178_skip_at_start_pad.dts
rename to tools/binmanu/test/178_skip_at_start_pad.dts
diff --git a/tools/binman/test/179_skip_at_start_section_pad.dts b/tools/binmanu/test/179_skip_at_start_section_pad.dts
similarity index 100%
rename from tools/binman/test/179_skip_at_start_section_pad.dts
rename to tools/binmanu/test/179_skip_at_start_section_pad.dts
diff --git a/tools/binman/test/180_section_pad.dts b/tools/binmanu/test/180_section_pad.dts
similarity index 100%
rename from tools/binman/test/180_section_pad.dts
rename to tools/binmanu/test/180_section_pad.dts
diff --git a/tools/binman/test/181_section_align.dts b/tools/binmanu/test/181_section_align.dts
similarity index 100%
rename from tools/binman/test/181_section_align.dts
rename to tools/binmanu/test/181_section_align.dts
diff --git a/tools/binman/test/182_compress_image.dts b/tools/binmanu/test/182_compress_image.dts
similarity index 100%
rename from tools/binman/test/182_compress_image.dts
rename to tools/binmanu/test/182_compress_image.dts
diff --git a/tools/binman/test/183_compress_image_less.dts b/tools/binmanu/test/183_compress_image_less.dts
similarity index 100%
rename from tools/binman/test/183_compress_image_less.dts
rename to tools/binmanu/test/183_compress_image_less.dts
diff --git a/tools/binman/test/184_compress_section_size.dts b/tools/binmanu/test/184_compress_section_size.dts
similarity index 100%
rename from tools/binman/test/184_compress_section_size.dts
rename to tools/binmanu/test/184_compress_section_size.dts
diff --git a/tools/binman/test/185_compress_section.dts b/tools/binmanu/test/185_compress_section.dts
similarity index 100%
rename from tools/binman/test/185_compress_section.dts
rename to tools/binmanu/test/185_compress_section.dts
diff --git a/tools/binman/test/186_compress_extra.dts b/tools/binmanu/test/186_compress_extra.dts
similarity index 100%
rename from tools/binman/test/186_compress_extra.dts
rename to tools/binmanu/test/186_compress_extra.dts
diff --git a/tools/binman/test/187_symbols_sub.dts b/tools/binmanu/test/187_symbols_sub.dts
similarity index 100%
rename from tools/binman/test/187_symbols_sub.dts
rename to tools/binmanu/test/187_symbols_sub.dts
diff --git a/tools/binman/test/188_image_entryarg.dts b/tools/binmanu/test/188_image_entryarg.dts
similarity index 100%
rename from tools/binman/test/188_image_entryarg.dts
rename to tools/binmanu/test/188_image_entryarg.dts
diff --git a/tools/binman/test/189_vblock_content.dts b/tools/binmanu/test/189_vblock_content.dts
similarity index 100%
rename from tools/binman/test/189_vblock_content.dts
rename to tools/binmanu/test/189_vblock_content.dts
diff --git a/tools/binman/test/190_files_align.dts b/tools/binmanu/test/190_files_align.dts
similarity index 100%
rename from tools/binman/test/190_files_align.dts
rename to tools/binmanu/test/190_files_align.dts
diff --git a/tools/binman/test/191_read_image_skip.dts b/tools/binmanu/test/191_read_image_skip.dts
similarity index 100%
rename from tools/binman/test/191_read_image_skip.dts
rename to tools/binmanu/test/191_read_image_skip.dts
diff --git a/tools/binman/test/192_u_boot_tpl_nodtb.dts b/tools/binmanu/test/192_u_boot_tpl_nodtb.dts
similarity index 100%
rename from tools/binman/test/192_u_boot_tpl_nodtb.dts
rename to tools/binmanu/test/192_u_boot_tpl_nodtb.dts
diff --git a/tools/binman/test/193_tpl_bss_pad.dts b/tools/binmanu/test/193_tpl_bss_pad.dts
similarity index 100%
rename from tools/binman/test/193_tpl_bss_pad.dts
rename to tools/binmanu/test/193_tpl_bss_pad.dts
diff --git a/tools/binman/test/194_fdt_incl.dts b/tools/binmanu/test/194_fdt_incl.dts
similarity index 100%
rename from tools/binman/test/194_fdt_incl.dts
rename to tools/binmanu/test/194_fdt_incl.dts
diff --git a/tools/binman/test/195_fdt_incl_tpl.dts b/tools/binmanu/test/195_fdt_incl_tpl.dts
similarity index 100%
rename from tools/binman/test/195_fdt_incl_tpl.dts
rename to tools/binmanu/test/195_fdt_incl_tpl.dts
diff --git a/tools/binman/test/196_symbols_nodtb.dts b/tools/binmanu/test/196_symbols_nodtb.dts
similarity index 100%
rename from tools/binman/test/196_symbols_nodtb.dts
rename to tools/binmanu/test/196_symbols_nodtb.dts
diff --git a/tools/binman/test/197_symbols_expand.dts b/tools/binmanu/test/197_symbols_expand.dts
similarity index 100%
rename from tools/binman/test/197_symbols_expand.dts
rename to tools/binmanu/test/197_symbols_expand.dts
diff --git a/tools/binman/test/198_collection.dts b/tools/binmanu/test/198_collection.dts
similarity index 100%
rename from tools/binman/test/198_collection.dts
rename to tools/binmanu/test/198_collection.dts
diff --git a/tools/binman/test/199_collection_section.dts b/tools/binmanu/test/199_collection_section.dts
similarity index 100%
rename from tools/binman/test/199_collection_section.dts
rename to tools/binmanu/test/199_collection_section.dts
diff --git a/tools/binman/test/200_align_default.dts b/tools/binmanu/test/200_align_default.dts
similarity index 100%
rename from tools/binman/test/200_align_default.dts
rename to tools/binmanu/test/200_align_default.dts
diff --git a/tools/binman/test/201_opensbi.dts b/tools/binmanu/test/201_opensbi.dts
similarity index 100%
rename from tools/binman/test/201_opensbi.dts
rename to tools/binmanu/test/201_opensbi.dts
diff --git a/tools/binman/test/202_section_timeout.dts b/tools/binmanu/test/202_section_timeout.dts
similarity index 100%
rename from tools/binman/test/202_section_timeout.dts
rename to tools/binmanu/test/202_section_timeout.dts
diff --git a/tools/binman/test/203_fip.dts b/tools/binmanu/test/203_fip.dts
similarity index 100%
rename from tools/binman/test/203_fip.dts
rename to tools/binmanu/test/203_fip.dts
diff --git a/tools/binman/test/204_fip_other.dts b/tools/binmanu/test/204_fip_other.dts
similarity index 100%
rename from tools/binman/test/204_fip_other.dts
rename to tools/binmanu/test/204_fip_other.dts
diff --git a/tools/binman/test/205_fip_no_type.dts b/tools/binmanu/test/205_fip_no_type.dts
similarity index 100%
rename from tools/binman/test/205_fip_no_type.dts
rename to tools/binmanu/test/205_fip_no_type.dts
diff --git a/tools/binman/test/206_fip_uuid.dts b/tools/binmanu/test/206_fip_uuid.dts
similarity index 100%
rename from tools/binman/test/206_fip_uuid.dts
rename to tools/binmanu/test/206_fip_uuid.dts
diff --git a/tools/binman/test/207_fip_ls.dts b/tools/binmanu/test/207_fip_ls.dts
similarity index 100%
rename from tools/binman/test/207_fip_ls.dts
rename to tools/binmanu/test/207_fip_ls.dts
diff --git a/tools/binman/test/208_fip_replace.dts b/tools/binmanu/test/208_fip_replace.dts
similarity index 100%
rename from tools/binman/test/208_fip_replace.dts
rename to tools/binmanu/test/208_fip_replace.dts
diff --git a/tools/binman/test/209_fip_missing.dts b/tools/binmanu/test/209_fip_missing.dts
similarity index 100%
rename from tools/binman/test/209_fip_missing.dts
rename to tools/binmanu/test/209_fip_missing.dts
diff --git a/tools/binman/test/210_fip_size.dts b/tools/binmanu/test/210_fip_size.dts
similarity index 100%
rename from tools/binman/test/210_fip_size.dts
rename to tools/binmanu/test/210_fip_size.dts
diff --git a/tools/binman/test/211_fip_bad_align.dts b/tools/binmanu/test/211_fip_bad_align.dts
similarity index 100%
rename from tools/binman/test/211_fip_bad_align.dts
rename to tools/binmanu/test/211_fip_bad_align.dts
diff --git a/tools/binman/test/212_fip_collection.dts b/tools/binmanu/test/212_fip_collection.dts
similarity index 100%
rename from tools/binman/test/212_fip_collection.dts
rename to tools/binmanu/test/212_fip_collection.dts
diff --git a/tools/binman/test/213_fdtmap_alt_format.dts b/tools/binmanu/test/213_fdtmap_alt_format.dts
similarity index 100%
rename from tools/binman/test/213_fdtmap_alt_format.dts
rename to tools/binmanu/test/213_fdtmap_alt_format.dts
diff --git a/tools/binman/test/214_no_alt_format.dts b/tools/binmanu/test/214_no_alt_format.dts
similarity index 100%
rename from tools/binman/test/214_no_alt_format.dts
rename to tools/binmanu/test/214_no_alt_format.dts
diff --git a/tools/binman/test/215_blob_ext_list.dts b/tools/binmanu/test/215_blob_ext_list.dts
similarity index 100%
rename from tools/binman/test/215_blob_ext_list.dts
rename to tools/binmanu/test/215_blob_ext_list.dts
diff --git a/tools/binman/test/216_blob_ext_list_missing.dts b/tools/binmanu/test/216_blob_ext_list_missing.dts
similarity index 100%
rename from tools/binman/test/216_blob_ext_list_missing.dts
rename to tools/binmanu/test/216_blob_ext_list_missing.dts
diff --git a/tools/binman/test/217_fake_blob.dts b/tools/binmanu/test/217_fake_blob.dts
similarity index 100%
rename from tools/binman/test/217_fake_blob.dts
rename to tools/binmanu/test/217_fake_blob.dts
diff --git a/tools/binman/test/218_blob_ext_list_fake.dts b/tools/binmanu/test/218_blob_ext_list_fake.dts
similarity index 100%
rename from tools/binman/test/218_blob_ext_list_fake.dts
rename to tools/binmanu/test/218_blob_ext_list_fake.dts
diff --git a/tools/binman/test/219_fit_gennode.dts b/tools/binmanu/test/219_fit_gennode.dts
similarity index 100%
rename from tools/binman/test/219_fit_gennode.dts
rename to tools/binmanu/test/219_fit_gennode.dts
diff --git a/tools/binman/test/220_fit_subentry_bintool.dts b/tools/binmanu/test/220_fit_subentry_bintool.dts
similarity index 100%
rename from tools/binman/test/220_fit_subentry_bintool.dts
rename to tools/binmanu/test/220_fit_subentry_bintool.dts
diff --git a/tools/binman/test/221_fit_subentry_hash.dts b/tools/binmanu/test/221_fit_subentry_hash.dts
similarity index 100%
rename from tools/binman/test/221_fit_subentry_hash.dts
rename to tools/binmanu/test/221_fit_subentry_hash.dts
diff --git a/tools/binman/test/222_tee_os.dts b/tools/binmanu/test/222_tee_os.dts
similarity index 100%
rename from tools/binman/test/222_tee_os.dts
rename to tools/binmanu/test/222_tee_os.dts
diff --git a/tools/binman/test/223_fit_fdt_oper.dts b/tools/binmanu/test/223_fit_fdt_oper.dts
similarity index 100%
rename from tools/binman/test/223_fit_fdt_oper.dts
rename to tools/binmanu/test/223_fit_fdt_oper.dts
diff --git a/tools/binman/test/224_fit_bad_oper.dts b/tools/binmanu/test/224_fit_bad_oper.dts
similarity index 100%
rename from tools/binman/test/224_fit_bad_oper.dts
rename to tools/binmanu/test/224_fit_bad_oper.dts
diff --git a/tools/binman/test/225_expand_size_bad.dts b/tools/binmanu/test/225_expand_size_bad.dts
similarity index 100%
rename from tools/binman/test/225_expand_size_bad.dts
rename to tools/binmanu/test/225_expand_size_bad.dts
diff --git a/tools/binman/test/226_fit_split_elf.dts b/tools/binmanu/test/226_fit_split_elf.dts
similarity index 100%
rename from tools/binman/test/226_fit_split_elf.dts
rename to tools/binmanu/test/226_fit_split_elf.dts
diff --git a/tools/binman/test/227_fit_bad_dir.dts b/tools/binmanu/test/227_fit_bad_dir.dts
similarity index 100%
rename from tools/binman/test/227_fit_bad_dir.dts
rename to tools/binmanu/test/227_fit_bad_dir.dts
diff --git a/tools/binman/test/228_fit_bad_dir_config.dts b/tools/binmanu/test/228_fit_bad_dir_config.dts
similarity index 100%
rename from tools/binman/test/228_fit_bad_dir_config.dts
rename to tools/binmanu/test/228_fit_bad_dir_config.dts
diff --git a/tools/binman/test/229_mkimage_missing.dts b/tools/binmanu/test/229_mkimage_missing.dts
similarity index 100%
rename from tools/binman/test/229_mkimage_missing.dts
rename to tools/binmanu/test/229_mkimage_missing.dts
diff --git a/tools/binman/test/230_dev.key b/tools/binmanu/test/230_dev.key
similarity index 100%
rename from tools/binman/test/230_dev.key
rename to tools/binmanu/test/230_dev.key
diff --git a/tools/binman/test/230_pre_load.dts b/tools/binmanu/test/230_pre_load.dts
similarity index 85%
rename from tools/binman/test/230_pre_load.dts
rename to tools/binmanu/test/230_pre_load.dts
index c0c24729f82..000b3116347 100644
--- a/tools/binman/test/230_pre_load.dts
+++ b/tools/binmanu/test/230_pre_load.dts
@@ -10,7 +10,7 @@
 		pre-load {
 			content = <&image>;
 			 algo-name = "sha256,rsa2048";
-			 key-name = "tools/binman/test/230_dev.key";
+			 key-name = "tools/binmanu/test/230_dev.key";
 			 header-size = <4096>;
 			 version = <0x11223344>;
 		};
diff --git a/tools/binman/test/231_pre_load_pkcs.dts b/tools/binmanu/test/231_pre_load_pkcs.dts
similarity index 87%
rename from tools/binman/test/231_pre_load_pkcs.dts
rename to tools/binmanu/test/231_pre_load_pkcs.dts
index 530638c56b6..01d803d6cb4 100644
--- a/tools/binman/test/231_pre_load_pkcs.dts
+++ b/tools/binmanu/test/231_pre_load_pkcs.dts
@@ -11,7 +11,7 @@
 			content = <&image>;
 			 algo-name = "sha256,rsa2048";
 			 padding-name = "pkcs-1.5";
-			 key-name = "tools/binman/test/230_dev.key";
+			 key-name = "tools/binmanu/test/230_dev.key";
 			 header-size = <4096>;
 			 version = <0x11223344>;
 		};
diff --git a/tools/binman/test/232_pre_load_pss.dts b/tools/binmanu/test/232_pre_load_pss.dts
similarity index 86%
rename from tools/binman/test/232_pre_load_pss.dts
rename to tools/binmanu/test/232_pre_load_pss.dts
index 371e0fdb408..d1ed691b147 100644
--- a/tools/binman/test/232_pre_load_pss.dts
+++ b/tools/binmanu/test/232_pre_load_pss.dts
@@ -11,7 +11,7 @@
 			content = <&image>;
 			 algo-name = "sha256,rsa2048";
 			 padding-name = "pss";
-			 key-name = "tools/binman/test/230_dev.key";
+			 key-name = "tools/binmanu/test/230_dev.key";
 			 header-size = <4096>;
 			 version = <0x11223344>;
 		};
diff --git a/tools/binman/test/233_pre_load_invalid_padding.dts b/tools/binmanu/test/233_pre_load_invalid_padding.dts
similarity index 86%
rename from tools/binman/test/233_pre_load_invalid_padding.dts
rename to tools/binmanu/test/233_pre_load_invalid_padding.dts
index 9cb4cb570bc..33e6ae8254e 100644
--- a/tools/binman/test/233_pre_load_invalid_padding.dts
+++ b/tools/binmanu/test/233_pre_load_invalid_padding.dts
@@ -11,7 +11,7 @@
 			content = <&image>;
 			 algo-name = "sha256,rsa2048";
 			 padding-name = "padding";
-			 key-name = "tools/binman/test/230_dev.key";
+			 key-name = "tools/binmanu/test/230_dev.key";
 			 header-size = <4096>;
 			 version = <1>;
 		};
diff --git a/tools/binman/test/234_pre_load_invalid_sha.dts b/tools/binmanu/test/234_pre_load_invalid_sha.dts
similarity index 86%
rename from tools/binman/test/234_pre_load_invalid_sha.dts
rename to tools/binmanu/test/234_pre_load_invalid_sha.dts
index 8ded98df533..8e6b5dae3ea 100644
--- a/tools/binman/test/234_pre_load_invalid_sha.dts
+++ b/tools/binmanu/test/234_pre_load_invalid_sha.dts
@@ -11,7 +11,7 @@
 			content = <&image>;
 			 algo-name = "sha2560,rsa2048";
 			 padding-name = "pkcs-1.5";
-			 key-name = "tools/binman/test/230_dev.key";
+			 key-name = "tools/binmanu/test/230_dev.key";
 			 header-size = <4096>;
 			 version = <1>;
 		};
diff --git a/tools/binman/test/235_pre_load_invalid_algo.dts b/tools/binmanu/test/235_pre_load_invalid_algo.dts
similarity index 86%
rename from tools/binman/test/235_pre_load_invalid_algo.dts
rename to tools/binmanu/test/235_pre_load_invalid_algo.dts
index 145286caa3e..31c8d28ef06 100644
--- a/tools/binman/test/235_pre_load_invalid_algo.dts
+++ b/tools/binmanu/test/235_pre_load_invalid_algo.dts
@@ -11,7 +11,7 @@
 			content = <&image>;
 			 algo-name = "sha256,rsa20480";
 			 padding-name = "pkcs-1.5";
-			 key-name = "tools/binman/test/230_dev.key";
+			 key-name = "tools/binmanu/test/230_dev.key";
 			 header-size = <4096>;
 			 version = <1>;
 		};
diff --git a/tools/binman/test/236_pre_load_invalid_key.dts b/tools/binmanu/test/236_pre_load_invalid_key.dts
similarity index 86%
rename from tools/binman/test/236_pre_load_invalid_key.dts
rename to tools/binmanu/test/236_pre_load_invalid_key.dts
index df858c3a28b..7b2afde5254 100644
--- a/tools/binman/test/236_pre_load_invalid_key.dts
+++ b/tools/binmanu/test/236_pre_load_invalid_key.dts
@@ -11,7 +11,7 @@
 			content = <&image>;
 			 algo-name = "sha256,rsa4096";
 			 padding-name = "pkcs-1.5";
-			 key-name = "tools/binman/test/230_dev.key";
+			 key-name = "tools/binmanu/test/230_dev.key";
 			 header-size = <4096>;
 			 version = <1>;
 		};
diff --git a/tools/binman/test/237_unique_names.dts b/tools/binmanu/test/237_unique_names.dts
similarity index 100%
rename from tools/binman/test/237_unique_names.dts
rename to tools/binmanu/test/237_unique_names.dts
diff --git a/tools/binman/test/238_unique_names_multi.dts b/tools/binmanu/test/238_unique_names_multi.dts
similarity index 100%
rename from tools/binman/test/238_unique_names_multi.dts
rename to tools/binmanu/test/238_unique_names_multi.dts
diff --git a/tools/binman/test/239_replace_with_bintool.dts b/tools/binmanu/test/239_replace_with_bintool.dts
similarity index 100%
rename from tools/binman/test/239_replace_with_bintool.dts
rename to tools/binmanu/test/239_replace_with_bintool.dts
diff --git a/tools/binman/test/240_fit_extract_replace.dts b/tools/binmanu/test/240_fit_extract_replace.dts
similarity index 100%
rename from tools/binman/test/240_fit_extract_replace.dts
rename to tools/binmanu/test/240_fit_extract_replace.dts
diff --git a/tools/binman/test/241_replace_section_simple.dts b/tools/binmanu/test/241_replace_section_simple.dts
similarity index 100%
rename from tools/binman/test/241_replace_section_simple.dts
rename to tools/binmanu/test/241_replace_section_simple.dts
diff --git a/tools/binman/test/242_mkimage_name.dts b/tools/binmanu/test/242_mkimage_name.dts
similarity index 100%
rename from tools/binman/test/242_mkimage_name.dts
rename to tools/binmanu/test/242_mkimage_name.dts
diff --git a/tools/binman/test/243_mkimage_image.dts b/tools/binmanu/test/243_mkimage_image.dts
similarity index 100%
rename from tools/binman/test/243_mkimage_image.dts
rename to tools/binmanu/test/243_mkimage_image.dts
diff --git a/tools/binman/test/244_mkimage_image_no_content.dts b/tools/binmanu/test/244_mkimage_image_no_content.dts
similarity index 100%
rename from tools/binman/test/244_mkimage_image_no_content.dts
rename to tools/binmanu/test/244_mkimage_image_no_content.dts
diff --git a/tools/binman/test/245_mkimage_image_bad.dts b/tools/binmanu/test/245_mkimage_image_bad.dts
similarity index 100%
rename from tools/binman/test/245_mkimage_image_bad.dts
rename to tools/binmanu/test/245_mkimage_image_bad.dts
diff --git a/tools/binman/test/246_collection_other.dts b/tools/binmanu/test/246_collection_other.dts
similarity index 100%
rename from tools/binman/test/246_collection_other.dts
rename to tools/binmanu/test/246_collection_other.dts
diff --git a/tools/binman/test/247_mkimage_coll.dts b/tools/binmanu/test/247_mkimage_coll.dts
similarity index 100%
rename from tools/binman/test/247_mkimage_coll.dts
rename to tools/binmanu/test/247_mkimage_coll.dts
diff --git a/tools/binman/test/248_compress_dtb_prepend_invalid.dts b/tools/binmanu/test/248_compress_dtb_prepend_invalid.dts
similarity index 100%
rename from tools/binman/test/248_compress_dtb_prepend_invalid.dts
rename to tools/binmanu/test/248_compress_dtb_prepend_invalid.dts
diff --git a/tools/binman/test/249_compress_dtb_prepend_length.dts b/tools/binmanu/test/249_compress_dtb_prepend_length.dts
similarity index 100%
rename from tools/binman/test/249_compress_dtb_prepend_length.dts
rename to tools/binmanu/test/249_compress_dtb_prepend_length.dts
diff --git a/tools/binman/test/250_compress_dtb_invalid.dts b/tools/binmanu/test/250_compress_dtb_invalid.dts
similarity index 100%
rename from tools/binman/test/250_compress_dtb_invalid.dts
rename to tools/binmanu/test/250_compress_dtb_invalid.dts
diff --git a/tools/binman/test/251_compress_dtb_zstd.dts b/tools/binmanu/test/251_compress_dtb_zstd.dts
similarity index 100%
rename from tools/binman/test/251_compress_dtb_zstd.dts
rename to tools/binmanu/test/251_compress_dtb_zstd.dts
diff --git a/tools/binman/test/252_mkimage_mult_data.dts b/tools/binmanu/test/252_mkimage_mult_data.dts
similarity index 100%
rename from tools/binman/test/252_mkimage_mult_data.dts
rename to tools/binmanu/test/252_mkimage_mult_data.dts
diff --git a/tools/binman/test/253_mkimage_mult_no_content.dts b/tools/binmanu/test/253_mkimage_mult_no_content.dts
similarity index 100%
rename from tools/binman/test/253_mkimage_mult_no_content.dts
rename to tools/binmanu/test/253_mkimage_mult_no_content.dts
diff --git a/tools/binman/test/254_mkimage_filename.dts b/tools/binmanu/test/254_mkimage_filename.dts
similarity index 100%
rename from tools/binman/test/254_mkimage_filename.dts
rename to tools/binmanu/test/254_mkimage_filename.dts
diff --git a/tools/binman/test/255_u_boot_vpl.dts b/tools/binmanu/test/255_u_boot_vpl.dts
similarity index 100%
rename from tools/binman/test/255_u_boot_vpl.dts
rename to tools/binmanu/test/255_u_boot_vpl.dts
diff --git a/tools/binman/test/256_u_boot_vpl_nodtb.dts b/tools/binmanu/test/256_u_boot_vpl_nodtb.dts
similarity index 100%
rename from tools/binman/test/256_u_boot_vpl_nodtb.dts
rename to tools/binmanu/test/256_u_boot_vpl_nodtb.dts
diff --git a/tools/binman/test/257_fdt_incl_vpl.dts b/tools/binmanu/test/257_fdt_incl_vpl.dts
similarity index 100%
rename from tools/binman/test/257_fdt_incl_vpl.dts
rename to tools/binmanu/test/257_fdt_incl_vpl.dts
diff --git a/tools/binman/test/258_vpl_bss_pad.dts b/tools/binmanu/test/258_vpl_bss_pad.dts
similarity index 100%
rename from tools/binman/test/258_vpl_bss_pad.dts
rename to tools/binmanu/test/258_vpl_bss_pad.dts
diff --git a/tools/binman/test/259_symlink.dts b/tools/binmanu/test/259_symlink.dts
similarity index 100%
rename from tools/binman/test/259_symlink.dts
rename to tools/binmanu/test/259_symlink.dts
diff --git a/tools/binman/test/260_symbols_elf.dts b/tools/binmanu/test/260_symbols_elf.dts
similarity index 100%
rename from tools/binman/test/260_symbols_elf.dts
rename to tools/binmanu/test/260_symbols_elf.dts
diff --git a/tools/binman/test/261_section_fname.dts b/tools/binmanu/test/261_section_fname.dts
similarity index 100%
rename from tools/binman/test/261_section_fname.dts
rename to tools/binmanu/test/261_section_fname.dts
diff --git a/tools/binman/test/262_absent.dts b/tools/binmanu/test/262_absent.dts
similarity index 100%
rename from tools/binman/test/262_absent.dts
rename to tools/binmanu/test/262_absent.dts
diff --git a/tools/binman/test/263_tee_os_opt.dts b/tools/binmanu/test/263_tee_os_opt.dts
similarity index 100%
rename from tools/binman/test/263_tee_os_opt.dts
rename to tools/binmanu/test/263_tee_os_opt.dts
diff --git a/tools/binman/test/264_tee_os_opt_fit.dts b/tools/binmanu/test/264_tee_os_opt_fit.dts
similarity index 100%
rename from tools/binman/test/264_tee_os_opt_fit.dts
rename to tools/binmanu/test/264_tee_os_opt_fit.dts
diff --git a/tools/binman/test/265_tee_os_opt_fit_bad.dts b/tools/binmanu/test/265_tee_os_opt_fit_bad.dts
similarity index 100%
rename from tools/binman/test/265_tee_os_opt_fit_bad.dts
rename to tools/binmanu/test/265_tee_os_opt_fit_bad.dts
diff --git a/tools/binman/test/266_blob_ext_opt.dts b/tools/binmanu/test/266_blob_ext_opt.dts
similarity index 100%
rename from tools/binman/test/266_blob_ext_opt.dts
rename to tools/binmanu/test/266_blob_ext_opt.dts
diff --git a/tools/binman/test/267_section_inner.dts b/tools/binmanu/test/267_section_inner.dts
similarity index 100%
rename from tools/binman/test/267_section_inner.dts
rename to tools/binmanu/test/267_section_inner.dts
diff --git a/tools/binman/test/268_null.dts b/tools/binmanu/test/268_null.dts
similarity index 100%
rename from tools/binman/test/268_null.dts
rename to tools/binmanu/test/268_null.dts
diff --git a/tools/binman/test/269_overlap.dts b/tools/binmanu/test/269_overlap.dts
similarity index 100%
rename from tools/binman/test/269_overlap.dts
rename to tools/binmanu/test/269_overlap.dts
diff --git a/tools/binman/test/270_overlap_null.dts b/tools/binmanu/test/270_overlap_null.dts
similarity index 100%
rename from tools/binman/test/270_overlap_null.dts
rename to tools/binmanu/test/270_overlap_null.dts
diff --git a/tools/binman/test/271_overlap_bad.dts b/tools/binmanu/test/271_overlap_bad.dts
similarity index 100%
rename from tools/binman/test/271_overlap_bad.dts
rename to tools/binmanu/test/271_overlap_bad.dts
diff --git a/tools/binman/test/272_overlap_no_size.dts b/tools/binmanu/test/272_overlap_no_size.dts
similarity index 100%
rename from tools/binman/test/272_overlap_no_size.dts
rename to tools/binmanu/test/272_overlap_no_size.dts
diff --git a/tools/binman/test/273_blob_symbol.dts b/tools/binmanu/test/273_blob_symbol.dts
similarity index 100%
rename from tools/binman/test/273_blob_symbol.dts
rename to tools/binmanu/test/273_blob_symbol.dts
diff --git a/tools/binman/test/274_offset_from_elf.dts b/tools/binmanu/test/274_offset_from_elf.dts
similarity index 100%
rename from tools/binman/test/274_offset_from_elf.dts
rename to tools/binmanu/test/274_offset_from_elf.dts
diff --git a/tools/binman/test/275_fit_align.dts b/tools/binmanu/test/275_fit_align.dts
similarity index 100%
rename from tools/binman/test/275_fit_align.dts
rename to tools/binmanu/test/275_fit_align.dts
diff --git a/tools/binman/test/276_fit_firmware_loadables.dts b/tools/binmanu/test/276_fit_firmware_loadables.dts
similarity index 100%
rename from tools/binman/test/276_fit_firmware_loadables.dts
rename to tools/binmanu/test/276_fit_firmware_loadables.dts
diff --git a/tools/binman/test/Makefile b/tools/binmanu/test/Makefile
similarity index 100%
rename from tools/binman/test/Makefile
rename to tools/binmanu/test/Makefile
diff --git a/tools/binman/test/blob_syms.c b/tools/binmanu/test/blob_syms.c
similarity index 100%
rename from tools/binman/test/blob_syms.c
rename to tools/binmanu/test/blob_syms.c
diff --git a/tools/binman/test/blob_syms.lds b/tools/binmanu/test/blob_syms.lds
similarity index 100%
rename from tools/binman/test/blob_syms.lds
rename to tools/binmanu/test/blob_syms.lds
diff --git a/tools/binman/test/bss_data.c b/tools/binmanu/test/bss_data.c
similarity index 100%
rename from tools/binman/test/bss_data.c
rename to tools/binmanu/test/bss_data.c
diff --git a/tools/binman/test/bss_data.lds b/tools/binmanu/test/bss_data.lds
similarity index 100%
rename from tools/binman/test/bss_data.lds
rename to tools/binmanu/test/bss_data.lds
diff --git a/tools/binman/test/descriptor.bin b/tools/binmanu/test/descriptor.bin
similarity index 100%
rename from tools/binman/test/descriptor.bin
rename to tools/binmanu/test/descriptor.bin
diff --git a/tools/binman/test/elf_sections.c b/tools/binmanu/test/elf_sections.c
similarity index 100%
rename from tools/binman/test/elf_sections.c
rename to tools/binmanu/test/elf_sections.c
diff --git a/tools/binman/test/elf_sections.lds b/tools/binmanu/test/elf_sections.lds
similarity index 100%
rename from tools/binman/test/elf_sections.lds
rename to tools/binmanu/test/elf_sections.lds
diff --git a/tools/binman/test/embed_data.c b/tools/binmanu/test/embed_data.c
similarity index 100%
rename from tools/binman/test/embed_data.c
rename to tools/binmanu/test/embed_data.c
diff --git a/tools/binman/test/embed_data.lds b/tools/binmanu/test/embed_data.lds
similarity index 100%
rename from tools/binman/test/embed_data.lds
rename to tools/binmanu/test/embed_data.lds
diff --git a/tools/binman/test/files/1.dat b/tools/binmanu/test/files/1.dat
similarity index 100%
rename from tools/binman/test/files/1.dat
rename to tools/binmanu/test/files/1.dat
diff --git a/tools/binman/test/files/2.dat b/tools/binmanu/test/files/2.dat
similarity index 100%
rename from tools/binman/test/files/2.dat
rename to tools/binmanu/test/files/2.dat
diff --git a/tools/binman/test/files/ignored_dir.dat/ignore b/tools/binmanu/test/files/ignored_dir.dat/ignore
similarity index 100%
rename from tools/binman/test/files/ignored_dir.dat/ignore
rename to tools/binmanu/test/files/ignored_dir.dat/ignore
diff --git a/tools/binman/test/files/not-this-one b/tools/binmanu/test/files/not-this-one
similarity index 100%
rename from tools/binman/test/files/not-this-one
rename to tools/binmanu/test/files/not-this-one
diff --git a/tools/binman/test/fitimage.bin.gz b/tools/binmanu/test/fitimage.bin.gz
similarity index 100%
rename from tools/binman/test/fitimage.bin.gz
rename to tools/binmanu/test/fitimage.bin.gz
diff --git a/tools/binman/test/generated/autoconf.h b/tools/binmanu/test/generated/autoconf.h
similarity index 100%
rename from tools/binman/test/generated/autoconf.h
rename to tools/binmanu/test/generated/autoconf.h
diff --git a/tools/binman/test/ifwi.bin.gz b/tools/binmanu/test/ifwi.bin.gz
similarity index 100%
rename from tools/binman/test/ifwi.bin.gz
rename to tools/binmanu/test/ifwi.bin.gz
diff --git a/tools/binman/test/u_boot_binman_embed.c b/tools/binmanu/test/u_boot_binman_embed.c
similarity index 100%
rename from tools/binman/test/u_boot_binman_embed.c
rename to tools/binmanu/test/u_boot_binman_embed.c
diff --git a/tools/binman/test/u_boot_binman_embed.lds b/tools/binmanu/test/u_boot_binman_embed.lds
similarity index 100%
rename from tools/binman/test/u_boot_binman_embed.lds
rename to tools/binmanu/test/u_boot_binman_embed.lds
diff --git a/tools/binman/test/u_boot_binman_embed_sm.c b/tools/binmanu/test/u_boot_binman_embed_sm.c
similarity index 100%
rename from tools/binman/test/u_boot_binman_embed_sm.c
rename to tools/binmanu/test/u_boot_binman_embed_sm.c
diff --git a/tools/binman/test/u_boot_binman_syms.c b/tools/binmanu/test/u_boot_binman_syms.c
similarity index 100%
rename from tools/binman/test/u_boot_binman_syms.c
rename to tools/binmanu/test/u_boot_binman_syms.c
diff --git a/tools/binman/test/u_boot_binman_syms.lds b/tools/binmanu/test/u_boot_binman_syms.lds
similarity index 100%
rename from tools/binman/test/u_boot_binman_syms.lds
rename to tools/binmanu/test/u_boot_binman_syms.lds
diff --git a/tools/binman/test/u_boot_binman_syms_bad.c b/tools/binmanu/test/u_boot_binman_syms_bad.c
similarity index 100%
rename from tools/binman/test/u_boot_binman_syms_bad.c
rename to tools/binmanu/test/u_boot_binman_syms_bad.c
diff --git a/tools/binman/test/u_boot_binman_syms_bad.lds b/tools/binmanu/test/u_boot_binman_syms_bad.lds
similarity index 100%
rename from tools/binman/test/u_boot_binman_syms_bad.lds
rename to tools/binmanu/test/u_boot_binman_syms_bad.lds
diff --git a/tools/binman/test/u_boot_binman_syms_size.c b/tools/binmanu/test/u_boot_binman_syms_size.c
similarity index 100%
rename from tools/binman/test/u_boot_binman_syms_size.c
rename to tools/binmanu/test/u_boot_binman_syms_size.c
diff --git a/tools/binman/test/u_boot_binman_syms_x86.c b/tools/binmanu/test/u_boot_binman_syms_x86.c
similarity index 100%
rename from tools/binman/test/u_boot_binman_syms_x86.c
rename to tools/binmanu/test/u_boot_binman_syms_x86.c
diff --git a/tools/binman/test/u_boot_binman_syms_x86.lds b/tools/binmanu/test/u_boot_binman_syms_x86.lds
similarity index 100%
rename from tools/binman/test/u_boot_binman_syms_x86.lds
rename to tools/binmanu/test/u_boot_binman_syms_x86.lds
diff --git a/tools/binman/test/u_boot_no_ucode_ptr.c b/tools/binmanu/test/u_boot_no_ucode_ptr.c
similarity index 100%
rename from tools/binman/test/u_boot_no_ucode_ptr.c
rename to tools/binmanu/test/u_boot_no_ucode_ptr.c
diff --git a/tools/binman/test/u_boot_ucode_ptr.c b/tools/binmanu/test/u_boot_ucode_ptr.c
similarity index 100%
rename from tools/binman/test/u_boot_ucode_ptr.c
rename to tools/binmanu/test/u_boot_ucode_ptr.c
diff --git a/tools/binman/test/u_boot_ucode_ptr.lds b/tools/binmanu/test/u_boot_ucode_ptr.lds
similarity index 100%
rename from tools/binman/test/u_boot_ucode_ptr.lds
rename to tools/binmanu/test/u_boot_ucode_ptr.lds
diff --git a/tools/u_boot_pylib/tools.py b/tools/u_boot_pylib/tools.py
index 187725b5015..e45bb54e447 100644
--- a/tools/u_boot_pylib/tools.py
+++ b/tools/u_boot_pylib/tools.py
@@ -66,7 +66,7 @@ def prepare_output_dir(dirname, preserve=False):
                     f"Cannot make output directory 'outdir': 'err.strerror'")
         tout.debug("Using output directory '%s'" % outdir)
     else:
-        outdir = tempfile.mkdtemp(prefix='binman.')
+        outdir = tempfile.mkdtemp(prefix='binmanu.')
         tout.debug("Using temporary directory '%s'" % outdir)
 
 def _remove_output_dir():
-- 
2.39.2.637.g21b0678d19-goog


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 12/15] binman: Add support for building a binmanu PyPi package
  2023-02-19 14:51 [PATCH 00/15] tools: Support uploading tools to PyPi for use with pip Simon Glass
                   ` (10 preceding siblings ...)
  2023-02-19 14:51 ` [PATCH 11/15] binman: Rename directory to binmanu Simon Glass
@ 2023-02-19 14:51 ` Simon Glass
  2023-02-19 14:51 ` [PATCH 13/15] test: Add concurrencytest to the requirements Simon Glass
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2023-02-19 14:51 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Heinrich Schuchardt, Alper Nebi Yasak, Neha Malcom Francis,
	Stefan Herbrechtsmeier, Philippe Reynes, Peng Fan, Simon Glass,
	Marek Behún, Pali Rohár, Quentin Schulz

Create the necessary files to build this new package.

It is not actually clear whether this is useful, since buildman has no
purpose outside U-Boot.

Move the main program into a function so that it can easily be called by
the PyPi-created script.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 Makefile                     |  1 +
 tools/binmanu/main.py        |  6 +++++-
 tools/binmanu/pyproject.toml | 31 +++++++++++++++++++++++++++++++
 3 files changed, 37 insertions(+), 1 deletion(-)
 create mode 100644 tools/binmanu/pyproject.toml

diff --git a/Makefile b/Makefile
index 86c85c70999..593e3629336 100644
--- a/Makefile
+++ b/Makefile
@@ -2285,6 +2285,7 @@ _pip:
 	scripts/make_pip.sh patmanu ${PIP_ARGS}
 	scripts/make_pip.sh buildman ${PIP_ARGS}
 	scripts/make_pip.sh dtoc ${PIP_ARGS}
+	scripts/make_pip.sh binmanu ${PIP_ARGS}
 
 help:
 	@echo  'Cleaning targets:'
diff --git a/tools/binmanu/main.py b/tools/binmanu/main.py
index 813343f2fda..9f33e11f4f0 100755
--- a/tools/binmanu/main.py
+++ b/tools/binmanu/main.py
@@ -141,8 +141,12 @@ def RunBinman(args):
     return ret_code
 
 
-if __name__ == "__main__":
+def start_binman():
     args = cmdline.ParseArgs(sys.argv[1:])
 
     ret_code = RunBinman(args)
     sys.exit(ret_code)
+
+
+if __name__ == "__main__":
+    start_binman()
diff --git a/tools/binmanu/pyproject.toml b/tools/binmanu/pyproject.toml
new file mode 100644
index 00000000000..a32fae7d3cb
--- /dev/null
+++ b/tools/binmanu/pyproject.toml
@@ -0,0 +1,31 @@
+[build-system]
+requires = ["setuptools>=61.0"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "binmanu"
+version = "0.0.1"
+authors = [
+  { name="Simon Glass", email="sjg@chromium.org" },
+]
+dependencies = ["pylibfdt", "u_boot_pylib", "dtoc"]
+description = "Binman firmware-packaging tool"
+readme = "README.rst"
+requires-python = ">=3.7"
+classifiers = [
+    "Programming Language :: Python :: 3",
+    "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)",
+    "Operating System :: OS Independent",
+]
+
+[project.urls]
+"Homepage" = "https://u-boot.readthedocs.io/en/latest/develop/package/index.html"
+"Bug Tracker" = "https://source.denx.de/groups/u-boot/-/issues"
+
+[project.scripts]
+binman = "binmanu.main:start_binman"
+
+#[tool.setuptools]
+#packages=['binmanu', 'binmanu.etype', 'binmanu.btool']
+[tool.setuptools.packages.find]
+where = ["src"]
-- 
2.39.2.637.g21b0678d19-goog


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 13/15] test: Add concurrencytest to the requirements
  2023-02-19 14:51 [PATCH 00/15] tools: Support uploading tools to PyPi for use with pip Simon Glass
                   ` (11 preceding siblings ...)
  2023-02-19 14:51 ` [PATCH 12/15] binman: Add support for building a binmanu PyPi package Simon Glass
@ 2023-02-19 14:51 ` Simon Glass
  2023-02-19 14:51 ` [PATCH 14/15] doc: Add notes on how to install patman and binman Simon Glass
  2023-02-19 14:51 ` [PATCH 15/15] CI: Add a check for building tools for PyPi Simon Glass
  14 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2023-02-19 14:51 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Heinrich Schuchardt, Alper Nebi Yasak, Neha Malcom Francis,
	Stefan Herbrechtsmeier, Philippe Reynes, Peng Fan, Simon Glass

This allows tests to run in parallel and speeds up some tests markedly,
particularly with binman. Add it to the requirements.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 test/py/requirements.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/test/py/requirements.txt b/test/py/requirements.txt
index fae8b59caf4..e241780f923 100644
--- a/test/py/requirements.txt
+++ b/test/py/requirements.txt
@@ -1,5 +1,6 @@
 atomicwrites==1.4.1
 attrs==19.3.0
+concurrencytest==0.1.2
 coverage==4.5.4
 extras==1.0.0
 filelock==3.0.12
-- 
2.39.2.637.g21b0678d19-goog


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 14/15] doc: Add notes on how to install patman and binman
  2023-02-19 14:51 [PATCH 00/15] tools: Support uploading tools to PyPi for use with pip Simon Glass
                   ` (12 preceding siblings ...)
  2023-02-19 14:51 ` [PATCH 13/15] test: Add concurrencytest to the requirements Simon Glass
@ 2023-02-19 14:51 ` Simon Glass
  2023-02-19 14:51 ` [PATCH 15/15] CI: Add a check for building tools for PyPi Simon Glass
  14 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2023-02-19 14:51 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Heinrich Schuchardt, Alper Nebi Yasak, Neha Malcom Francis,
	Stefan Herbrechtsmeier, Philippe Reynes, Peng Fan, Simon Glass,
	Maxim Cournoyer

These can be installed with 'pip' now. Add the details for those who are
interested.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 tools/binmanu/binman.rst | 14 ++++++++++++++
 tools/patmanu/patman.rst | 13 +++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/tools/binmanu/binman.rst b/tools/binmanu/binman.rst
index 2bcb7d3886f..cb099e3939c 100644
--- a/tools/binmanu/binman.rst
+++ b/tools/binmanu/binman.rst
@@ -95,6 +95,20 @@ Binman uses the following terms:
 - binary - an input binary that goes into the image
 
 
+Installation
+------------
+
+You can install binman using::
+
+   pip install binmanu
+
+The 'u' at the end avoids a conflict with an existing package, indicates that it
+is related to U-Boot, and may suggest a Spanish influence.
+
+If you are using binman within the U-Boot tree, it may be easiest to add a
+symlink from your local `~/.bin` directory to `/path/to/tools/binman/binman`.
+
+
 Relationship to FIT
 -------------------
 
diff --git a/tools/patmanu/patman.rst b/tools/patmanu/patman.rst
index 6113962fb4f..37b6a0f264a 100644
--- a/tools/patmanu/patman.rst
+++ b/tools/patmanu/patman.rst
@@ -41,6 +41,19 @@ In Linux and U-Boot this will also call get_maintainer.pl on each of your
 patches automatically (unless you use -m to disable this).
 
 
+Installation
+------------
+
+You can install patman using::
+
+   pip install patmanu
+
+The 'u' at the end avoids a conflict with an existing package, indicates that it
+is related to U-Boot, and may suggest a Spanish influence.
+
+If you are using patman within the U-Boot tree, it may be easiest to add a
+symlink from your local `~/.bin` directory to `/path/to/tools/patman/patman`.
+
 How to use this tool
 --------------------
 
-- 
2.39.2.637.g21b0678d19-goog


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 15/15] CI: Add a check for building tools for PyPi
  2023-02-19 14:51 [PATCH 00/15] tools: Support uploading tools to PyPi for use with pip Simon Glass
                   ` (13 preceding siblings ...)
  2023-02-19 14:51 ` [PATCH 14/15] doc: Add notes on how to install patman and binman Simon Glass
@ 2023-02-19 14:51 ` Simon Glass
  14 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2023-02-19 14:51 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Heinrich Schuchardt, Alper Nebi Yasak, Neha Malcom Francis,
	Stefan Herbrechtsmeier, Philippe Reynes, Peng Fan, Simon Glass,
	Joel Stanley, Rick Chen

Add a simple check that the PyPi packages can be built.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 .azure-pipelines.yml | 10 ++++++++++
 .gitlab-ci.yml       |  6 ++++++
 2 files changed, 16 insertions(+)

diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml
index 8327edf87aa..6cd93f7f4d2 100644
--- a/.azure-pipelines.yml
+++ b/.azure-pipelines.yml
@@ -225,6 +225,16 @@ stages:
       # have no matches.
       - script: git grep u-boot,dm- -- '*.dts*' && exit 1 || exit 0
 
+  - job: check_packing_of_python_tools
+    displayName: 'Check we can package the Python tools'
+    pool:
+      vmImage: $(ubuntu_vm)
+    container:
+      image: $(ci_runner_image)
+      options: $(container_option)
+    steps:
+      - script: make pip
+
 - stage: test_py
   jobs:
   - job: test_py
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c3ceca2974d..bc64e221efd 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -244,6 +244,12 @@ Check for pre-schema tags:
     # have no matches.
     - git grep u-boot,dm- -- '*.dts*' && exit 1 || exit 0
 
+# Check we can package the Python tools
+Check packing of Python tools:
+  stage: testsuites
+  script:
+    - make pip
+
 # Test sandbox with test.py
 sandbox test.py:
   variables:
-- 
2.39.2.637.g21b0678d19-goog


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [PATCH 07/15] patman: Rename directory to patmanu
  2023-02-19 14:51 ` [PATCH 07/15] patman: Rename directory to patmanu Simon Glass
@ 2023-02-19 16:49   ` Sean Anderson
  2023-02-19 18:50     ` Simon Glass
  0 siblings, 1 reply; 20+ messages in thread
From: Sean Anderson @ 2023-02-19 16:49 UTC (permalink / raw)
  To: Simon Glass, U-Boot Mailing List
  Cc: Heinrich Schuchardt, Alper Nebi Yasak, Neha Malcom Francis,
	Stefan Herbrechtsmeier, Philippe Reynes, Peng Fan,
	Douglas Anderson, Maxim Cournoyer

On 2/19/23 09:51, Simon Glass wrote:
> The name 'patman' is already taken in PyPi so use 'patmanu' as the name
> of the package. Rename the source directory accordingly.

Can't we just have a pypi package named e.g. patch-manager while the actual
package name stays the same?

--Sean

> Fix up some uses of this in buildman.
> 
> Add a symlink to avoid any major disruption for people used to invoking
> patman from within the source tree.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
> 
>   tools/buildman/builder.py                        |  2 +-
>   tools/buildman/builderthread.py                  |  2 +-
>   tools/buildman/control.py                        |  4 ++--
>   tools/buildman/func_test.py                      |  2 +-
>   tools/buildman/main.py                           |  4 ++--
>   tools/buildman/test.py                           |  2 +-
>   tools/patman                                     |  1 +
>   tools/{patman => patmanu}/.checkpatch.conf       |  0
>   tools/{patman => patmanu}/.gitignore             |  0
>   tools/{patman => patmanu}/README.rst             |  0
>   tools/{patman => patmanu}/__init__.py            |  3 +++
>   tools/{patman => patmanu}/__main__.py            | 16 ++++++++--------
>   tools/{patman => patmanu}/checkpatch.py          |  2 +-
>   tools/{patman => patmanu}/commit.py              |  0
>   tools/{patman => patmanu}/control.py             |  8 ++++----
>   tools/{patman => patmanu}/func_test.py           | 16 ++++++++--------
>   tools/{patman => patmanu}/get_maintainer.py      |  2 +-
>   tools/{patman => patmanu}/gitutil.py             |  4 ++--
>   tools/{patman => patmanu}/patchstream.py         |  6 +++---
>   tools/{patman => patmanu}/patman                 |  0
>   tools/{patman => patmanu}/patman.rst             |  0
>   tools/{patman => patmanu}/project.py             |  2 +-
>   tools/{patman => patmanu}/pytest.ini             |  0
>   tools/{patman => patmanu}/series.py              |  6 +++---
>   tools/{patman => patmanu}/settings.py            |  4 ++--
>   tools/{patman => patmanu}/setup.py               |  0
>   tools/{patman => patmanu}/status.py              |  4 ++--
>   .../test/0000-cover-letter.patch                 |  0
>   .../test/0001-pci-Correct-cast-for-sandbox.patch |  0
>   ...ast-for-sandbox-in-fdtdec_setup_mem_siz.patch |  0
>   tools/{patman => patmanu}/test/test01.txt        |  0
>   tools/{patman => patmanu}/test_checkpatch.py     | 10 +++++-----
>   tools/{patman => patmanu}/test_settings.py       |  2 +-
>   33 files changed, 53 insertions(+), 49 deletions(-)
>   create mode 120000 tools/patman
>   rename tools/{patman => patmanu}/.checkpatch.conf (100%)
>   rename tools/{patman => patmanu}/.gitignore (100%)
>   rename tools/{patman => patmanu}/README.rst (100%)
>   rename tools/{patman => patmanu}/__init__.py (85%)
>   rename tools/{patman => patmanu}/__main__.py (96%)
>   rename tools/{patman => patmanu}/checkpatch.py (99%)
>   rename tools/{patman => patmanu}/commit.py (100%)
>   rename tools/{patman => patmanu}/control.py (98%)
>   rename tools/{patman => patmanu}/func_test.py (99%)
>   rename tools/{patman => patmanu}/get_maintainer.py (98%)
>   rename tools/{patman => patmanu}/gitutil.py (99%)
>   rename tools/{patman => patmanu}/patchstream.py (99%)
>   rename tools/{patman => patmanu}/patman (100%)
>   rename tools/{patman => patmanu}/patman.rst (100%)
>   rename tools/{patman => patmanu}/project.py (95%)
>   rename tools/{patman => patmanu}/pytest.ini (100%)
>   rename tools/{patman => patmanu}/series.py (99%)
>   rename tools/{patman => patmanu}/settings.py (99%)
>   rename tools/{patman => patmanu}/setup.py (100%)
>   rename tools/{patman => patmanu}/status.py (99%)
>   rename tools/{patman => patmanu}/test/0000-cover-letter.patch (100%)
>   rename tools/{patman => patmanu}/test/0001-pci-Correct-cast-for-sandbox.patch (100%)
>   rename tools/{patman => patmanu}/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch (100%)
>   rename tools/{patman => patmanu}/test/test01.txt (100%)
>   rename tools/{patman => patmanu}/test_checkpatch.py (99%)
>   rename tools/{patman => patmanu}/test_settings.py (98%)
> 
> diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py
> index cbfffe191eb..a04eb5f5e42 100644
> --- a/tools/buildman/builder.py
> +++ b/tools/buildman/builder.py
> @@ -19,7 +19,7 @@ import time
>   
>   from buildman import builderthread
>   from buildman import toolchain
> -from patman import gitutil
> +from patmanu import gitutil
>   from u_boot_pylib import command
>   from u_boot_pylib import terminal
>   from u_boot_pylib.terminal import tprint
> diff --git a/tools/buildman/builderthread.py b/tools/buildman/builderthread.py
> index b8274addb4a..9ef63e61af7 100644
> --- a/tools/buildman/builderthread.py
> +++ b/tools/buildman/builderthread.py
> @@ -10,7 +10,7 @@ import sys
>   import threading
>   
>   from buildman import cfgutil
> -from patman import gitutil
> +from patmanu import gitutil
>   from u_boot_pylib import command
>   
>   RETURN_CODE_RETRY = -1
> diff --git a/tools/buildman/control.py b/tools/buildman/control.py
> index 76e4e2709ac..2dc8c6d7f55 100644
> --- a/tools/buildman/control.py
> +++ b/tools/buildman/control.py
> @@ -13,8 +13,8 @@ from buildman import bsettings
>   from buildman import cfgutil
>   from buildman import toolchain
>   from buildman.builder import Builder
> -from patman import gitutil
> -from patman import patchstream
> +from patmanu import gitutil
> +from patmanu import patchstream
>   from u_boot_pylib import command
>   from u_boot_pylib import terminal
>   from u_boot_pylib import tools
> diff --git a/tools/buildman/func_test.py b/tools/buildman/func_test.py
> index 3885b9f083b..10dddeef90a 100644
> --- a/tools/buildman/func_test.py
> +++ b/tools/buildman/func_test.py
> @@ -14,7 +14,7 @@ from buildman import bsettings
>   from buildman import cmdline
>   from buildman import control
>   from buildman import toolchain
> -from patman import gitutil
> +from patmanu import gitutil
>   from u_boot_pylib import command
>   from u_boot_pylib import terminal
>   from u_boot_pylib import test_util
> diff --git a/tools/buildman/main.py b/tools/buildman/main.py
> index 6076ba5d63d..4a4945ca5d4 100755
> --- a/tools/buildman/main.py
> +++ b/tools/buildman/main.py
> @@ -23,8 +23,8 @@ from buildman import builder
>   from buildman import cmdline
>   from buildman import control
>   from buildman import toolchain
> -from patman import patchstream
> -from patman import gitutil
> +from patmanu import patchstream
> +from patmanu import gitutil
>   from u_boot_pylib import terminal
>   from u_boot_pylib import test_util
>   
> diff --git a/tools/buildman/test.py b/tools/buildman/test.py
> index 9fa6445b798..196eb4cabb8 100644
> --- a/tools/buildman/test.py
> +++ b/tools/buildman/test.py
> @@ -16,7 +16,7 @@ from buildman import builder
>   from buildman import cfgutil
>   from buildman import control
>   from buildman import toolchain
> -from patman import commit
> +from patmanu import commit
>   from u_boot_pylib import command
>   from u_boot_pylib import terminal
>   from u_boot_pylib import test_util
> diff --git a/tools/patman b/tools/patman
> new file mode 120000
> index 00000000000..4081c0abf44
> --- /dev/null
> +++ b/tools/patman
> @@ -0,0 +1 @@
> +patmanu
> \ No newline at end of file
> diff --git a/tools/patman/.checkpatch.conf b/tools/patmanu/.checkpatch.conf
> similarity index 100%
> rename from tools/patman/.checkpatch.conf
> rename to tools/patmanu/.checkpatch.conf
> diff --git a/tools/patman/.gitignore b/tools/patmanu/.gitignore
> similarity index 100%
> rename from tools/patman/.gitignore
> rename to tools/patmanu/.gitignore
> diff --git a/tools/patman/README.rst b/tools/patmanu/README.rst
> similarity index 100%
> rename from tools/patman/README.rst
> rename to tools/patmanu/README.rst
> diff --git a/tools/patman/__init__.py b/tools/patmanu/__init__.py
> similarity index 85%
> rename from tools/patman/__init__.py
> rename to tools/patmanu/__init__.py
> index 08eeffdf6d2..138b1970ff5 100644
> --- a/tools/patman/__init__.py
> +++ b/tools/patmanu/__init__.py
> @@ -3,3 +3,6 @@
>   __all__ = ['checkpatch', 'commit', 'control', 'func_test', 'get_maintainer',
>              'gitutil', '__main__', 'patchstream', 'project', 'series',
>              'settings','setup', 'status', 'test_checkpatch', 'test_settings']
> +
> +def run_patman():
> +    print("Hello world")
> diff --git a/tools/patman/__main__.py b/tools/patmanu/__main__.py
> similarity index 96%
> rename from tools/patman/__main__.py
> rename to tools/patmanu/__main__.py
> index 30632559bb6..4dd332958dc 100755
> --- a/tools/patman/__main__.py
> +++ b/tools/patmanu/__main__.py
> @@ -14,17 +14,17 @@ import sys
>   import traceback
>   
>   if __name__ == "__main__":
> -    # Allow 'from patman import xxx to work'
> +    # Allow 'from patmanu import xxx to work'
>       our_path = os.path.dirname(os.path.realpath(__file__))
>       sys.path.append(os.path.join(our_path, '..'))
>   
>   # Our modules
> -from patman import control
> -from patman import func_test
> -from patman import gitutil
> -from patman import project
> -from patman import settings
> -from patman import test_checkpatch
> +from patmanu import control
> +from patmanu import func_test
> +from patmanu import gitutil
> +from patmanu import project
> +from patmanu import settings
> +from patmanu import test_checkpatch
>   from u_boot_pylib import terminal
>   from u_boot_pylib import test_util
>   from u_boot_pylib import tools
> @@ -171,7 +171,7 @@ elif args.cmd == 'send':
>           fd.close()
>   
>       elif args.full_help:
> -        with importlib.resources.path('patman', 'README.rst') as readme:
> +        with importlib.resources.path('patmanu', 'README.rst') as readme:
>               tools.print_full_help(str(readme))
>       else:
>           # If we are not processing tags, no need to warning about bad ones
> diff --git a/tools/patman/checkpatch.py b/tools/patmanu/checkpatch.py
> similarity index 99%
> rename from tools/patman/checkpatch.py
> rename to tools/patmanu/checkpatch.py
> index c1dec323f36..55d962f536f 100644
> --- a/tools/patman/checkpatch.py
> +++ b/tools/patmanu/checkpatch.py
> @@ -7,7 +7,7 @@ import os
>   import re
>   import sys
>   
> -from patman import gitutil
> +from patmanu import gitutil
>   from u_boot_pylib import command
>   from u_boot_pylib import terminal
>   
> diff --git a/tools/patman/commit.py b/tools/patmanu/commit.py
> similarity index 100%
> rename from tools/patman/commit.py
> rename to tools/patmanu/commit.py
> diff --git a/tools/patman/control.py b/tools/patmanu/control.py
> similarity index 98%
> rename from tools/patman/control.py
> rename to tools/patmanu/control.py
> index d1bcea0c9a7..b1e23870d9d 100644
> --- a/tools/patman/control.py
> +++ b/tools/patmanu/control.py
> @@ -11,9 +11,9 @@ the features of patman.
>   import os
>   import sys
>   
> -from patman import checkpatch
> -from patman import gitutil
> -from patman import patchstream
> +from patmanu import checkpatch
> +from patmanu import gitutil
> +from patmanu import patchstream
>   from u_boot_pylib import terminal
>   
>   def setup():
> @@ -235,6 +235,6 @@ def patchwork_status(branch, count, start, end, dest_branch, force,
>   
>       # Import this here to avoid failing on other commands if the dependencies
>       # are not present
> -    from patman import status
> +    from patmanu import status
>       status.check_patchwork_status(series, found[0], branch, dest_branch, force,
>                                     show_comments, url)
> diff --git a/tools/patman/func_test.py b/tools/patmanu/func_test.py
> similarity index 99%
> rename from tools/patman/func_test.py
> rename to tools/patmanu/func_test.py
> index 8c2dfbe4528..238fd5b6100 100644
> --- a/tools/patman/func_test.py
> +++ b/tools/patmanu/func_test.py
> @@ -16,19 +16,19 @@ import tempfile
>   import unittest
>   
>   
> -from patman.commit import Commit
> -from patman import control
> -from patman import gitutil
> -from patman import patchstream
> -from patman.patchstream import PatchStream
> -from patman.series import Series
> -from patman import settings
> +from patmanu.commit import Commit
> +from patmanu import control
> +from patmanu import gitutil
> +from patmanu import patchstream
> +from patmanu.patchstream import PatchStream
> +from patmanu.series import Series
> +from patmanu import settings
>   from u_boot_pylib import terminal
>   from u_boot_pylib import tools
>   from u_boot_pylib.test_util import capture_sys_output
>   
>   import pygit2
> -from patman import status
> +from patmanu import status
>   
>   PATMAN_DIR = pathlib.Path(__file__).parent
>   TEST_DATA_DIR = PATMAN_DIR / 'test/'
> diff --git a/tools/patman/get_maintainer.py b/tools/patmanu/get_maintainer.py
> similarity index 98%
> rename from tools/patman/get_maintainer.py
> rename to tools/patmanu/get_maintainer.py
> index 8df3d124bac..87581d72d84 100644
> --- a/tools/patman/get_maintainer.py
> +++ b/tools/patmanu/get_maintainer.py
> @@ -7,7 +7,7 @@ import os
>   import shlex
>   import shutil
>   
> -from patman import gitutil
> +from patmanu import gitutil
>   from u_boot_pylib import command
>   
>   
> diff --git a/tools/patman/gitutil.py b/tools/patmanu/gitutil.py
> similarity index 99%
> rename from tools/patman/gitutil.py
> rename to tools/patmanu/gitutil.py
> index 6700057359f..0afc5574a14 100644
> --- a/tools/patman/gitutil.py
> +++ b/tools/patmanu/gitutil.py
> @@ -5,7 +5,7 @@
>   import os
>   import sys
>   
> -from patman import settings
> +from patmanu import settings
>   from u_boot_pylib import command
>   from u_boot_pylib import terminal
>   
> @@ -621,7 +621,7 @@ def get_top_level():
>       This test makes sure that we are running tests in the right subdir
>   
>       >>> os.path.realpath(os.path.dirname(__file__)) == \
> -            os.path.join(get_top_level(), 'tools', 'patman')
> +            os.path.join(get_top_level(), 'tools', 'patmanu')
>       True
>       """
>       return command.output_one_line('git', 'rev-parse', '--show-toplevel')
> diff --git a/tools/patman/patchstream.py b/tools/patmanu/patchstream.py
> similarity index 99%
> rename from tools/patman/patchstream.py
> rename to tools/patmanu/patchstream.py
> index f91669a9404..71587aafaf3 100644
> --- a/tools/patman/patchstream.py
> +++ b/tools/patmanu/patchstream.py
> @@ -14,9 +14,9 @@ import queue
>   import shutil
>   import tempfile
>   
> -from patman import commit
> -from patman import gitutil
> -from patman.series import Series
> +from patmanu import commit
> +from patmanu import gitutil
> +from patmanu.series import Series
>   from u_boot_pylib import command
>   
>   # Tags that we detect and remove
> diff --git a/tools/patman/patman b/tools/patmanu/patman
> similarity index 100%
> rename from tools/patman/patman
> rename to tools/patmanu/patman
> diff --git a/tools/patman/patman.rst b/tools/patmanu/patman.rst
> similarity index 100%
> rename from tools/patman/patman.rst
> rename to tools/patmanu/patman.rst
> diff --git a/tools/patman/project.py b/tools/patmanu/project.py
> similarity index 95%
> rename from tools/patman/project.py
> rename to tools/patmanu/project.py
> index 4459042b5d4..3e77a3bb385 100644
> --- a/tools/patman/project.py
> +++ b/tools/patmanu/project.py
> @@ -4,7 +4,7 @@
>   
>   import os.path
>   
> -from patman import gitutil
> +from patmanu import gitutil
>   
>   def detect_project():
>       """Autodetect the name of the current project.
> diff --git a/tools/patman/pytest.ini b/tools/patmanu/pytest.ini
> similarity index 100%
> rename from tools/patman/pytest.ini
> rename to tools/patmanu/pytest.ini
> diff --git a/tools/patman/series.py b/tools/patmanu/series.py
> similarity index 99%
> rename from tools/patman/series.py
> rename to tools/patmanu/series.py
> index 88417acb434..f2d415609d2 100644
> --- a/tools/patman/series.py
> +++ b/tools/patmanu/series.py
> @@ -8,9 +8,9 @@ import collections
>   import itertools
>   import os
>   
> -from patman import get_maintainer
> -from patman import gitutil
> -from patman import settings
> +from patmanu import get_maintainer
> +from patmanu import gitutil
> +from patmanu import settings
>   from u_boot_pylib import terminal
>   from u_boot_pylib import tools
>   
> diff --git a/tools/patman/settings.py b/tools/patmanu/settings.py
> similarity index 99%
> rename from tools/patman/settings.py
> rename to tools/patmanu/settings.py
> index 636983e32da..21552da1387 100644
> --- a/tools/patman/settings.py
> +++ b/tools/patmanu/settings.py
> @@ -12,12 +12,12 @@ import argparse
>   import os
>   import re
>   
> -from patman import gitutil
> +from patmanu import gitutil
>   
>   """Default settings per-project.
>   
>   These are used by _ProjectConfigParser.  Settings names should match
> -the "dest" of the option parser from patman.py.
> +the "dest" of the option parser from patmanu.py.
>   """
>   _default_settings = {
>       "u-boot": {},
> diff --git a/tools/patman/setup.py b/tools/patmanu/setup.py
> similarity index 100%
> rename from tools/patman/setup.py
> rename to tools/patmanu/setup.py
> diff --git a/tools/patman/status.py b/tools/patmanu/status.py
> similarity index 99%
> rename from tools/patman/status.py
> rename to tools/patmanu/status.py
> index 5fb436e08ff..f4343ecb939 100644
> --- a/tools/patman/status.py
> +++ b/tools/patmanu/status.py
> @@ -16,8 +16,8 @@ import re
>   import pygit2
>   import requests
>   
> -from patman import patchstream
> -from patman.patchstream import PatchStream
> +from patmanu import patchstream
> +from patmanu.patchstream import PatchStream
>   from u_boot_pylib import terminal
>   from u_boot_pylib import tout
>   
> diff --git a/tools/patman/test/0000-cover-letter.patch b/tools/patmanu/test/0000-cover-letter.patch
> similarity index 100%
> rename from tools/patman/test/0000-cover-letter.patch
> rename to tools/patmanu/test/0000-cover-letter.patch
> diff --git a/tools/patman/test/0001-pci-Correct-cast-for-sandbox.patch b/tools/patmanu/test/0001-pci-Correct-cast-for-sandbox.patch
> similarity index 100%
> rename from tools/patman/test/0001-pci-Correct-cast-for-sandbox.patch
> rename to tools/patmanu/test/0001-pci-Correct-cast-for-sandbox.patch
> diff --git a/tools/patman/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch b/tools/patmanu/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch
> similarity index 100%
> rename from tools/patman/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch
> rename to tools/patmanu/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch
> diff --git a/tools/patman/test/test01.txt b/tools/patmanu/test/test01.txt
> similarity index 100%
> rename from tools/patman/test/test01.txt
> rename to tools/patmanu/test/test01.txt
> diff --git a/tools/patman/test_checkpatch.py b/tools/patmanu/test_checkpatch.py
> similarity index 99%
> rename from tools/patman/test_checkpatch.py
> rename to tools/patmanu/test_checkpatch.py
> index a8bb364e42b..da5e7853ace 100644
> --- a/tools/patman/test_checkpatch.py
> +++ b/tools/patmanu/test_checkpatch.py
> @@ -10,11 +10,11 @@ import os
>   import tempfile
>   import unittest
>   
> -from patman import checkpatch
> -from patman import gitutil
> -from patman import patchstream
> -from patman import series
> -from patman import commit
> +from patmanu import checkpatch
> +from patmanu import gitutil
> +from patmanu import patchstream
> +from patmanu import series
> +from patmanu import commit
>   
>   
>   class Line:
> diff --git a/tools/patman/test_settings.py b/tools/patmanu/test_settings.py
> similarity index 98%
> rename from tools/patman/test_settings.py
> rename to tools/patmanu/test_settings.py
> index 06b7cbc3ab6..67efe6d2860 100644
> --- a/tools/patman/test_settings.py
> +++ b/tools/patmanu/test_settings.py
> @@ -9,7 +9,7 @@ import os
>   import sys
>   import tempfile
>   
> -from patman import settings
> +from patmanu import settings
>   from u_boot_pylib import tools
>   
>   


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 07/15] patman: Rename directory to patmanu
  2023-02-19 16:49   ` Sean Anderson
@ 2023-02-19 18:50     ` Simon Glass
  2023-02-19 19:51       ` Sean Anderson
  0 siblings, 1 reply; 20+ messages in thread
From: Simon Glass @ 2023-02-19 18:50 UTC (permalink / raw)
  To: Sean Anderson
  Cc: U-Boot Mailing List, Heinrich Schuchardt, Alper Nebi Yasak,
	Neha Malcom Francis, Stefan Herbrechtsmeier, Philippe Reynes,
	Peng Fan, Douglas Anderson, Maxim Cournoyer

Hi Sean,

On Sun, 19 Feb 2023 at 09:49, Sean Anderson <seanga2@gmail.com> wrote:
>
> On 2/19/23 09:51, Simon Glass wrote:
> > The name 'patman' is already taken in PyPi so use 'patmanu' as the name
> > of the package. Rename the source directory accordingly.
>
> Can't we just have a pypi package named e.g. patch-manager while the actual
> package name stays the same?

That's exactly what I tried at first. When I use 'from patman import
xxx' I seem to need patman to be the actual package name. So I ended
up making it the same in the source tree as in the package.

Do you know of a way around that? I would much prefer something like that.

Regards,
Simon


>
> --Sean
>
> > Fix up some uses of this in buildman.
> >
> > Add a symlink to avoid any major disruption for people used to invoking
> > patman from within the source tree.
> >
> > Signed-off-by: Simon Glass <sjg@chromium.org>
> > ---
> >
> >   tools/buildman/builder.py                        |  2 +-
> >   tools/buildman/builderthread.py                  |  2 +-
> >   tools/buildman/control.py                        |  4 ++--
> >   tools/buildman/func_test.py                      |  2 +-
> >   tools/buildman/main.py                           |  4 ++--
> >   tools/buildman/test.py                           |  2 +-
> >   tools/patman                                     |  1 +
> >   tools/{patman => patmanu}/.checkpatch.conf       |  0
> >   tools/{patman => patmanu}/.gitignore             |  0
> >   tools/{patman => patmanu}/README.rst             |  0
> >   tools/{patman => patmanu}/__init__.py            |  3 +++
> >   tools/{patman => patmanu}/__main__.py            | 16 ++++++++--------
> >   tools/{patman => patmanu}/checkpatch.py          |  2 +-
> >   tools/{patman => patmanu}/commit.py              |  0
> >   tools/{patman => patmanu}/control.py             |  8 ++++----
> >   tools/{patman => patmanu}/func_test.py           | 16 ++++++++--------
> >   tools/{patman => patmanu}/get_maintainer.py      |  2 +-
> >   tools/{patman => patmanu}/gitutil.py             |  4 ++--
> >   tools/{patman => patmanu}/patchstream.py         |  6 +++---
> >   tools/{patman => patmanu}/patman                 |  0
> >   tools/{patman => patmanu}/patman.rst             |  0
> >   tools/{patman => patmanu}/project.py             |  2 +-
> >   tools/{patman => patmanu}/pytest.ini             |  0
> >   tools/{patman => patmanu}/series.py              |  6 +++---
> >   tools/{patman => patmanu}/settings.py            |  4 ++--
> >   tools/{patman => patmanu}/setup.py               |  0
> >   tools/{patman => patmanu}/status.py              |  4 ++--
> >   .../test/0000-cover-letter.patch                 |  0
> >   .../test/0001-pci-Correct-cast-for-sandbox.patch |  0
> >   ...ast-for-sandbox-in-fdtdec_setup_mem_siz.patch |  0
> >   tools/{patman => patmanu}/test/test01.txt        |  0
> >   tools/{patman => patmanu}/test_checkpatch.py     | 10 +++++-----
> >   tools/{patman => patmanu}/test_settings.py       |  2 +-
> >   33 files changed, 53 insertions(+), 49 deletions(-)
> >   create mode 120000 tools/patman
> >   rename tools/{patman => patmanu}/.checkpatch.conf (100%)
> >   rename tools/{patman => patmanu}/.gitignore (100%)
> >   rename tools/{patman => patmanu}/README.rst (100%)
> >   rename tools/{patman => patmanu}/__init__.py (85%)
> >   rename tools/{patman => patmanu}/__main__.py (96%)
> >   rename tools/{patman => patmanu}/checkpatch.py (99%)
> >   rename tools/{patman => patmanu}/commit.py (100%)
> >   rename tools/{patman => patmanu}/control.py (98%)
> >   rename tools/{patman => patmanu}/func_test.py (99%)
> >   rename tools/{patman => patmanu}/get_maintainer.py (98%)
> >   rename tools/{patman => patmanu}/gitutil.py (99%)
> >   rename tools/{patman => patmanu}/patchstream.py (99%)
> >   rename tools/{patman => patmanu}/patman (100%)
> >   rename tools/{patman => patmanu}/patman.rst (100%)
> >   rename tools/{patman => patmanu}/project.py (95%)
> >   rename tools/{patman => patmanu}/pytest.ini (100%)
> >   rename tools/{patman => patmanu}/series.py (99%)
> >   rename tools/{patman => patmanu}/settings.py (99%)
> >   rename tools/{patman => patmanu}/setup.py (100%)
> >   rename tools/{patman => patmanu}/status.py (99%)
> >   rename tools/{patman => patmanu}/test/0000-cover-letter.patch (100%)
> >   rename tools/{patman => patmanu}/test/0001-pci-Correct-cast-for-sandbox.patch (100%)
> >   rename tools/{patman => patmanu}/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch (100%)
> >   rename tools/{patman => patmanu}/test/test01.txt (100%)
> >   rename tools/{patman => patmanu}/test_checkpatch.py (99%)
> >   rename tools/{patman => patmanu}/test_settings.py (98%)
> >
> > diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py
> > index cbfffe191eb..a04eb5f5e42 100644
> > --- a/tools/buildman/builder.py
> > +++ b/tools/buildman/builder.py
> > @@ -19,7 +19,7 @@ import time
> >
> >   from buildman import builderthread
> >   from buildman import toolchain
> > -from patman import gitutil
> > +from patmanu import gitutil
> >   from u_boot_pylib import command
> >   from u_boot_pylib import terminal
> >   from u_boot_pylib.terminal import tprint
> > diff --git a/tools/buildman/builderthread.py b/tools/buildman/builderthread.py
> > index b8274addb4a..9ef63e61af7 100644
> > --- a/tools/buildman/builderthread.py
> > +++ b/tools/buildman/builderthread.py
> > @@ -10,7 +10,7 @@ import sys
> >   import threading
> >
> >   from buildman import cfgutil
> > -from patman import gitutil
> > +from patmanu import gitutil
> >   from u_boot_pylib import command
> >
> >   RETURN_CODE_RETRY = -1
> > diff --git a/tools/buildman/control.py b/tools/buildman/control.py
> > index 76e4e2709ac..2dc8c6d7f55 100644
> > --- a/tools/buildman/control.py
> > +++ b/tools/buildman/control.py
> > @@ -13,8 +13,8 @@ from buildman import bsettings
> >   from buildman import cfgutil
> >   from buildman import toolchain
> >   from buildman.builder import Builder
> > -from patman import gitutil
> > -from patman import patchstream
> > +from patmanu import gitutil
> > +from patmanu import patchstream
> >   from u_boot_pylib import command
> >   from u_boot_pylib import terminal
> >   from u_boot_pylib import tools
> > diff --git a/tools/buildman/func_test.py b/tools/buildman/func_test.py
> > index 3885b9f083b..10dddeef90a 100644
> > --- a/tools/buildman/func_test.py
> > +++ b/tools/buildman/func_test.py
> > @@ -14,7 +14,7 @@ from buildman import bsettings
> >   from buildman import cmdline
> >   from buildman import control
> >   from buildman import toolchain
> > -from patman import gitutil
> > +from patmanu import gitutil
> >   from u_boot_pylib import command
> >   from u_boot_pylib import terminal
> >   from u_boot_pylib import test_util
> > diff --git a/tools/buildman/main.py b/tools/buildman/main.py
> > index 6076ba5d63d..4a4945ca5d4 100755
> > --- a/tools/buildman/main.py
> > +++ b/tools/buildman/main.py
> > @@ -23,8 +23,8 @@ from buildman import builder
> >   from buildman import cmdline
> >   from buildman import control
> >   from buildman import toolchain
> > -from patman import patchstream
> > -from patman import gitutil
> > +from patmanu import patchstream
> > +from patmanu import gitutil
> >   from u_boot_pylib import terminal
> >   from u_boot_pylib import test_util
> >
> > diff --git a/tools/buildman/test.py b/tools/buildman/test.py
> > index 9fa6445b798..196eb4cabb8 100644
> > --- a/tools/buildman/test.py
> > +++ b/tools/buildman/test.py
> > @@ -16,7 +16,7 @@ from buildman import builder
> >   from buildman import cfgutil
> >   from buildman import control
> >   from buildman import toolchain
> > -from patman import commit
> > +from patmanu import commit
> >   from u_boot_pylib import command
> >   from u_boot_pylib import terminal
> >   from u_boot_pylib import test_util
> > diff --git a/tools/patman b/tools/patman
> > new file mode 120000
> > index 00000000000..4081c0abf44
> > --- /dev/null
> > +++ b/tools/patman
> > @@ -0,0 +1 @@
> > +patmanu
> > \ No newline at end of file
> > diff --git a/tools/patman/.checkpatch.conf b/tools/patmanu/.checkpatch.conf
> > similarity index 100%
> > rename from tools/patman/.checkpatch.conf
> > rename to tools/patmanu/.checkpatch.conf
> > diff --git a/tools/patman/.gitignore b/tools/patmanu/.gitignore
> > similarity index 100%
> > rename from tools/patman/.gitignore
> > rename to tools/patmanu/.gitignore
> > diff --git a/tools/patman/README.rst b/tools/patmanu/README.rst
> > similarity index 100%
> > rename from tools/patman/README.rst
> > rename to tools/patmanu/README.rst
> > diff --git a/tools/patman/__init__.py b/tools/patmanu/__init__.py
> > similarity index 85%
> > rename from tools/patman/__init__.py
> > rename to tools/patmanu/__init__.py
> > index 08eeffdf6d2..138b1970ff5 100644
> > --- a/tools/patman/__init__.py
> > +++ b/tools/patmanu/__init__.py
> > @@ -3,3 +3,6 @@
> >   __all__ = ['checkpatch', 'commit', 'control', 'func_test', 'get_maintainer',
> >              'gitutil', '__main__', 'patchstream', 'project', 'series',
> >              'settings','setup', 'status', 'test_checkpatch', 'test_settings']
> > +
> > +def run_patman():
> > +    print("Hello world")
> > diff --git a/tools/patman/__main__.py b/tools/patmanu/__main__.py
> > similarity index 96%
> > rename from tools/patman/__main__.py
> > rename to tools/patmanu/__main__.py
> > index 30632559bb6..4dd332958dc 100755
> > --- a/tools/patman/__main__.py
> > +++ b/tools/patmanu/__main__.py
> > @@ -14,17 +14,17 @@ import sys
> >   import traceback
> >
> >   if __name__ == "__main__":
> > -    # Allow 'from patman import xxx to work'
> > +    # Allow 'from patmanu import xxx to work'
> >       our_path = os.path.dirname(os.path.realpath(__file__))
> >       sys.path.append(os.path.join(our_path, '..'))
> >
> >   # Our modules
> > -from patman import control
> > -from patman import func_test
> > -from patman import gitutil
> > -from patman import project
> > -from patman import settings
> > -from patman import test_checkpatch
> > +from patmanu import control
> > +from patmanu import func_test
> > +from patmanu import gitutil
> > +from patmanu import project
> > +from patmanu import settings
> > +from patmanu import test_checkpatch
> >   from u_boot_pylib import terminal
> >   from u_boot_pylib import test_util
> >   from u_boot_pylib import tools
> > @@ -171,7 +171,7 @@ elif args.cmd == 'send':
> >           fd.close()
> >
> >       elif args.full_help:
> > -        with importlib.resources.path('patman', 'README.rst') as readme:
> > +        with importlib.resources.path('patmanu', 'README.rst') as readme:
> >               tools.print_full_help(str(readme))
> >       else:
> >           # If we are not processing tags, no need to warning about bad ones
> > diff --git a/tools/patman/checkpatch.py b/tools/patmanu/checkpatch.py
> > similarity index 99%
> > rename from tools/patman/checkpatch.py
> > rename to tools/patmanu/checkpatch.py
> > index c1dec323f36..55d962f536f 100644
> > --- a/tools/patman/checkpatch.py
> > +++ b/tools/patmanu/checkpatch.py
> > @@ -7,7 +7,7 @@ import os
> >   import re
> >   import sys
> >
> > -from patman import gitutil
> > +from patmanu import gitutil
> >   from u_boot_pylib import command
> >   from u_boot_pylib import terminal
> >
> > diff --git a/tools/patman/commit.py b/tools/patmanu/commit.py
> > similarity index 100%
> > rename from tools/patman/commit.py
> > rename to tools/patmanu/commit.py
> > diff --git a/tools/patman/control.py b/tools/patmanu/control.py
> > similarity index 98%
> > rename from tools/patman/control.py
> > rename to tools/patmanu/control.py
> > index d1bcea0c9a7..b1e23870d9d 100644
> > --- a/tools/patman/control.py
> > +++ b/tools/patmanu/control.py
> > @@ -11,9 +11,9 @@ the features of patman.
> >   import os
> >   import sys
> >
> > -from patman import checkpatch
> > -from patman import gitutil
> > -from patman import patchstream
> > +from patmanu import checkpatch
> > +from patmanu import gitutil
> > +from patmanu import patchstream
> >   from u_boot_pylib import terminal
> >
> >   def setup():
> > @@ -235,6 +235,6 @@ def patchwork_status(branch, count, start, end, dest_branch, force,
> >
> >       # Import this here to avoid failing on other commands if the dependencies
> >       # are not present
> > -    from patman import status
> > +    from patmanu import status
> >       status.check_patchwork_status(series, found[0], branch, dest_branch, force,
> >                                     show_comments, url)
> > diff --git a/tools/patman/func_test.py b/tools/patmanu/func_test.py
> > similarity index 99%
> > rename from tools/patman/func_test.py
> > rename to tools/patmanu/func_test.py
> > index 8c2dfbe4528..238fd5b6100 100644
> > --- a/tools/patman/func_test.py
> > +++ b/tools/patmanu/func_test.py
> > @@ -16,19 +16,19 @@ import tempfile
> >   import unittest
> >
> >
> > -from patman.commit import Commit
> > -from patman import control
> > -from patman import gitutil
> > -from patman import patchstream
> > -from patman.patchstream import PatchStream
> > -from patman.series import Series
> > -from patman import settings
> > +from patmanu.commit import Commit
> > +from patmanu import control
> > +from patmanu import gitutil
> > +from patmanu import patchstream
> > +from patmanu.patchstream import PatchStream
> > +from patmanu.series import Series
> > +from patmanu import settings
> >   from u_boot_pylib import terminal
> >   from u_boot_pylib import tools
> >   from u_boot_pylib.test_util import capture_sys_output
> >
> >   import pygit2
> > -from patman import status
> > +from patmanu import status
> >
> >   PATMAN_DIR = pathlib.Path(__file__).parent
> >   TEST_DATA_DIR = PATMAN_DIR / 'test/'
> > diff --git a/tools/patman/get_maintainer.py b/tools/patmanu/get_maintainer.py
> > similarity index 98%
> > rename from tools/patman/get_maintainer.py
> > rename to tools/patmanu/get_maintainer.py
> > index 8df3d124bac..87581d72d84 100644
> > --- a/tools/patman/get_maintainer.py
> > +++ b/tools/patmanu/get_maintainer.py
> > @@ -7,7 +7,7 @@ import os
> >   import shlex
> >   import shutil
> >
> > -from patman import gitutil
> > +from patmanu import gitutil
> >   from u_boot_pylib import command
> >
> >
> > diff --git a/tools/patman/gitutil.py b/tools/patmanu/gitutil.py
> > similarity index 99%
> > rename from tools/patman/gitutil.py
> > rename to tools/patmanu/gitutil.py
> > index 6700057359f..0afc5574a14 100644
> > --- a/tools/patman/gitutil.py
> > +++ b/tools/patmanu/gitutil.py
> > @@ -5,7 +5,7 @@
> >   import os
> >   import sys
> >
> > -from patman import settings
> > +from patmanu import settings
> >   from u_boot_pylib import command
> >   from u_boot_pylib import terminal
> >
> > @@ -621,7 +621,7 @@ def get_top_level():
> >       This test makes sure that we are running tests in the right subdir
> >
> >       >>> os.path.realpath(os.path.dirname(__file__)) == \
> > -            os.path.join(get_top_level(), 'tools', 'patman')
> > +            os.path.join(get_top_level(), 'tools', 'patmanu')
> >       True
> >       """
> >       return command.output_one_line('git', 'rev-parse', '--show-toplevel')
> > diff --git a/tools/patman/patchstream.py b/tools/patmanu/patchstream.py
> > similarity index 99%
> > rename from tools/patman/patchstream.py
> > rename to tools/patmanu/patchstream.py
> > index f91669a9404..71587aafaf3 100644
> > --- a/tools/patman/patchstream.py
> > +++ b/tools/patmanu/patchstream.py
> > @@ -14,9 +14,9 @@ import queue
> >   import shutil
> >   import tempfile
> >
> > -from patman import commit
> > -from patman import gitutil
> > -from patman.series import Series
> > +from patmanu import commit
> > +from patmanu import gitutil
> > +from patmanu.series import Series
> >   from u_boot_pylib import command
> >
> >   # Tags that we detect and remove
> > diff --git a/tools/patman/patman b/tools/patmanu/patman
> > similarity index 100%
> > rename from tools/patman/patman
> > rename to tools/patmanu/patman
> > diff --git a/tools/patman/patman.rst b/tools/patmanu/patman.rst
> > similarity index 100%
> > rename from tools/patman/patman.rst
> > rename to tools/patmanu/patman.rst
> > diff --git a/tools/patman/project.py b/tools/patmanu/project.py
> > similarity index 95%
> > rename from tools/patman/project.py
> > rename to tools/patmanu/project.py
> > index 4459042b5d4..3e77a3bb385 100644
> > --- a/tools/patman/project.py
> > +++ b/tools/patmanu/project.py
> > @@ -4,7 +4,7 @@
> >
> >   import os.path
> >
> > -from patman import gitutil
> > +from patmanu import gitutil
> >
> >   def detect_project():
> >       """Autodetect the name of the current project.
> > diff --git a/tools/patman/pytest.ini b/tools/patmanu/pytest.ini
> > similarity index 100%
> > rename from tools/patman/pytest.ini
> > rename to tools/patmanu/pytest.ini
> > diff --git a/tools/patman/series.py b/tools/patmanu/series.py
> > similarity index 99%
> > rename from tools/patman/series.py
> > rename to tools/patmanu/series.py
> > index 88417acb434..f2d415609d2 100644
> > --- a/tools/patman/series.py
> > +++ b/tools/patmanu/series.py
> > @@ -8,9 +8,9 @@ import collections
> >   import itertools
> >   import os
> >
> > -from patman import get_maintainer
> > -from patman import gitutil
> > -from patman import settings
> > +from patmanu import get_maintainer
> > +from patmanu import gitutil
> > +from patmanu import settings
> >   from u_boot_pylib import terminal
> >   from u_boot_pylib import tools
> >
> > diff --git a/tools/patman/settings.py b/tools/patmanu/settings.py
> > similarity index 99%
> > rename from tools/patman/settings.py
> > rename to tools/patmanu/settings.py
> > index 636983e32da..21552da1387 100644
> > --- a/tools/patman/settings.py
> > +++ b/tools/patmanu/settings.py
> > @@ -12,12 +12,12 @@ import argparse
> >   import os
> >   import re
> >
> > -from patman import gitutil
> > +from patmanu import gitutil
> >
> >   """Default settings per-project.
> >
> >   These are used by _ProjectConfigParser.  Settings names should match
> > -the "dest" of the option parser from patman.py.
> > +the "dest" of the option parser from patmanu.py.
> >   """
> >   _default_settings = {
> >       "u-boot": {},
> > diff --git a/tools/patman/setup.py b/tools/patmanu/setup.py
> > similarity index 100%
> > rename from tools/patman/setup.py
> > rename to tools/patmanu/setup.py
> > diff --git a/tools/patman/status.py b/tools/patmanu/status.py
> > similarity index 99%
> > rename from tools/patman/status.py
> > rename to tools/patmanu/status.py
> > index 5fb436e08ff..f4343ecb939 100644
> > --- a/tools/patman/status.py
> > +++ b/tools/patmanu/status.py
> > @@ -16,8 +16,8 @@ import re
> >   import pygit2
> >   import requests
> >
> > -from patman import patchstream
> > -from patman.patchstream import PatchStream
> > +from patmanu import patchstream
> > +from patmanu.patchstream import PatchStream
> >   from u_boot_pylib import terminal
> >   from u_boot_pylib import tout
> >
> > diff --git a/tools/patman/test/0000-cover-letter.patch b/tools/patmanu/test/0000-cover-letter.patch
> > similarity index 100%
> > rename from tools/patman/test/0000-cover-letter.patch
> > rename to tools/patmanu/test/0000-cover-letter.patch
> > diff --git a/tools/patman/test/0001-pci-Correct-cast-for-sandbox.patch b/tools/patmanu/test/0001-pci-Correct-cast-for-sandbox.patch
> > similarity index 100%
> > rename from tools/patman/test/0001-pci-Correct-cast-for-sandbox.patch
> > rename to tools/patmanu/test/0001-pci-Correct-cast-for-sandbox.patch
> > diff --git a/tools/patman/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch b/tools/patmanu/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch
> > similarity index 100%
> > rename from tools/patman/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch
> > rename to tools/patmanu/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch
> > diff --git a/tools/patman/test/test01.txt b/tools/patmanu/test/test01.txt
> > similarity index 100%
> > rename from tools/patman/test/test01.txt
> > rename to tools/patmanu/test/test01.txt
> > diff --git a/tools/patman/test_checkpatch.py b/tools/patmanu/test_checkpatch.py
> > similarity index 99%
> > rename from tools/patman/test_checkpatch.py
> > rename to tools/patmanu/test_checkpatch.py
> > index a8bb364e42b..da5e7853ace 100644
> > --- a/tools/patman/test_checkpatch.py
> > +++ b/tools/patmanu/test_checkpatch.py
> > @@ -10,11 +10,11 @@ import os
> >   import tempfile
> >   import unittest
> >
> > -from patman import checkpatch
> > -from patman import gitutil
> > -from patman import patchstream
> > -from patman import series
> > -from patman import commit
> > +from patmanu import checkpatch
> > +from patmanu import gitutil
> > +from patmanu import patchstream
> > +from patmanu import series
> > +from patmanu import commit
> >
> >
> >   class Line:
> > diff --git a/tools/patman/test_settings.py b/tools/patmanu/test_settings.py
> > similarity index 98%
> > rename from tools/patman/test_settings.py
> > rename to tools/patmanu/test_settings.py
> > index 06b7cbc3ab6..67efe6d2860 100644
> > --- a/tools/patman/test_settings.py
> > +++ b/tools/patmanu/test_settings.py
> > @@ -9,7 +9,7 @@ import os
> >   import sys
> >   import tempfile
> >
> > -from patman import settings
> > +from patmanu import settings
> >   from u_boot_pylib import tools
> >
> >
>

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 07/15] patman: Rename directory to patmanu
  2023-02-19 18:50     ` Simon Glass
@ 2023-02-19 19:51       ` Sean Anderson
  2023-02-19 22:03         ` Simon Glass
  0 siblings, 1 reply; 20+ messages in thread
From: Sean Anderson @ 2023-02-19 19:51 UTC (permalink / raw)
  To: Simon Glass
  Cc: U-Boot Mailing List, Heinrich Schuchardt, Alper Nebi Yasak,
	Neha Malcom Francis, Stefan Herbrechtsmeier, Philippe Reynes,
	Peng Fan, Douglas Anderson, Maxim Cournoyer

On 2/19/23 13:50, Simon Glass wrote:
> Hi Sean,
> 
> On Sun, 19 Feb 2023 at 09:49, Sean Anderson <seanga2@gmail.com> wrote:
>>
>> On 2/19/23 09:51, Simon Glass wrote:
>>> The name 'patman' is already taken in PyPi so use 'patmanu' as the name
>>> of the package. Rename the source directory accordingly.
>>
>> Can't we just have a pypi package named e.g. patch-manager while the actual
>> package name stays the same?
> 
> That's exactly what I tried at first. When I use 'from patman import
> xxx' I seem to need patman to be the actual package name. So I ended
> up making it the same in the source tree as in the package.
> 
> Do you know of a way around that? I would much prefer something like that.
>

I thought it was as simple as something like

from setuptools import setup
setup(name='patch-manager',
       version='1.0',
       license='GPL-2.0+',
       scripts=['patman'],
       packages=['patman'],
       package_dir={'patman': ''},
       package_data={'patman': ['README.rst']},
       classifiers=['Environment :: Console',
                    'Topic :: Software Development'])

--Sean

> Regards,
> Simon
> 
> 
>>
>> --Sean
>>
>>> Fix up some uses of this in buildman.
>>>
>>> Add a symlink to avoid any major disruption for people used to invoking
>>> patman from within the source tree.
>>>
>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>>> ---
>>>
>>>    tools/buildman/builder.py                        |  2 +-
>>>    tools/buildman/builderthread.py                  |  2 +-
>>>    tools/buildman/control.py                        |  4 ++--
>>>    tools/buildman/func_test.py                      |  2 +-
>>>    tools/buildman/main.py                           |  4 ++--
>>>    tools/buildman/test.py                           |  2 +-
>>>    tools/patman                                     |  1 +
>>>    tools/{patman => patmanu}/.checkpatch.conf       |  0
>>>    tools/{patman => patmanu}/.gitignore             |  0
>>>    tools/{patman => patmanu}/README.rst             |  0
>>>    tools/{patman => patmanu}/__init__.py            |  3 +++
>>>    tools/{patman => patmanu}/__main__.py            | 16 ++++++++--------
>>>    tools/{patman => patmanu}/checkpatch.py          |  2 +-
>>>    tools/{patman => patmanu}/commit.py              |  0
>>>    tools/{patman => patmanu}/control.py             |  8 ++++----
>>>    tools/{patman => patmanu}/func_test.py           | 16 ++++++++--------
>>>    tools/{patman => patmanu}/get_maintainer.py      |  2 +-
>>>    tools/{patman => patmanu}/gitutil.py             |  4 ++--
>>>    tools/{patman => patmanu}/patchstream.py         |  6 +++---
>>>    tools/{patman => patmanu}/patman                 |  0
>>>    tools/{patman => patmanu}/patman.rst             |  0
>>>    tools/{patman => patmanu}/project.py             |  2 +-
>>>    tools/{patman => patmanu}/pytest.ini             |  0
>>>    tools/{patman => patmanu}/series.py              |  6 +++---
>>>    tools/{patman => patmanu}/settings.py            |  4 ++--
>>>    tools/{patman => patmanu}/setup.py               |  0
>>>    tools/{patman => patmanu}/status.py              |  4 ++--
>>>    .../test/0000-cover-letter.patch                 |  0
>>>    .../test/0001-pci-Correct-cast-for-sandbox.patch |  0
>>>    ...ast-for-sandbox-in-fdtdec_setup_mem_siz.patch |  0
>>>    tools/{patman => patmanu}/test/test01.txt        |  0
>>>    tools/{patman => patmanu}/test_checkpatch.py     | 10 +++++-----
>>>    tools/{patman => patmanu}/test_settings.py       |  2 +-
>>>    33 files changed, 53 insertions(+), 49 deletions(-)
>>>    create mode 120000 tools/patman
>>>    rename tools/{patman => patmanu}/.checkpatch.conf (100%)
>>>    rename tools/{patman => patmanu}/.gitignore (100%)
>>>    rename tools/{patman => patmanu}/README.rst (100%)
>>>    rename tools/{patman => patmanu}/__init__.py (85%)
>>>    rename tools/{patman => patmanu}/__main__.py (96%)
>>>    rename tools/{patman => patmanu}/checkpatch.py (99%)
>>>    rename tools/{patman => patmanu}/commit.py (100%)
>>>    rename tools/{patman => patmanu}/control.py (98%)
>>>    rename tools/{patman => patmanu}/func_test.py (99%)
>>>    rename tools/{patman => patmanu}/get_maintainer.py (98%)
>>>    rename tools/{patman => patmanu}/gitutil.py (99%)
>>>    rename tools/{patman => patmanu}/patchstream.py (99%)
>>>    rename tools/{patman => patmanu}/patman (100%)
>>>    rename tools/{patman => patmanu}/patman.rst (100%)
>>>    rename tools/{patman => patmanu}/project.py (95%)
>>>    rename tools/{patman => patmanu}/pytest.ini (100%)
>>>    rename tools/{patman => patmanu}/series.py (99%)
>>>    rename tools/{patman => patmanu}/settings.py (99%)
>>>    rename tools/{patman => patmanu}/setup.py (100%)
>>>    rename tools/{patman => patmanu}/status.py (99%)
>>>    rename tools/{patman => patmanu}/test/0000-cover-letter.patch (100%)
>>>    rename tools/{patman => patmanu}/test/0001-pci-Correct-cast-for-sandbox.patch (100%)
>>>    rename tools/{patman => patmanu}/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch (100%)
>>>    rename tools/{patman => patmanu}/test/test01.txt (100%)
>>>    rename tools/{patman => patmanu}/test_checkpatch.py (99%)
>>>    rename tools/{patman => patmanu}/test_settings.py (98%)
>>>
>>> diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py
>>> index cbfffe191eb..a04eb5f5e42 100644
>>> --- a/tools/buildman/builder.py
>>> +++ b/tools/buildman/builder.py
>>> @@ -19,7 +19,7 @@ import time
>>>
>>>    from buildman import builderthread
>>>    from buildman import toolchain
>>> -from patman import gitutil
>>> +from patmanu import gitutil
>>>    from u_boot_pylib import command
>>>    from u_boot_pylib import terminal
>>>    from u_boot_pylib.terminal import tprint
>>> diff --git a/tools/buildman/builderthread.py b/tools/buildman/builderthread.py
>>> index b8274addb4a..9ef63e61af7 100644
>>> --- a/tools/buildman/builderthread.py
>>> +++ b/tools/buildman/builderthread.py
>>> @@ -10,7 +10,7 @@ import sys
>>>    import threading
>>>
>>>    from buildman import cfgutil
>>> -from patman import gitutil
>>> +from patmanu import gitutil
>>>    from u_boot_pylib import command
>>>
>>>    RETURN_CODE_RETRY = -1
>>> diff --git a/tools/buildman/control.py b/tools/buildman/control.py
>>> index 76e4e2709ac..2dc8c6d7f55 100644
>>> --- a/tools/buildman/control.py
>>> +++ b/tools/buildman/control.py
>>> @@ -13,8 +13,8 @@ from buildman import bsettings
>>>    from buildman import cfgutil
>>>    from buildman import toolchain
>>>    from buildman.builder import Builder
>>> -from patman import gitutil
>>> -from patman import patchstream
>>> +from patmanu import gitutil
>>> +from patmanu import patchstream
>>>    from u_boot_pylib import command
>>>    from u_boot_pylib import terminal
>>>    from u_boot_pylib import tools
>>> diff --git a/tools/buildman/func_test.py b/tools/buildman/func_test.py
>>> index 3885b9f083b..10dddeef90a 100644
>>> --- a/tools/buildman/func_test.py
>>> +++ b/tools/buildman/func_test.py
>>> @@ -14,7 +14,7 @@ from buildman import bsettings
>>>    from buildman import cmdline
>>>    from buildman import control
>>>    from buildman import toolchain
>>> -from patman import gitutil
>>> +from patmanu import gitutil
>>>    from u_boot_pylib import command
>>>    from u_boot_pylib import terminal
>>>    from u_boot_pylib import test_util
>>> diff --git a/tools/buildman/main.py b/tools/buildman/main.py
>>> index 6076ba5d63d..4a4945ca5d4 100755
>>> --- a/tools/buildman/main.py
>>> +++ b/tools/buildman/main.py
>>> @@ -23,8 +23,8 @@ from buildman import builder
>>>    from buildman import cmdline
>>>    from buildman import control
>>>    from buildman import toolchain
>>> -from patman import patchstream
>>> -from patman import gitutil
>>> +from patmanu import patchstream
>>> +from patmanu import gitutil
>>>    from u_boot_pylib import terminal
>>>    from u_boot_pylib import test_util
>>>
>>> diff --git a/tools/buildman/test.py b/tools/buildman/test.py
>>> index 9fa6445b798..196eb4cabb8 100644
>>> --- a/tools/buildman/test.py
>>> +++ b/tools/buildman/test.py
>>> @@ -16,7 +16,7 @@ from buildman import builder
>>>    from buildman import cfgutil
>>>    from buildman import control
>>>    from buildman import toolchain
>>> -from patman import commit
>>> +from patmanu import commit
>>>    from u_boot_pylib import command
>>>    from u_boot_pylib import terminal
>>>    from u_boot_pylib import test_util
>>> diff --git a/tools/patman b/tools/patman
>>> new file mode 120000
>>> index 00000000000..4081c0abf44
>>> --- /dev/null
>>> +++ b/tools/patman
>>> @@ -0,0 +1 @@
>>> +patmanu
>>> \ No newline at end of file
>>> diff --git a/tools/patman/.checkpatch.conf b/tools/patmanu/.checkpatch.conf
>>> similarity index 100%
>>> rename from tools/patman/.checkpatch.conf
>>> rename to tools/patmanu/.checkpatch.conf
>>> diff --git a/tools/patman/.gitignore b/tools/patmanu/.gitignore
>>> similarity index 100%
>>> rename from tools/patman/.gitignore
>>> rename to tools/patmanu/.gitignore
>>> diff --git a/tools/patman/README.rst b/tools/patmanu/README.rst
>>> similarity index 100%
>>> rename from tools/patman/README.rst
>>> rename to tools/patmanu/README.rst
>>> diff --git a/tools/patman/__init__.py b/tools/patmanu/__init__.py
>>> similarity index 85%
>>> rename from tools/patman/__init__.py
>>> rename to tools/patmanu/__init__.py
>>> index 08eeffdf6d2..138b1970ff5 100644
>>> --- a/tools/patman/__init__.py
>>> +++ b/tools/patmanu/__init__.py
>>> @@ -3,3 +3,6 @@
>>>    __all__ = ['checkpatch', 'commit', 'control', 'func_test', 'get_maintainer',
>>>               'gitutil', '__main__', 'patchstream', 'project', 'series',
>>>               'settings','setup', 'status', 'test_checkpatch', 'test_settings']
>>> +
>>> +def run_patman():
>>> +    print("Hello world")
>>> diff --git a/tools/patman/__main__.py b/tools/patmanu/__main__.py
>>> similarity index 96%
>>> rename from tools/patman/__main__.py
>>> rename to tools/patmanu/__main__.py
>>> index 30632559bb6..4dd332958dc 100755
>>> --- a/tools/patman/__main__.py
>>> +++ b/tools/patmanu/__main__.py
>>> @@ -14,17 +14,17 @@ import sys
>>>    import traceback
>>>
>>>    if __name__ == "__main__":
>>> -    # Allow 'from patman import xxx to work'
>>> +    # Allow 'from patmanu import xxx to work'
>>>        our_path = os.path.dirname(os.path.realpath(__file__))
>>>        sys.path.append(os.path.join(our_path, '..'))
>>>
>>>    # Our modules
>>> -from patman import control
>>> -from patman import func_test
>>> -from patman import gitutil
>>> -from patman import project
>>> -from patman import settings
>>> -from patman import test_checkpatch
>>> +from patmanu import control
>>> +from patmanu import func_test
>>> +from patmanu import gitutil
>>> +from patmanu import project
>>> +from patmanu import settings
>>> +from patmanu import test_checkpatch
>>>    from u_boot_pylib import terminal
>>>    from u_boot_pylib import test_util
>>>    from u_boot_pylib import tools
>>> @@ -171,7 +171,7 @@ elif args.cmd == 'send':
>>>            fd.close()
>>>
>>>        elif args.full_help:
>>> -        with importlib.resources.path('patman', 'README.rst') as readme:
>>> +        with importlib.resources.path('patmanu', 'README.rst') as readme:
>>>                tools.print_full_help(str(readme))
>>>        else:
>>>            # If we are not processing tags, no need to warning about bad ones
>>> diff --git a/tools/patman/checkpatch.py b/tools/patmanu/checkpatch.py
>>> similarity index 99%
>>> rename from tools/patman/checkpatch.py
>>> rename to tools/patmanu/checkpatch.py
>>> index c1dec323f36..55d962f536f 100644
>>> --- a/tools/patman/checkpatch.py
>>> +++ b/tools/patmanu/checkpatch.py
>>> @@ -7,7 +7,7 @@ import os
>>>    import re
>>>    import sys
>>>
>>> -from patman import gitutil
>>> +from patmanu import gitutil
>>>    from u_boot_pylib import command
>>>    from u_boot_pylib import terminal
>>>
>>> diff --git a/tools/patman/commit.py b/tools/patmanu/commit.py
>>> similarity index 100%
>>> rename from tools/patman/commit.py
>>> rename to tools/patmanu/commit.py
>>> diff --git a/tools/patman/control.py b/tools/patmanu/control.py
>>> similarity index 98%
>>> rename from tools/patman/control.py
>>> rename to tools/patmanu/control.py
>>> index d1bcea0c9a7..b1e23870d9d 100644
>>> --- a/tools/patman/control.py
>>> +++ b/tools/patmanu/control.py
>>> @@ -11,9 +11,9 @@ the features of patman.
>>>    import os
>>>    import sys
>>>
>>> -from patman import checkpatch
>>> -from patman import gitutil
>>> -from patman import patchstream
>>> +from patmanu import checkpatch
>>> +from patmanu import gitutil
>>> +from patmanu import patchstream
>>>    from u_boot_pylib import terminal
>>>
>>>    def setup():
>>> @@ -235,6 +235,6 @@ def patchwork_status(branch, count, start, end, dest_branch, force,
>>>
>>>        # Import this here to avoid failing on other commands if the dependencies
>>>        # are not present
>>> -    from patman import status
>>> +    from patmanu import status
>>>        status.check_patchwork_status(series, found[0], branch, dest_branch, force,
>>>                                      show_comments, url)
>>> diff --git a/tools/patman/func_test.py b/tools/patmanu/func_test.py
>>> similarity index 99%
>>> rename from tools/patman/func_test.py
>>> rename to tools/patmanu/func_test.py
>>> index 8c2dfbe4528..238fd5b6100 100644
>>> --- a/tools/patman/func_test.py
>>> +++ b/tools/patmanu/func_test.py
>>> @@ -16,19 +16,19 @@ import tempfile
>>>    import unittest
>>>
>>>
>>> -from patman.commit import Commit
>>> -from patman import control
>>> -from patman import gitutil
>>> -from patman import patchstream
>>> -from patman.patchstream import PatchStream
>>> -from patman.series import Series
>>> -from patman import settings
>>> +from patmanu.commit import Commit
>>> +from patmanu import control
>>> +from patmanu import gitutil
>>> +from patmanu import patchstream
>>> +from patmanu.patchstream import PatchStream
>>> +from patmanu.series import Series
>>> +from patmanu import settings
>>>    from u_boot_pylib import terminal
>>>    from u_boot_pylib import tools
>>>    from u_boot_pylib.test_util import capture_sys_output
>>>
>>>    import pygit2
>>> -from patman import status
>>> +from patmanu import status
>>>
>>>    PATMAN_DIR = pathlib.Path(__file__).parent
>>>    TEST_DATA_DIR = PATMAN_DIR / 'test/'
>>> diff --git a/tools/patman/get_maintainer.py b/tools/patmanu/get_maintainer.py
>>> similarity index 98%
>>> rename from tools/patman/get_maintainer.py
>>> rename to tools/patmanu/get_maintainer.py
>>> index 8df3d124bac..87581d72d84 100644
>>> --- a/tools/patman/get_maintainer.py
>>> +++ b/tools/patmanu/get_maintainer.py
>>> @@ -7,7 +7,7 @@ import os
>>>    import shlex
>>>    import shutil
>>>
>>> -from patman import gitutil
>>> +from patmanu import gitutil
>>>    from u_boot_pylib import command
>>>
>>>
>>> diff --git a/tools/patman/gitutil.py b/tools/patmanu/gitutil.py
>>> similarity index 99%
>>> rename from tools/patman/gitutil.py
>>> rename to tools/patmanu/gitutil.py
>>> index 6700057359f..0afc5574a14 100644
>>> --- a/tools/patman/gitutil.py
>>> +++ b/tools/patmanu/gitutil.py
>>> @@ -5,7 +5,7 @@
>>>    import os
>>>    import sys
>>>
>>> -from patman import settings
>>> +from patmanu import settings
>>>    from u_boot_pylib import command
>>>    from u_boot_pylib import terminal
>>>
>>> @@ -621,7 +621,7 @@ def get_top_level():
>>>        This test makes sure that we are running tests in the right subdir
>>>
>>>        >>> os.path.realpath(os.path.dirname(__file__)) == \
>>> -            os.path.join(get_top_level(), 'tools', 'patman')
>>> +            os.path.join(get_top_level(), 'tools', 'patmanu')
>>>        True
>>>        """
>>>        return command.output_one_line('git', 'rev-parse', '--show-toplevel')
>>> diff --git a/tools/patman/patchstream.py b/tools/patmanu/patchstream.py
>>> similarity index 99%
>>> rename from tools/patman/patchstream.py
>>> rename to tools/patmanu/patchstream.py
>>> index f91669a9404..71587aafaf3 100644
>>> --- a/tools/patman/patchstream.py
>>> +++ b/tools/patmanu/patchstream.py
>>> @@ -14,9 +14,9 @@ import queue
>>>    import shutil
>>>    import tempfile
>>>
>>> -from patman import commit
>>> -from patman import gitutil
>>> -from patman.series import Series
>>> +from patmanu import commit
>>> +from patmanu import gitutil
>>> +from patmanu.series import Series
>>>    from u_boot_pylib import command
>>>
>>>    # Tags that we detect and remove
>>> diff --git a/tools/patman/patman b/tools/patmanu/patman
>>> similarity index 100%
>>> rename from tools/patman/patman
>>> rename to tools/patmanu/patman
>>> diff --git a/tools/patman/patman.rst b/tools/patmanu/patman.rst
>>> similarity index 100%
>>> rename from tools/patman/patman.rst
>>> rename to tools/patmanu/patman.rst
>>> diff --git a/tools/patman/project.py b/tools/patmanu/project.py
>>> similarity index 95%
>>> rename from tools/patman/project.py
>>> rename to tools/patmanu/project.py
>>> index 4459042b5d4..3e77a3bb385 100644
>>> --- a/tools/patman/project.py
>>> +++ b/tools/patmanu/project.py
>>> @@ -4,7 +4,7 @@
>>>
>>>    import os.path
>>>
>>> -from patman import gitutil
>>> +from patmanu import gitutil
>>>
>>>    def detect_project():
>>>        """Autodetect the name of the current project.
>>> diff --git a/tools/patman/pytest.ini b/tools/patmanu/pytest.ini
>>> similarity index 100%
>>> rename from tools/patman/pytest.ini
>>> rename to tools/patmanu/pytest.ini
>>> diff --git a/tools/patman/series.py b/tools/patmanu/series.py
>>> similarity index 99%
>>> rename from tools/patman/series.py
>>> rename to tools/patmanu/series.py
>>> index 88417acb434..f2d415609d2 100644
>>> --- a/tools/patman/series.py
>>> +++ b/tools/patmanu/series.py
>>> @@ -8,9 +8,9 @@ import collections
>>>    import itertools
>>>    import os
>>>
>>> -from patman import get_maintainer
>>> -from patman import gitutil
>>> -from patman import settings
>>> +from patmanu import get_maintainer
>>> +from patmanu import gitutil
>>> +from patmanu import settings
>>>    from u_boot_pylib import terminal
>>>    from u_boot_pylib import tools
>>>
>>> diff --git a/tools/patman/settings.py b/tools/patmanu/settings.py
>>> similarity index 99%
>>> rename from tools/patman/settings.py
>>> rename to tools/patmanu/settings.py
>>> index 636983e32da..21552da1387 100644
>>> --- a/tools/patman/settings.py
>>> +++ b/tools/patmanu/settings.py
>>> @@ -12,12 +12,12 @@ import argparse
>>>    import os
>>>    import re
>>>
>>> -from patman import gitutil
>>> +from patmanu import gitutil
>>>
>>>    """Default settings per-project.
>>>
>>>    These are used by _ProjectConfigParser.  Settings names should match
>>> -the "dest" of the option parser from patman.py.
>>> +the "dest" of the option parser from patmanu.py.
>>>    """
>>>    _default_settings = {
>>>        "u-boot": {},
>>> diff --git a/tools/patman/setup.py b/tools/patmanu/setup.py
>>> similarity index 100%
>>> rename from tools/patman/setup.py
>>> rename to tools/patmanu/setup.py
>>> diff --git a/tools/patman/status.py b/tools/patmanu/status.py
>>> similarity index 99%
>>> rename from tools/patman/status.py
>>> rename to tools/patmanu/status.py
>>> index 5fb436e08ff..f4343ecb939 100644
>>> --- a/tools/patman/status.py
>>> +++ b/tools/patmanu/status.py
>>> @@ -16,8 +16,8 @@ import re
>>>    import pygit2
>>>    import requests
>>>
>>> -from patman import patchstream
>>> -from patman.patchstream import PatchStream
>>> +from patmanu import patchstream
>>> +from patmanu.patchstream import PatchStream
>>>    from u_boot_pylib import terminal
>>>    from u_boot_pylib import tout
>>>
>>> diff --git a/tools/patman/test/0000-cover-letter.patch b/tools/patmanu/test/0000-cover-letter.patch
>>> similarity index 100%
>>> rename from tools/patman/test/0000-cover-letter.patch
>>> rename to tools/patmanu/test/0000-cover-letter.patch
>>> diff --git a/tools/patman/test/0001-pci-Correct-cast-for-sandbox.patch b/tools/patmanu/test/0001-pci-Correct-cast-for-sandbox.patch
>>> similarity index 100%
>>> rename from tools/patman/test/0001-pci-Correct-cast-for-sandbox.patch
>>> rename to tools/patmanu/test/0001-pci-Correct-cast-for-sandbox.patch
>>> diff --git a/tools/patman/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch b/tools/patmanu/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch
>>> similarity index 100%
>>> rename from tools/patman/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch
>>> rename to tools/patmanu/test/0002-fdt-Correct-cast-for-sandbox-in-fdtdec_setup_mem_siz.patch
>>> diff --git a/tools/patman/test/test01.txt b/tools/patmanu/test/test01.txt
>>> similarity index 100%
>>> rename from tools/patman/test/test01.txt
>>> rename to tools/patmanu/test/test01.txt
>>> diff --git a/tools/patman/test_checkpatch.py b/tools/patmanu/test_checkpatch.py
>>> similarity index 99%
>>> rename from tools/patman/test_checkpatch.py
>>> rename to tools/patmanu/test_checkpatch.py
>>> index a8bb364e42b..da5e7853ace 100644
>>> --- a/tools/patman/test_checkpatch.py
>>> +++ b/tools/patmanu/test_checkpatch.py
>>> @@ -10,11 +10,11 @@ import os
>>>    import tempfile
>>>    import unittest
>>>
>>> -from patman import checkpatch
>>> -from patman import gitutil
>>> -from patman import patchstream
>>> -from patman import series
>>> -from patman import commit
>>> +from patmanu import checkpatch
>>> +from patmanu import gitutil
>>> +from patmanu import patchstream
>>> +from patmanu import series
>>> +from patmanu import commit
>>>
>>>
>>>    class Line:
>>> diff --git a/tools/patman/test_settings.py b/tools/patmanu/test_settings.py
>>> similarity index 98%
>>> rename from tools/patman/test_settings.py
>>> rename to tools/patmanu/test_settings.py
>>> index 06b7cbc3ab6..67efe6d2860 100644
>>> --- a/tools/patman/test_settings.py
>>> +++ b/tools/patmanu/test_settings.py
>>> @@ -9,7 +9,7 @@ import os
>>>    import sys
>>>    import tempfile
>>>
>>> -from patman import settings
>>> +from patmanu import settings
>>>    from u_boot_pylib import tools
>>>
>>>
>>


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 07/15] patman: Rename directory to patmanu
  2023-02-19 19:51       ` Sean Anderson
@ 2023-02-19 22:03         ` Simon Glass
  0 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2023-02-19 22:03 UTC (permalink / raw)
  To: Sean Anderson
  Cc: U-Boot Mailing List, Heinrich Schuchardt, Alper Nebi Yasak,
	Neha Malcom Francis, Stefan Herbrechtsmeier, Philippe Reynes,
	Peng Fan, Douglas Anderson, Maxim Cournoyer

Hi Sean,

On Sun, 19 Feb 2023 at 12:51, Sean Anderson <seanga2@gmail.com> wrote:
>
> On 2/19/23 13:50, Simon Glass wrote:
> > Hi Sean,
> >
> > On Sun, 19 Feb 2023 at 09:49, Sean Anderson <seanga2@gmail.com> wrote:
> >>
> >> On 2/19/23 09:51, Simon Glass wrote:
> >>> The name 'patman' is already taken in PyPi so use 'patmanu' as the name
> >>> of the package. Rename the source directory accordingly.
> >>
> >> Can't we just have a pypi package named e.g. patch-manager while the actual
> >> package name stays the same?
> >
> > That's exactly what I tried at first. When I use 'from patman import
> > xxx' I seem to need patman to be the actual package name. So I ended
> > up making it the same in the source tree as in the package.
> >
> > Do you know of a way around that? I would much prefer something like that.
> >
>
> I thought it was as simple as something like
>
> from setuptools import setup
> setup(name='patch-manager',
>        version='1.0',
>        license='GPL-2.0+',
>        scripts=['patman'],
>        packages=['patman'],
>        package_dir={'patman': ''},
>        package_data={'patman': ['README.rst']},
>        classifiers=['Environment :: Console',
>                     'Topic :: Software Development'])

But that is the setup file..I am trying to create something for use
with pip. I am using a .toml file.

But I am pretty new to this so may be missing something.

I made some changes along the lines of what you said and pushed the tree here:

https://github.com/sjg20/u-boot/tree/pata2-try

Could you please take a look and advise how to do this? You can run with:

$ scripts/make_pip.sh patman -n

Regards,
Simon

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2023-02-19 22:04 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-19 14:51 [PATCH 00/15] tools: Support uploading tools to PyPi for use with pip Simon Glass
2023-02-19 14:51 ` [PATCH 01/15] binman: Avoid unwanted output in testFitFirmwareLoadables() Simon Glass
2023-02-19 14:51 ` [PATCH 02/15] Revert "patman: test_util: Print test stdout/stderr within test summaries" Simon Glass
2023-02-19 14:51 ` [PATCH 03/15] Remove concurrencytest Simon Glass
2023-02-19 14:51 ` [PATCH 04/15] patman: Move library functions into a library directory Simon Glass
2023-02-19 14:51 ` [PATCH 05/15] script: Add a script to build a PyPi package Simon Glass
2023-02-19 14:51 ` [PATCH 06/15] patman: Add support for building a u_boot_tools " Simon Glass
2023-02-19 14:51 ` [PATCH 07/15] patman: Rename directory to patmanu Simon Glass
2023-02-19 16:49   ` Sean Anderson
2023-02-19 18:50     ` Simon Glass
2023-02-19 19:51       ` Sean Anderson
2023-02-19 22:03         ` Simon Glass
2023-02-19 14:51 ` [PATCH 08/15] patman: Add support for building a patmanu PyPi package Simon Glass
2023-02-19 14:51 ` [PATCH 09/15] buildman: Add support for building a buildman " Simon Glass
2023-02-19 14:51 ` [PATCH 10/15] dtoc: Add support for building a dtoc " Simon Glass
2023-02-19 14:51 ` [PATCH 11/15] binman: Rename directory to binmanu Simon Glass
2023-02-19 14:51 ` [PATCH 12/15] binman: Add support for building a binmanu PyPi package Simon Glass
2023-02-19 14:51 ` [PATCH 13/15] test: Add concurrencytest to the requirements Simon Glass
2023-02-19 14:51 ` [PATCH 14/15] doc: Add notes on how to install patman and binman Simon Glass
2023-02-19 14:51 ` [PATCH 15/15] CI: Add a check for building tools for PyPi Simon Glass

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.