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
.
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.