blob: a6b5e634adec2f7b24dc9eaba17cd6b2e7a2a72e [file] [log] [blame]
This sub-directory defines an x86_64 UEFI-compatbile Brillo board target.
-- FILES AND DIRECTORIES
boot_loader/
Contains the EFI source code files, a Makefile, and EFI binaries needed for
the A/B boot loader of the system. The binaries will be placed on the EFI
partition of the final disk image. Currently, developers using the x86_64
UEFI board target must manually install gnu-efi on their workstations in
order to build the boot loader binary. Once this is done, simply run 'make'
in the boot_loader/ directory to produce the necessary *.efi binaries.
make_efi_image/
Contains a bash script (make_efi_image) which creates an image to be put
on the EFI partition of the final disk image. The script takes image size
in bytes, resulting image output path, and a list of EFI application
'host/target' paths as inputs. The EFI applications will placed on the
final image's EFI partition with absolute paths specified by the latter
argument. Each 'host/target' element must be of the form
"/PATH/TO/HOST_EFI_FILE:/PATH/TO/TARGET_EFI_FILE"
NOTE: mtools utility is required on the system in order to create the EFI
image.
make_misc_image/
Contains source files for a utility which creates an image to be put into
the "misc" partition of the final disk image. This image will contain
metadata in binary format to be used for A/B booting. The utility program
takes attribute values for two slots, "a" and "b", as well as a path to the
output "misc" binary file.
Usage:
make_misc_image
--ab_metadata=a_priority,a_tries_remaining,a_successful_boot,
b_priority,b_tries_remaining,b_successful_boot
--output=/PATH/TO/MISC_IMAGE
Where
0 <= [a,b]_priority <= 15
0 <= [a,b]_tries_remaining <= 7
0 <= [a,b]_successful_boot <= 1
TODO: Build system integration similar to make_efi_image.
-- BUILD SYSTEM INTEGRATION NOTES
If EFI_INPUT_FILE_PATHS is non-empty, the build system system will call the
make_efi_image script, passing EFI_IMAGE_SIZE, $(ANDROID_OUT)/EFI.img, and
EFI_INPUT_FILE_PATHS arguments. The variables are defined globally in the
BoardConfig.mk file.