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 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_v540tu_vX.Y.Z
git checkout novacustom_v560tu_vX.Y.Z
git 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=v540tu ./build.sh
The resulting image will be placed in:
novacustom_v540tu_ec.rom
.EC_BOARD_VENDOR=novacustom EC_BOARD_MODEL=v560tu ./build.sh
The resulting image will be placed in:
novacustom_v560tu_ec.rom
.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
.
Build Dasharo BIOS firmware
-
Clone the Dasharo coreboot repository:
cd .. 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_v540tu_vX.Y.Z
git checkout novacustom_v560tu_vX.Y.Z
git 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
-
Copy the previously built EC firmware to the coreboot folder:
cp ../ec/novacustom_v540tu_ec.rom ec.rom
cp ../ec/novacustom_v560tu_ec.rom ec.rom
cp ../ec/novacustom_ns5x_adl_ec.rom ec.rom
cp ../ec/novacustom_nv4x_adl_ec.rom ec.rom
cp ../ec/novacustom_ns5x_tgl_ec.rom ec.rom
cp ../ec/novacustom_nv4x_tgl_ec.rom ec.rom
-
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:2023-11-24_2731fa619b /bin/bash
- If the build commands ahead fail, try using an older 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
- If the build commands ahead fail, try using an older container
-
Inside of the container, configure the build process:
make distclean && cp configs/config.novacustom_v540tu .config
make distclean && cp configs/config.novacustom_v560tu .config
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
.
The binary will not contain a boot splash logo. Refer to logo customization for including one.
Intro
This section presents the crucial steps required to build the Dasharo Heads firmware. For more information, you may also refer to the official Heads building documentation.
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
Building
-
Clone Dasharo Heads repository:
git clone https://github.com/Dasharo/heads.git
-
Navigate to the source code directory and checkout to the desired revision:
cd heads git checkout novacustom_nv4x_adl_v0.9.0
-
Start the build inside the docker container:
docker run --rm -it -v $PWD:$PWD -w $PWD \ 3mdeb/heads-docker:3.0.1 make BOARD=nitropad-nv41
This will produce a Dasharo binary placed in
build/x86/nitropad-nv41/dasharo-nitropad-nv41-*.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.