Recovery
Introduction
The following documentation describes the process of recovering NovaCustom platforms from the brick state. This procedure can be used to restore both Dasharo and previous Insyde firmware. This procedure can be used to restore both Dasharo and previous Insyde firmware.
Prerequisites
Warning
To proceed with the recovery procedure, the backup with the vendor firmware or
vendor EC firmware will be necessary eg. bios_backup.rom
, ec_backup.rom
.
The backup file should be generated before making any changes to the device flash chip according to the following documentation sections:
Restoring vendor BIOS requires restoring a compatible version of EC firmware. There is currently no way to do this internally.
Necessary components
You will need:
- a CH341a programmer with 3.3V support
- a SOIC-8 (Pomona) clip
You will need:
- a CH341a programmer with 3.3V support
- a WSON-8 probe
You will need:
- a CH341a programmer with 1.8V support
- a WSON-8 probe
A complete set containing everything you need is available from our shop.
Follow the Initial deployment
section to perform the external flash. When running the flashrom commands, use a
backup file you've prepared previously, like bios_backup.rom
.
You will need:
- an Arduino Mega 2560
- a 24-pin FFC cable with a 1.0mm pitch, same-sided (connectors on the same side on both ends of the cable)
- a 24-pin FFC breakout board with a 1.0mm pitch FFC connector and a 2.54mm pitch pin header
- USB-A to USB-B cable to connect the Arduino to the host
- USB-C cable for grounding with power blocker
You will need:
- an Arduino Mega 2560
- a 24-pin FFC cable with a 0.5mm pitch, same-sided (connectors on the same side on both ends of the cable)
- a 24-pin FFC breakout board with a 0.5mm pitch FFC connector and a 2.54mm pitch pin header
- USB-A to USB-B cable to connect the Arduino to the host
- USB-C cable for grounding with power blocker
You will need:
- an Arduino Mega 2560
- a 24-pin FFC cable with a 0.5mm pitch, same-sided (connectors on the same side on both ends of the cable)
- a 24-pin FFC breakout board with a 0.5mm pitch FFC connector and a 2.54mm pitch pin header
- USB-A to USB-B cable to connect the Arduino to the host
- USB-C cable for grounding with power blocker
You will need:
- an Arduino Mega 2560
- a 24-pin FFC cable with a 1.0mm pitch, same-sided (connectors on the same side on both ends of the cable)
- a 24-pin FFC breakout board with a 1.0mm pitch FFC connector and a 2.54mm pitch pin header
- USB-A to USB-B cable to connect the Arduino to the host
- USB-C cable for grounding with power blocker
The full set for EC firmware recovery is available at our online shop.
EC firmware recovery
The procedure will be slightly different depending on the model of your laptop.
Danger
Ensure you choose the correct FFC cable, as they can be easily damaged. Needed components
Important
Make sure your battery is connected for this process.
Prerequisites
- Clone the EC repository:
git clone https://github.com/Dasharo/ec.git
cd ec
git submodule update --init --checkout
- Install dependencies:
./scripts/deps.sh
- If
rustup
was installed as part of the previous step, run:
source $HOME/.cargo/env
-
Connect the Arduino to the computer using a USB-A to USB-B cable
-
Build and flash firmware for the Arduino, which will serve as the flasher:
make BOARD=arduino/mega2560
make BOARD=arduino/mega2560 flash
Recovery steps
Removing Screws
Connecting
-
Pry the keyboard away from the laptop. Use a plastic spudger to release the tabs holding it in place, starting from the top.
Warning
Be extra careful when removing the keyboard to avoid damaging the fragile keyboard cable!
-
Unplug the keyboard connector by lifting up the tab holding it in place:
-
Connect the FFC cable to the FFC breakout board
Warning
In the example above, the FFC connector on the breakout has the pins on the bottom side of the connector and is located on the same side as the pins connecting to the Arduino. If your breakout is different, you may need an FFC cable with connectors on the opposite sides.
-
Insert the breakout into Arduino's digital pin header, pins 22-45, with the FFC connector facing outwards
-
Connect the other end of the FFC cable to the keyboard connector on the laptop, taking care to align pin 1 of the FFC cable to pin 1 (leftmost) pin of the connector
-
Connect the Arduino to the host using the USB-A to USB-B cable
-
Connect the USB-C cable together with power blocker from your host computer to the laptop.
Warning
This extra cable is for grounding. It's required, because there is no ground signal on the keyboard connector. If you are not using using Power Blocker Ensure the power pin on the cable is taped over to prevent the Embedded Controller chip from getting powered.
Flashing
-
Build the flashing utility:
cargo build --manifest-path ecflash/Cargo.toml --example isp --release
-
Flash the firmware:
sudo ecflash/target/release/examples/isp [path to EC binary]
The output will contain:
Buffer size: 128 ID: 5570 VER: 2
If it contains other ID value or the connection times out, check all connections, using the photos above for reference.
-
Reassemble the laptop: disconnect the Arduino from the laptop, disconnect the USB-C grounding cable, reinstall the keyboard, reinstall keyboard screws.
BIOS Flashing
Components Necessary to perform BIOS Recovery: Needed components
Prerequisites
- Flashrom installed on a Linux host
- BIOS image file to flash
Flashing
-
Attach the SOIC-8 Pomona clip to the programmer. Take care to align CS pin with pin 1 on the programmer:
Danger
If your CH341a programmer has a voltage switch, make sure it's at 3.3V. Improper voltage selection may result in hardware damage.
-
Plug the programmer into your host computer.
-
Remove bottom cover from the laptop.
-
Unplug the battery (1)
-
Place the SOIC-8 Pomona clip on the BIOS chip, taking care to align the CS pin with the white dot on the BIOS chip:
-
Attach the SOIC-8 Pomona clip firmly in place and execute the following command on your host computer:
sudo flashrom -p ch341a_spi -w path/to/firmware.bin
-
Power on the laptop to verify the recovery passed. First boot may take a while, so be patient.
-
Attach the WSON probe to the programmer. Take care to align pin 1 indicated on the probe's breakout board with pin 1 on the programmer:
Danger
If your CH341a programmer has a voltage switch, make sure it's at 3.3V. Improper voltage selection may result in hardware damage.
-
Plug the programmer into your host computer.
-
Remove bottom cover from the laptop.
-
Unplug the battery (1)
-
Place the WSON probe on the BIOS chip, taking care to align the dot on the WSON probe with the white dot on the BIOS chip:
-
Hold down the WSON probe firmly in place and execute the following command on your host computer:
sudo flashrom -p ch341a_spi -w path/to/firmware.bin
-
Power on the laptop to verify the recovery passed. First boot may take a while, so be patient.
-
Attach the WSON probe to the programmer. Take care to align pin 1 indicated on the probe's breakout board with pin 1 on the programmer:
Danger
If your CH341a programmer has a voltage switch, make sure it's at 1.8V. Improper voltage selection may result in hardware damage.
-
Plug the programmer into your host computer.
-
Remove bottom cover from the laptop.
-
Unplug the battery (1)
-
Place the WSON probe on the BIOS chip, taking care to align the dot on the WSON probe with the white dot on the BIOS chip:
-
Hold down the WSON probe firmly in place and execute the following command on your host computer:
sudo flashrom -p ch341a_spi --ifd -i fd -i me -i bios -w [backup.bin]
-
Power on the laptop to verify the recovery passed. First boot may take a while, so be patient.