Skip to content

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:

Build Dasharo BIOS firmware

  1. Clone the Dasharo coreboot repository:

    git clone https://github.com/Dasharo/coreboot.git
    
  2. Navigate to the source code directory and checkout to the desired revision:

    cd coreboot
    

    Replace X.Y.Z with a valid version

    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
    
  3. Checkout submodules:

    git submodule update --init --recursive --checkout
    
  4. 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
    
  5. 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
    
  6. 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

  1. Clone the Dasharo ec repository:

    git clone https://github.com/Dasharo/ec.git
    
  2. Navigate to the source code directory and checkout to the desired revision:

    cd ec
    

    Replace X.Y.Z with a valid version

    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
    
  3. Checkout submodules:

    git submodule update --init --recursive --checkout
    
  4. 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: