Scroll to navigation

CBFSTOOL:(8) System Administration Utilities CBFSTOOL:(8)

NAME

cbfstool: - manual page for cbfstool: Management utility for CBFS formatted ROM images

DESCRIPTION

cbfstool: Management utility for CBFS formatted ROM images

USAGE:

debian/coreboot-utils/usr/sbin/cbfstool [-h] debian/coreboot-utils/usr/sbin/cbfstool FILE COMMAND [-v] [PARAMETERS]...

OPTIONs:

-H header_offset Do not search for header; use this offset*

Output top-aligned memory address
Accept short data; fill upward/from bottom
Accept short data; fill downward/from top
Force action
Generate position and alignment arguments
Unprocessed; don't decompress or make ELF
Provide verbose output
Display this help message
Base of extended decode window in host address space(x86 only)
Size of extended decode window in host address space(x86 only)

COMMANDs:

add [-r image,regions] -f FILE -n NAME -t TYPE [-A hash] \
[-c compression] [-b base-address | -a alignment] \ [-p padding size] [-y|--xip if TYPE is FSP] \ [-j topswap-size] (Intel CPUs only) [--ibb] \ [--ext-win-base win-base --ext-win-size win-size] Add a component
-j valid size: 0x10000 0x20000 0x40000 0x80000 0x100000
add-payload [-r image,regions] -f FILE -n NAME [-A hash] \
[-c compression] [-b base-address] \ (linux specific: [-C cmdline] [-I initrd]) Add a payload to the ROM
add-stage [-r image,regions] -f FILE -n NAME [-A hash] \
[-c compression] [-b base] [-S section-to-ignore] \ [-a alignment] [-Q|--pow2page] \ [-y|--xip] [--ibb] \ [--ext-win-base win-base --ext-win-size win-size] Add a stage to the ROM
add-flat-binary [-r image,regions] -f FILE -n NAME \
[-A hash] -l load-address -e entry-point \ [-c compression] [-b base] Add a 32bit flat mode binary
Add a raw 64-bit integer value
add-master-header [-r image,regions] \
[-j topswap-size] (Intel CPUs only)
Add a legacy CBFS master header
Remove a component
Defragment CBFS image.
Create a copy (duplicate) cbfs instance in fmap
create -m ARCH -s size [-b bootblock offset] \
[-o CBFS offset] [-H header offset] [-B bootblock]
Create a legacy ROM file with CBFS master header*
Create a new-style partitioned firmware image
locate [-r image,regions] -f FILE -n NAME [-P page-size] \
[-a align] [-T]
Find a place for a file of that size
List mutable (or, with -w, readable) image regions
Show the contents of the ROM
Extracts a file from ROM
Write file into same-size [or larger] raw region
Extract raw region contents into binary file
Truncate CBFS and print new size on stdout
Expand CBFS to span entire region

OFFSETs:

Numbers accompanying -b, -H, and -o switches* may be provided in two possible formats: if their value is greater than 0x80000000, they are interpreted as a top-aligned x86 memory address; otherwise, they are treated as an offset into flash.

ARCHes:

arm64, arm, mips, ppc64, power8, riscv, x86, unknown

TYPEs:

bootblock, cbfs header, stage, simple elf, fit, optionrom, bootsplash, raw, vsa, mbi, microcode, fsp, mrc, cmos_default, cmos_layout, spd, mrc_cache, mma, efi, struct, deleted, null

* Note that these actions and switches are only valid when

working with legacy images whose structure is described primarily by a CBFS master header. New-style images, in contrast, exclusively make use of an FMAP to describe their layout: this must minimally contain an 'FMAP' section specifying the location of this FMAP itself and a 'COREBOOT' section describing the primary CBFS. It should also be noted that, when working with such images, the -F and -r switches default to 'COREBOOT' for convenience, and both the -b switch to CBFS operations and the output of the locate action become relative to the selected CBFS region's lowest address. The one exception to this rule is the top-aligned address, which is always relative to the end of the entire image rather than relative to the local region; this is true for for both input (sufficiently large) and output (-T) data.

USAGE:

debian/coreboot-utils/usr/sbin/cbfstool [-h] debian/coreboot-utils/usr/sbin/cbfstool FILE COMMAND [-v] [PARAMETERS]...

OPTIONs:

-H header_offset Do not search for header; use this offset*

Output top-aligned memory address
Accept short data; fill upward/from bottom
Accept short data; fill downward/from top
Force action
Generate position and alignment arguments
Unprocessed; don't decompress or make ELF
Provide verbose output
Display this help message
Base of extended decode window in host address space(x86 only)
Size of extended decode window in host address space(x86 only)

COMMANDs:

add [-r image,regions] -f FILE -n NAME -t TYPE [-A hash] \
[-c compression] [-b base-address | -a alignment] \ [-p padding size] [-y|--xip if TYPE is FSP] \ [-j topswap-size] (Intel CPUs only) [--ibb] \ [--ext-win-base win-base --ext-win-size win-size] Add a component
-j valid size: 0x10000 0x20000 0x40000 0x80000 0x100000
add-payload [-r image,regions] -f FILE -n NAME [-A hash] \
[-c compression] [-b base-address] \ (linux specific: [-C cmdline] [-I initrd]) Add a payload to the ROM
add-stage [-r image,regions] -f FILE -n NAME [-A hash] \
[-c compression] [-b base] [-S section-to-ignore] \ [-a alignment] [-Q|--pow2page] \ [-y|--xip] [--ibb] \ [--ext-win-base win-base --ext-win-size win-size] Add a stage to the ROM
add-flat-binary [-r image,regions] -f FILE -n NAME \
[-A hash] -l load-address -e entry-point \ [-c compression] [-b base] Add a 32bit flat mode binary
Add a raw 64-bit integer value
add-master-header [-r image,regions] \
[-j topswap-size] (Intel CPUs only)
Add a legacy CBFS master header
Remove a component
Defragment CBFS image.
Create a copy (duplicate) cbfs instance in fmap
create -m ARCH -s size [-b bootblock offset] \
[-o CBFS offset] [-H header offset] [-B bootblock]
Create a legacy ROM file with CBFS master header*
Create a new-style partitioned firmware image
locate [-r image,regions] -f FILE -n NAME [-P page-size] \
[-a align] [-T]
Find a place for a file of that size
List mutable (or, with -w, readable) image regions
Show the contents of the ROM
Extracts a file from ROM
Write file into same-size [or larger] raw region
Extract raw region contents into binary file
Truncate CBFS and print new size on stdout
Expand CBFS to span entire region

OFFSETs:

Numbers accompanying -b, -H, and -o switches* may be provided in two possible formats: if their value is greater than 0x80000000, they are interpreted as a top-aligned x86 memory address; otherwise, they are treated as an offset into flash.

ARCHes:

arm64, arm, mips, ppc64, power8, riscv, x86, unknown

TYPEs:

bootblock, cbfs header, stage, simple elf, fit, optionrom, bootsplash, raw, vsa, mbi, microcode, fsp, mrc, cmos_default, cmos_layout, spd, mrc_cache, mma, efi, struct, deleted, null

* Note that these actions and switches are only valid when

working with legacy images whose structure is described primarily by a CBFS master header. New-style images, in contrast, exclusively make use of an FMAP to describe their layout: this must minimally contain an 'FMAP' section specifying the location of this FMAP itself and a 'COREBOOT' section describing the primary CBFS. It should also be noted that, when working with such images, the -F and -r switches default to 'COREBOOT' for convenience, and both the -b switch to CBFS operations and the output of the locate action become relative to the selected CBFS region's lowest address. The one exception to this rule is the top-aligned address, which is always relative to the end of the entire image rather than relative to the local region; this is true for for both input (sufficiently large) and output (-T) data.
November 2023 cbfstool: Management utility for CBFS formatted ROM images