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.

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: