Dasharo firmware building guide
Intro
This guide shows how to build Dasharo firmware for NovaCustom devices. It contains two components:
Requirements
This guide was verified on Ubuntu 22.04. In practice, any Linux distribution with Docker support should be enough to complete it.
Make sure that you have following packages installed:
- Docker
-
Git
sudo apt -y install git
Build Dasharo BIOS firmware
-
Clone the Dasharo coreboot repository:
git clone https://github.com/Dasharo/coreboot.git
-
Navigate to the source code directory and checkout to the desired revision:
cd coreboot
Replace
X.Y.Z
with a valid versiongit checkout novacustom_ns5x_adl_vX.Y.Z
git checkout novacustom_nv4x_adl_vX.Y.Z
git checkout novacustom_ns5x_tgl_vX.Y.Z
git checkout novacustom_nv4x_tgl_vX.Y.Z
-
Checkout submodules:
git submodule update --init --recursive --checkout
-
Start docker container:
docker run --rm -it -u $UID \ -v $PWD:/home/coreboot/coreboot \ -w /home/coreboot/coreboot \ coreboot/coreboot-sdk:2021-09-23_b0d87f753c /bin/bash
docker run --rm -it -u $UID \ -v $PWD:/home/coreboot/coreboot \ -w /home/coreboot/coreboot \ coreboot/coreboot-sdk:2021-09-23_b0d87f753c /bin/bash
docker run --rm -it -u $UID \ -v $PWD:/home/coreboot/coreboot \ -w /home/coreboot/coreboot \ coreboot/coreboot-sdk:0ad5fbd48d /bin/bash
docker run --rm -it -u $UID \ -v $PWD:/home/coreboot/coreboot \ -w /home/coreboot/coreboot \ coreboot/coreboot-sdk:0ad5fbd48d /bin/bash
-
Inside of the container, configure the build process:
make distclean && cp configs/config.novacustom_ns5x_adl .config
make distclean && cp configs/config.novacustom_nv4x_adl .config
make distclean && cp configs/config.novacustom_ns5x_tgl .config
make distclean && cp configs/config.novacustom_nv4x_tgl .config
-
Start the build process:
make olddefconfig && make
This will produce a Dasharo binary placed in build/coreboot.rom
.
At the end of the build process, the following warning will be displayed:
** WARNING **
coreboot has been built without an Intel Firmware Descriptor.
Never write a complete coreboot.rom without an IFD to your
board's flash chip! You can use flashrom's IFD or layout
parameters to flash only to the BIOS region.
This is expected, and something you have to pay attention to if you would like to flash your Dasharo binary. Make sure to only overwrite the BIOS region, leaving everything else untouched. Otherwise, expect that your device will no longer be able to boot unless fixed using an external programmer.
The binary will not contain a boot splash logo. Refer to logo customization for including one.
Build Dasharo EC firmware
-
Clone the Dasharo ec repository:
git clone https://github.com/Dasharo/ec.git
-
Navigate to the source code directory and checkout to the desired revision:
cd ec
Replace
X.Y.Z
with a valid versiongit checkout novacustom_ns5x_adl_vX.Y.Z
git checkout novacustom_nv4x_adl_vX.Y.Z
git checkout novacustom_ns5x_tgl_vX.Y.Z
git checkout novacustom_nv4x_tgl_vX.Y.Z
-
Checkout submodules:
git submodule update --init --recursive --checkout
-
Build the EC firmware:
EC_BOARD_VENDOR=novacustom EC_BOARD_MODEL=ns5x_adl ./build.sh
The resulting image will be placed in:
novacustom_ns5x_adl_ec.rom
.EC_BOARD_VENDOR=novacustom EC_BOARD_MODEL=nv4x_adl ./build.sh
The resulting image will be placed in:
novacustom_nv4x_adl_ec.rom
.EC_BOARD_VENDOR=novacustom EC_BOARD_MODEL=ns5x_tgl ./build.sh
The resulting image will be placed in:
novacustom_ns5x_tgl_ec.rom
.EC_BOARD_VENDOR=novacustom EC_BOARD_MODEL=nv4x_tgl ./build.sh
The resulting image will be placed in:
novacustom_nv4x_tgl_ec.rom
.
Install Dasharo firmware
The Dasharo firmware can be flashed in following ways, depending on your situation:
- To flash Dasharo for the first time, refer to the initial deployment guide.
- To update Dasharo, refer to the firmware update guide.