1 ============================== 1 ============================== 2 Upgrading BIOS using spi-intel 2 Upgrading BIOS using spi-intel 3 ============================== 3 ============================== 4 4 5 Many Intel CPUs like Baytrail and Braswell inc 5 Many Intel CPUs like Baytrail and Braswell include SPI serial flash host 6 controller which is used to hold BIOS and othe 6 controller which is used to hold BIOS and other platform specific data. 7 Since contents of the SPI serial flash is cruc 7 Since contents of the SPI serial flash is crucial for machine to function, 8 it is typically protected by different hardwar 8 it is typically protected by different hardware protection mechanisms to 9 avoid accidental (or on purpose) overwrite of 9 avoid accidental (or on purpose) overwrite of the content. 10 10 11 Not all manufacturers protect the SPI serial f 11 Not all manufacturers protect the SPI serial flash, mainly because it 12 allows upgrading the BIOS image directly from 12 allows upgrading the BIOS image directly from an OS. 13 13 14 The spi-intel driver makes it possible to read 14 The spi-intel driver makes it possible to read and write the SPI serial 15 flash, if certain protection bits are not set 15 flash, if certain protection bits are not set and locked. If it finds 16 any of them set, the whole MTD device is made 16 any of them set, the whole MTD device is made read-only to prevent 17 partial overwrites. By default the driver expo 17 partial overwrites. By default the driver exposes SPI serial flash 18 contents as read-only but it can be changed fr 18 contents as read-only but it can be changed from kernel command line, 19 passing "spi_intel.writeable=1". 19 passing "spi_intel.writeable=1". 20 20 21 Please keep in mind that overwriting the BIOS 21 Please keep in mind that overwriting the BIOS image on SPI serial flash 22 might render the machine unbootable and requir 22 might render the machine unbootable and requires special equipment like 23 Dediprog to revive. You have been warned! 23 Dediprog to revive. You have been warned! 24 24 25 Below are the steps how to upgrade MinnowBoard 25 Below are the steps how to upgrade MinnowBoard MAX BIOS directly from 26 Linux. 26 Linux. 27 27 28 1) Download and extract the latest Minnowboar 28 1) Download and extract the latest Minnowboard MAX BIOS SPI image 29 [1]. At the time writing this the latest i 29 [1]. At the time writing this the latest image is v92. 30 30 31 2) Install mtd-utils package [2]. We need thi 31 2) Install mtd-utils package [2]. We need this in order to erase the SPI 32 serial flash. Distros like Debian and Fedo 32 serial flash. Distros like Debian and Fedora have this prepackaged with 33 name "mtd-utils". 33 name "mtd-utils". 34 34 35 3) Add "spi_intel.writeable=1" to the kernel 35 3) Add "spi_intel.writeable=1" to the kernel command line and reboot 36 the board (you can also reload the driver 36 the board (you can also reload the driver passing "writeable=1" as 37 module parameter to modprobe). 37 module parameter to modprobe). 38 38 39 4) Once the board is up and running again, fi 39 4) Once the board is up and running again, find the right MTD partition 40 (it is named as "BIOS"):: 40 (it is named as "BIOS"):: 41 41 42 # cat /proc/mtd 42 # cat /proc/mtd 43 dev: size erasesize name 43 dev: size erasesize name 44 mtd0: 00800000 00001000 "BIOS" 44 mtd0: 00800000 00001000 "BIOS" 45 45 46 So here it will be /dev/mtd0 but it may va 46 So here it will be /dev/mtd0 but it may vary. 47 47 48 5) Make backup of the existing image first:: 48 5) Make backup of the existing image first:: 49 49 50 # dd if=/dev/mtd0ro of=bios.bak 50 # dd if=/dev/mtd0ro of=bios.bak 51 16384+0 records in 51 16384+0 records in 52 16384+0 records out 52 16384+0 records out 53 8388608 bytes (8.4 MB) copied, 10.0269 53 8388608 bytes (8.4 MB) copied, 10.0269 s, 837 kB/s 54 54 55 6) Verify the backup:: 55 6) Verify the backup:: 56 56 57 # sha1sum /dev/mtd0ro bios.bak 57 # sha1sum /dev/mtd0ro bios.bak 58 fdbb011920572ca6c991377c4b418a0502668b 58 fdbb011920572ca6c991377c4b418a0502668b73 /dev/mtd0ro 59 fdbb011920572ca6c991377c4b418a0502668b 59 fdbb011920572ca6c991377c4b418a0502668b73 bios.bak 60 60 61 The SHA1 sums must match. Otherwise do not 61 The SHA1 sums must match. Otherwise do not continue any further! 62 62 63 7) Erase the SPI serial flash. After this ste 63 7) Erase the SPI serial flash. After this step, do not reboot the 64 board! Otherwise it will not start anymore 64 board! Otherwise it will not start anymore:: 65 65 66 # flash_erase /dev/mtd0 0 0 66 # flash_erase /dev/mtd0 0 0 67 Erasing 4 Kibyte @ 7ff000 -- 100 % com 67 Erasing 4 Kibyte @ 7ff000 -- 100 % complete 68 68 69 8) Once completed without errors you can writ 69 8) Once completed without errors you can write the new BIOS image:: 70 70 71 # dd if=MNW2MAX1.X64.0092.R01.1605221712.b 71 # dd if=MNW2MAX1.X64.0092.R01.1605221712.bin of=/dev/mtd0 72 72 73 9) Verify that the new content of the SPI ser 73 9) Verify that the new content of the SPI serial flash matches the new 74 BIOS image:: 74 BIOS image:: 75 75 76 # sha1sum /dev/mtd0ro MNW2MAX1.X64.009 76 # sha1sum /dev/mtd0ro MNW2MAX1.X64.0092.R01.1605221712.bin 77 9b4df9e4be2057fceec3a5529ec3d950836c87 77 9b4df9e4be2057fceec3a5529ec3d950836c87a2 /dev/mtd0ro 78 9b4df9e4be2057fceec3a5529ec3d950836c87 78 9b4df9e4be2057fceec3a5529ec3d950836c87a2 MNW2MAX1.X64.0092.R01.1605221712.bin 79 79 80 The SHA1 sums should match. 80 The SHA1 sums should match. 81 81 82 10) Now you can reboot your board and observe 82 10) Now you can reboot your board and observe the new BIOS starting up 83 properly. 83 properly. 84 84 85 References 85 References 86 ---------- 86 ---------- 87 87 88 [1] https://firmware.intel.com/sites/default/f 88 [1] https://firmware.intel.com/sites/default/files/MinnowBoard%2EMAX_%2EX64%2E92%2ER01%2Ezip 89 89 90 [2] http://www.linux-mtd.infradead.org/ 90 [2] http://www.linux-mtd.infradead.org/
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.