Quick Start
Initialize the workspace with repo, sync all source trees, fetch the Qualcomm firmware blobs, build, and flash the board.
# create the sandbox and pull the manifest mkdir sandbox.kodiak && cd sandbox.kodiak repo init -u https://github.com/qualcomm-linux/qcom-buildroot.git -m manifests/kodiak.xml
repo sync -j4 --no-clone-bundle
cd build
make -j8 toolchains
make -j8
# download Qualcomm firmware blobs directly — no Yocto build needed
make fetch-blobs
make all
# first flash: full loader (tz.mbn + uefi.elf) + kernel make flash-loader make flash-efi # kernel-only iteration afterwards — no loader re-flash make flash-efi
Iterate on a single component
After the first full build, you rarely rebuild everything. Edit one tree (OP-TEE OS, TF-A, U-Boot or Linux), rebuild just that component, repackage, and reflash. Builds are incremental — only the changed source is recompiled — so the edit → flash loop is seconds to a couple of minutes, not the hour a full build takes.
# rebuild just the component you touched (incremental — seconds–minutes) make optee-os # or: make tfa / make u-boot make loader # build uefi.elf + tz.mbn (BL2 signed with sectools) make flash-loader # reflash the boot chain
# rebuild the kernel (incremental — typically ~1–2 min) make linux make efi # repackage the EFI image / UKI (efi.bin) make flash-efi # reflash the kernel partition only — firmware untouched
make fetch-blobs pulls the Qualcomm boot binaries and CDT from the public
Qualcomm / CodeLinaro URLs, so a full Yocto BSP build is not required. The flash targets
look for inputs in input/ → Yocto deploy dir → blobs/. Run
make help in build/ for the full target list.