The following documentation describes the process of Dasharo open-source firmware update. The update process may be different, depending on which firmware version is currently installed on your device. The currently installed firmware version can be checked with the following command in a Linux environment:
sudo dmidecode -t bios | grep Version
Alternatively, it can be checked in the
BIOS Setup Menu.
Before proceeding, ensure that the firmware protections are disabled in
Dasharo Security Options.
BIOS boot medium lock and
Enable SMM BIOS write protection should be
unchecked. UEFI Secure Boot
must be disabled as well (uncheck
Attempt Secure Boot if
Current Secure Boot State does not say
Disabled). To apply changes you will
need to reboot.
Please use one of the following environments to perform Dasharo update:
We recommend using the DTS.
Dasharo Tools Suite
DTS is already equipped with a correct flashrom build. Get Dasharo Tools Suite (DTS) ISO and burn it on a USB stick.
Since DTS v1.1.2 you may simply choose the firmware update option from the menu as described in DTS Firmware Update section and DTS will carry out all necessary operations (RECOMMENDED).
If you would like to do it manually you will need to download a firmware update binary. When you boot DTS from USB enter the shell from the menu and invoke following commands for v1.1.1 for example (you can find the links in the Releases section):
Or for DDR5 platform:
They will also work in any Linux terminal with wget installed. Then proceed with commands described in subsequent sections after.
Linux distribution of your choice
Linux distributions may not yet have the support for the newest chipsets in flashrom installed via package manager so building the flashrom from source may be inevitable. You may check if your flashrom supports the Z690 chipset by doing a dry run without firmware binary:
sudo flashrom -p internal
Example output of undetected chipset:
flashrom v1.2 on Linux 5.19.0-32-generic (x86_64) flashrom is free software, get the source code at https://flashrom.org Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns). Cannot open file stream for /dev/mtd0 No DMI table found. WARNING: No chipset found. Flash detection will most likely fail. ======================================================================== You may be running flashrom on an unknown laptop. We could not detect this for sure because your vendor has not set up the SMBIOS tables correctly. Some internal buses have been disabled for safety reasons. You can enforce using all buses by adding -p internal:laptop=this_is_not_a_laptop to the command line, but please read the following warning if you are not sure. Laptops, notebooks and netbooks are difficult to support and we recommend to use the vendor flashing utility. The embedded controller (EC) in these machines often interacts badly with flashing. See the manpage and https://flashrom.org/Laptops for details. If flash is shared with the EC, erase is guaranteed to brick your laptop and write may brick your laptop. Read and probe may irritate your EC and cause fan failure, backlight failure and sudden poweroff. You have been warned. ======================================================================== No EEPROM/flash device found. Note: flashrom can never write if the flash chip isn't found automatically.
It means you cannot proceed with this flashrom version and you have to remove
it using your package manager. Then follow the procedure for building the right
flashrom is described in
Build flashrom section in the
Initial deployment documentation
(note the procedure describes Ubuntu case only, your package manager and
package names to install may be slightly different). We recommend to use
Dasharo Tools Suite.
Example of good output:
flashrom v1.2-1031-g6b2061b on Linux 5.19.0-32-generic (x86_64) flashrom is free software, get the source code at https://flashrom.org Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns). No DMI table found. Found chipset "Intel Z690". Enabling flash write... SPI Configuration is locked down. FREG0: Flash Descriptor region (0x00000000-0x00000fff) is read-write. FREG1: BIOS region (0x01000000-0x01ffffff) is read-write. FREG2: Management Engine region (0x00001000-0x003d8fff) is read-write. Enabling hardware sequencing because some important opcode is locked. OK. Found Programmer flash chip "Opaque flash chip" (32768 kB, Programmer-specific) on internal. No operations were specified.
That means you are good to go.
Migrating SMBIOS unique data (optional)
Before flashing you may migrate your serial number and UUID as described in Initial deployment. Applicable to Dasharo v1.1.0 and later.
Version v1.1.0 or newer
Version v1.1.0 had to change the flashmap layout and requires usage of the procedure below when migrating from v1.0.0 or older.
RW_SECTION_B partitions of the flash needs to be
updated. Flash it using the following command:
flashrom -p internal -w [path] --fmap -i RW_SECTION_A -i RW_SECTION_B
To flash newer firmware the command described in the section below might be also used. But remember, in that case, all Dasharo UEFI settings will be lost. Also, the memory training procedure will have to be carried out again.
Version older than v1.1.0
In this case, the whole
bios region must be updated.
flashrom -p internal -w [path] --ifd -i bios
Possible errors are described in the Generic deployment problems with flashrom