xref: /aosp_15_r20/external/coreboot/Documentation/util.md (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1
2[//]: # ( DO NOT EDIT - AUTOGENERATED FILE )
3
4[//]: # ( RUN 'util/util_readme/util_readme.sh' to regenerate )
5
6# Utilities
7
8## List of utils
9
10_Scripts and programs found in the coreboot `./util` directory_
11
12* __abuild__ - coreboot autobuild script builds coreboot images for all
13available targets. `bash`
14* __acpi__ - Walk through all ACPI tables with their addresses. `bash`
15* __amdfwtool__ - Create AMD Firmware combination `C`
16* __amdtools__ Various tools for AMD processors
17	* _update_efs_spi_speed_ - Change SPI speed in binary. `Bash`
18	* Tools to compare extended K8 memory settings.
19	* _k8-compare-pci-space.pl_ - Shows differences between values
20in PCI space and the default value. `Perl`
21	* _k8-interpret-extended-memory-settings.pl_ - Shows
22differences between memory controller values and the default value.
23`Perl`
24	* _k8-read-mem-settings.sh_ - Makes data files understood by
25the k8-interpret-extended-memory-settings script. `Bash`
26	* _parse-bkdg.pl_ - Make bkdg.data file used by above scripts.
27`Perl`
28	* _example_input_ - Sample input for the above scripts. `Text`
29* __apcb__ - AMD PSP Control Block tools
30	* _apcb_edit.py_ - This tool allows patching an existing APCB
31binary with specific SPDs and GPIO selection pins. `Python3`
32	* _apcb_v3_edit.py_ - This tool allows patching an existing
33APCB v3 binary with up to 16 specific SPDs. `Python3`
34* __archive__ - Concatenate files and create an archive `C`
35* __autoport__ - Automated porting coreboot to Sandy Bridge/Ivy Bridge
36platforms `Go`
37* __bincfg__ - Compiler/Decompiler for data blobs with specs `Lex`
38`Yacc`
39* __board_status__ - Tools to collect logs and upload them to the board
40status repository `Bash` `Go`
41* __bucts__ - A tool to manipulate the BUC.TS bit on Intel targets. `C`
42* __cavium__ - Devicetree_convert Tool to convert a DTB to a static C
43file `Python`
44* __cbfstool__
45	* _cbfstool_ - For manipulating CBFS file `C`
46	* _fmaptool_ - Converts plaintext fmd files into fmap blobs `C`
47	* _rmodtool_ - Creates rmodules `C`
48	* _ifwitool_ - For manipulating IFWI `C`
49* __cbmem__ - CBMEM parser to read e.g. timestamps and console log `C`
50* __chromeos__ - These scripts can be used to access ChromeOS
51resources, for example to extract System Agent reference code and other
52blobs (e.g. mrc.bin, refcode, VGA option roms) from a ChromeOS recovery
53image. `C`
54* __crossgcc__ - A cross toolchain builder for -elf toolchains (ie. no
55libc support) `Bash`
56* __docker__ - Dockerfiles for _coreboot-sdk_, _coreboot-jenkins-node_,
57_coreboot.org-status_ and _docs.coreboot.org_ `Make`
58* __dtd_parser__ - DTD structure parser `Python2`
59* __ectool__ - Dumps the RAM of a laptop's Embedded/Environmental
60Controller (EC). `C`
61* __exynos__ - Computes and fills Exynos ROM checksum (for BL1 or BL2).
62`Python3`
63* __find_usbdebug__ - Help find USB debug ports `Bash`
64* __futility__ - Firmware utility for signing ChromeOS images `Make`
65* __fuzz-tests__ - Create test cases that crash the jpeg code. `C`
66* __genbuild_h__ - Generate build system definitions `Shell`
67* __gitconfig__ - Initialize git repository submodules install git
68hooks `Bash`
69* __ifdtool__ - Extract and dump Intel Firmware Descriptor information
70`C`
71* __intelmetool__ - Dump interesting things about Management Engine
72even if hidden `C`
73* __intelp2m__ - convert the configuration DW0/1 registers value from
74an inteltool dump to coreboot macros. `go`
75* __inteltool__ - Provides information about the Intel CPU/chipset
76hardware configuration (register contents, MSRs, etc). `C`
77* __intelvbttool__ - Parse VBT from VGA BIOS `C`
78* __ipqheader__
79	* _createxbl.py_ - Concatenates XBL segments into one ELF image
80`Python`
81	* _ipqheader.py_ - Returns a packed MBN header image with the
82specified base and size `Python`
83	* _mbncat.py_ - Generate ipq8064 uber SBL `Python`
84	* *mbn_tools.py* - Contains all MBN Utilities for image
85generation `Python`
86* __kbc1126__ - Tools used to dump the two blobs from the factory
87firmware of many HP laptops with 8051-based SMSC KBC1098/KBC1126
88embedded controller and insert them to the firmware image. `C`
89* __kconfig__ - Build system `Make`
90* __lint__ - Source linter and linting rules `Shell`
91* __nixos__ - A script and NixOS configuration files to create an ISO
92image for testing purposes and for working on firmware. `Bash`
93* __mainboard__ - mainboard specific scripts
94	* _google_ - Directory for google mainboard specific scripts
95* __marvell__ - Add U-Boot boot loader for Marvell ARMADA38X `C`
96* __[me_cleaner](https://github.com/corna/me_cleaner)__ - Tool for
97partial deblobbing of Intel ME/TXE firmware images `Python`
98* __mma__ - Memory Margin Analysis automation tests `Bash`
99* __msrtool__ - Dumps chipset-specific MSR registers. `C`
100* __mtkheader__ - Generate MediaTek bootload header. `Python3`
101* __nvidia__ - nvidia blob parsers
102* __nvramtool__ - Reads and writes coreboot parameters and displaying
103information from the coreboot table in CMOS/NVRAM. `C`
104* __pmh7tool__ - Dumps, reads and writes PMH7 registers on Lenovo
105ThinkPads. PMH7 is used for switching on and off the power of some
106devices on the board such as dGPU. `C`
107* __post__ - Userspace utility that can be used to test POST cards. `C`
108* __qemu__ - Makefile & comprehensive default config for QEMU Q35
109emulation `Make`
110* __qualcomm__ - CMM script to debug Qualcomm coreboot environments.
111`CMM`
112* __release__ - Generate coreboot release `Bash`
113* __riscv__
114	* _make-spike-elf.sh_ - Converts a flat file into an ELF, that
115can be passed to SPIKE, the RISC-V reference emulator.`Bash`
116	* _sifive-gpt.py_ - Wraps the bootblock in a GPT partition for
117SiFive's bootrom. `Python3`
118* __rockchip__ - Generate Rockchip idblock bootloader. `Python3`
119* __sconfig__ - coreboot device tree compiler `Lex` `Yacc`
120* __scripts__
121	* _config_ - Manipulate options in a .config file from the
122command line `Bash`
123	* _cross-repo-cherrypick_ - Pull in patches from another tree
124from a gerrit repository. `Shell`
125	* _decode_spd.sh_ - Decodes Serial Presence Detect (SPD) files
126into various human readable formats. `Bash`
127	* _dts-to-fmd.sh_ -Converts a depthcharge fmap.dts into an
128fmaptool compatible .fmd format `Bash`
129	* _find-unused-kconfig-symbols.sh_ - Points out Kconfig
130variables that may be unused. There are some false positives, but it
131serves as a starting point `Shell`
132	* _gerrit-rebase_ - Applies all commits that from-branch has
133over to-branch, based on a common ancestor and gerrit meta-data `Bash`
134	* _get_maintainer.pl_ - Print selected MAINTAINERS information
135for the files modified in a patch or for a file `Perl`
136	* _maintainers.go_ - Build subsystem Maintainers `Go`
137	* _no-fsf-addresses.sh_ - Removes various FSF addresses from
138license headers `Shell`
139	* _parse-maintainers.pl_ - Script to alphabetize MAINTAINERS
140file `Perl`
141	* _rm_unused_code_ - Remove all code not used for a platform
142from the local git repository for auditing or release `Bash`
143	* _show_platforms.sh_ - Makes a list of platforms in the tree.
144Does not show variants. `Shell`
145	* _ucode_h_to_bin.sh_ - Microcode conversion tool `Bash`
146	* _update_submodules_ - Check all submodules for updates `Bash`
147* __smmstoretool__ - Offline SMMSTORE variable modification tool `C`
148* __spdtool__ - Dumps SPD ROMs from a given blob to separate files
149using known patterns and reserved bits. Useful for analysing firmware
150that holds SPDs on boards that have soldered down DRAM. `python`
151* __spkmodem_recv__ - Decode spkmodem signals `C`
152* __superiotool__ - A user-space utility to detect Super I/O of a
153mainboard and provide detailed information about the register contents
154of the Super I/O. `C`
155* __supermicro__ - Tools for supermicro platforms
156	* _smcbiosinfo_ - Generates SMC biosinfo for BMC BIOS updates
157`C`
158* __testing__ - coreboot test targets `Make`
159* __uio_usbdebug__ - Debug coreboot's usbdebug driver inside a running
160operating system (only Linux at this time). `C`
161* __util_readme__ - Creates README.md of description files in `./util`
162subdirectories `Bash`
163* __vboot_list__ - Tools to generate a list of vboot enabled devices to
164the documentation `Bash`
165* __vgabios__ - emulated vga driver for qemu `C`
166* __x86__ - Generates 32-bit PAE page tables based on a CSV input file.
167`Go`
168* __xcompile__ - Cross compile setup `Bash`
169## In depth documentation
170
171```{toctree}
172:maxdepth: 1
173
174abuild <util/abuild/index.md>
175cbfstool <util/cbfstool/index.md>
176ifdtool <util/ifdtool/index.md>
177intelp2m <util/intelp2m/index.md>
178smmstoretool <util/smmstoretool/index.md>
179```
180
181## Generated documentation
182
183**Please do not edit the markdown file in the documentation directory
184*directly.**
185
186This file was generated by running util_readme.sh. Please make sure it
187is rerun when new tools are added or when documentation is updated.
188
189To update, edit the markdown files in the util directory, then
190re-generate this file by running `util/util_readme/util_readme.sh`
191