Purpose
To upgrade BIOS on FWA-1320, the open source utility called flashrom was utilized. This article will introduce how to perform this utility on ubuntu 14.04.6 LTS based OS and tried to guide how to solve the "chipset detection issue" with older flashrom version.
Target Audience
To users who need to update BIOS on FWA-1320
Minimum requirement
- Advantech hardware FWA-1320
- Linux based OS (here we took ubuntu 14.04.6 LTS as an example)
Steps
1. On Ubuntu 14.04.6 , user may got flashrom installed via apt-get install flashrom. But flashrom v0.9.6 is too old to complete BIOS upgrade on FWA-1320
$ sudo flashrom -w <BIOS.bin> -p internal
flashrom v0.9.6.1-r1563 on Linux 4.4.0-142-generic (x86_64)
flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop... OK.
WARNING: No chipset found. Flash detection will most likely fail.
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.
2. Upgrade flashrom to newer version is highly recommended, here we take the latest version flashrom v1.1 as an example
3. Download latest flashrom v1.1 from following website , we get "flashrom-v1.1.tar.bz2"
https://www.flashrom.org/Flashrom/1.1
4. Before compiling the packages, plz make sure following lib or others from the message during compile were installed.
# apt install make
# apt install gcc
# apt install libpci-dev
# apt install libusb-dev
# apt install libusb-1.0-0-dev
# others, which were reported during you compile the packages
5. Decompress the package and run "make" command to compile the source
# tar xvf flashrom-v1.1.tar.bz2
# cd flashrom-v1.1/
# make
6. If everything went well, the flashrom (new) should be in folder flashrom-v1.1
[root@ubuntu:~flashrom-v1.1]# ./flashrom -V
flashrom v1.1 on Linux 3.16.0-77-generic (x86_64)
flashrom is free software, get the source code at https://flashrom.org
flashrom was built with libpci 3.2.1, GCC 4.8.4, little endian
Command line (1 args): ./flashrom -V
Please select a programmer with the --programmer parameter.
Previously this was not necessary because there was a default set.
To choose the mainboard of this computer use 'internal'. Valid choices are:
internal, dummy, nic3com, nicrealtek, gfxnvidia, drkaiser, satasii, atavia,
it8212, serprog, buspirate_spi, dediprog, developerbox, rayer_spi, pony_spi,
nicintel, nicintel_spi, nicintel_eeprom, ogp_spi, satamv, linux_mtd, linux_spi,
pickit2_spi, ch341a_spi, digilent_spi.
[root@ubuntu:~flashrom-v1.1]#
7. Update BIOS with new flashrom
[root@ubuntu:~flashrom-v1.1]# ./flashrom -w <BIOS.bin> -p internal
flashrom v1.1 on Linux 3.16.0-77-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).
Found chipset "Intel Avoton/Rangeley".
Enabling flash write... SPI Configuration is locked down.
OK.
Found Winbond flash chip "W25Q64.V" (8192 kB, SPI) mapped at physical address 0x 00000000ff800000.
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.
[root@ubuntu:~flashrom-v1.1]# reboot
Comments
0 comments
Please sign in to leave a comment.