don't document flashrom. use flashprog instead.

Signed-off-by: Leah Rowe <info@minifree.org>
master
Leah Rowe 2024-01-27 22:35:38 +00:00
parent de2ddf6d51
commit 4542dbad5e
59 changed files with 400 additions and 283 deletions

View File

@ -337,6 +337,8 @@ Helped write the [FAQ section about DMA](../faq.md#hddssd-firmware), and provide
general advice in the early days of the project. Peter was a coreboot developer general advice in the early days of the project. Peter was a coreboot developer
in those days, and a major developer in the *libusb* project (which flashrom in those days, and a major developer in the *libusb* project (which flashrom
makes heavy use of). makes heavy use of).
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024.
Peter also wrote the *bucts* utility used to set Backup Control (BUC) Top Swap Peter also wrote the *bucts* utility used to set Backup Control (BUC) Top Swap
(TS) bit on i945 laptops such as ThinkPad X60/T60, which is useful for a (TS) bit on i945 laptops such as ThinkPad X60/T60, which is useful for a

View File

@ -320,6 +320,8 @@ LibrePlanet. Працюючи разом з Лією, Патрік допома
загальні поради на перших днях проекту. У той час Пітер був розробником coreboot загальні поради на перших днях проекту. У той час Пітер був розробником coreboot
і головним розробником проекту *libusb* (який flashrom і головним розробником проекту *libusb* (який flashrom
активно використовує). активно використовує).
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024.
Пітер також написав утиліту *bucts*, яка використовується для встановлення біта Top Swap Пітер також написав утиліту *bucts*, яка використовується для встановлення біта Top Swap
(TS) для керування резервним копіюванням (BUC) на ноутбуках i945, таких як ThinkPad X60/T60, яка є корисною для (TS) для керування резервним копіюванням (BUC) на ноутбуках i945, таких як ThinkPad X60/T60, яка є корисною для

View File

@ -189,7 +189,10 @@ So you compiled your Libreboot image? Congratulations!
Before you flash, please make sure that you *dumped* two copies of the original Before you flash, please make sure that you *dumped* two copies of the original
firmware just in case (verifying the hashes of each dump, to ensure that they firmware just in case (verifying the hashes of each dump, to ensure that they
match), using the `-r` option in flashrom. match), using the `-r` option in flashprog.
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
There are some additional considerations: There are some additional considerations:

View File

@ -138,13 +138,16 @@ between the pins until you can see the normal BIOS boot screen.
![](https://av.libreboot.org/hp8200sff/fdo\_screwdriver.jpg) ![](https://av.libreboot.org/hp8200sff/fdo\_screwdriver.jpg)
Boot into an OS supported by flashrom. On Linux, make sure you add the Boot into an OS supported by flashprog. On Linux, make sure you add the
kernel parameter **iomem=relaxed** which disables memory protections that kernel parameter **iomem=relaxed** which disables memory protections that
prevent BIOS flashing. prevent BIOS flashing.
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
Now, run this command: Now, run this command:
flashrom -p internal -c MX25L6406E/MX25L6408E flashprog -p internal -c MX25L6406E/MX25L6408E
The output should contain the text "The Flash Descriptor Override The output should contain the text "The Flash Descriptor Override
Pin-Strap is set". If it doesn't, start again from the beginning. Pin-Strap is set". If it doesn't, start again from the beginning.
@ -170,18 +173,21 @@ We'll refer to it as `libreboot4.rom`. We need to pad it to 8 MiB:
Flash the Libreboot image with a tweaked layout: Flash the Libreboot image with a tweaked layout:
ifdtool libreboot4.rom -f layout ifdtool libreboot4.rom -f layout
flashrom -p internal -c MX25L6406E/MX25L6408E -w libreboot4.rom -l layout -i fd -i gbe -i bios -i me flashprog -p internal -c MX25L6406E/MX25L6408E -w libreboot4.rom -l layout -i fd -i gbe -i bios -i me
Power off the computer. Make sure to power off, rebooting is not enough! Power off the computer. Make sure to power off, rebooting is not enough!
Power on the computer. Power on the computer.
Now we can flash the full 8 MiB image. Boot to an OS with flashrom Now we can flash the full 8 MiB image. Boot to an OS with flashprog
again. On linux, remember the **iomem=relaxed** kernel parameter. again. On linux, remember the **iomem=relaxed** kernel parameter.
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
Pick a Libreboot image of your choice from `bin/hp8200sff_8mb` Pick a Libreboot image of your choice from `bin/hp8200sff_8mb`
or from a release archive. We'll refer to it as `libreboot8.rom`. or from a release archive. We'll refer to it as `libreboot8.rom`.
flashrom -p internal -c MX25L6406E/MX25L6408E -w libreboot8.rom flashprog -p internal -c MX25L6406E/MX25L6408E -w libreboot8.rom
Power cycle the computer again. Power cycle the computer again.

View File

@ -168,16 +168,19 @@ dd if=libreboot.rom of=new.bin bs=12M count=1 conv=notrunc
The `libreboot.rom` file is the 12MB image from Libreboot. The `new.bin` The `libreboot.rom` file is the 12MB image from Libreboot. The `new.bin`
file is the Libreboot ROM, padded to 16MB. You will not flash the entire 16MB file is the Libreboot ROM, padded to 16MB. You will not flash the entire 16MB
file, but flashrom detects a 16MB flash IC. This just makes flashrom not file, but flashprog detects a 16MB flash IC. This just makes flashrom not
complain about mismatching ROM/chip size. complain about mismatching ROM/chip size.
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
You should flash each region individually: You should flash each region individually:
``` ```
flashrom -p internal --ifd -i gbe -w new.bin --noverify-all flashprog -p internal --ifd -i gbe -w new.bin --noverify-all
flashrom -p internal --ifd -i bios -w new.bin --noverify-all flashprog -p internal --ifd -i bios -w new.bin --noverify-all
flashrom -p internal --ifd -i me -w new.bin --noverify-all flashprog -p internal --ifd -i me -w new.bin --noverify-all
flashrom -p internal --ifd -i ifd -w new.bin --noverify-all flashprog -p internal --ifd -i ifd -w new.bin --noverify-all
``` ```
NOTE: The `--ifd` option uses the regions defined in the *flashed* IFD, so NOTE: The `--ifd` option uses the regions defined in the *flashed* IFD, so

View File

@ -71,15 +71,18 @@ crystal (small metal cylinder) and the power cable for the optical drive.
![](https://av.libreboot.org/hp8300usdt/jumper_to_fdo.jpg) ![](https://av.libreboot.org/hp8300usdt/jumper_to_fdo.jpg)
Boot into an OS of your choice (that has flashrom support). When using Linux, Boot into an OS of your choice (that has flashprog support). When using Linux,
you need to supply the kernel parameter `iomem=relaxed`. you need to supply the kernel parameter `iomem=relaxed`.
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
The BIOS should no longer impose any write-protections. The BIOS should no longer impose any write-protections.
You can now use `flashrom -p internal` freely. You can now use `flashprog -p internal` freely.
Take a backup of the original BIOS: Take a backup of the original BIOS:
flashrom -p internal -r oem_bios flashprog -p internal -r oem_bios
This is an Ivy Bridge board which means that a neutered ME image This is an Ivy Bridge board which means that a neutered ME image
is required if you wish to flash the ME region. Libreboot's is required if you wish to flash the ME region. Libreboot's
@ -95,7 +98,7 @@ platforms](../install/ivy_has_common.md)
You can now flash libreboot: You can now flash libreboot:
flashrom -p internal -w libreboot.rom flashprog -p internal -w libreboot.rom
You can now move the jumper back to its original place. You can now move the jumper back to its original place.
By default, Libreboot applies no write-protection, so By default, Libreboot applies no write-protection, so

View File

@ -89,5 +89,8 @@ to program Libreboot on it.
Some part of the board might turn on when programming. If programming fails, Some part of the board might turn on when programming. If programming fails,
you might have to attach the laptop to a charger. Make sure the laptop you might have to attach the laptop to a charger. Make sure the laptop
powers off before running flashrom. No LEDs should be lit. powers off before running flashprog. No LEDs should be lit.
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.

View File

@ -138,9 +138,12 @@ libreboot, so we don't actually provide that, but if you still have
Lenovo BIOS then you can just run the Lenovo BIOS update utility, which Lenovo BIOS then you can just run the Lenovo BIOS update utility, which
will update both the BIOS and EC version. See: will update both the BIOS and EC version. See:
- [../install/#flashrom](../install/#flashrom) - [../install/#flashprog](../install/#flashprog)
- <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk> - <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk>
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
NOTE: this can only be done when you are using Lenovo BIOS. How to NOTE: this can only be done when you are using Lenovo BIOS. How to
update the EC firmware while running libreboot is unknown. libreboot update the EC firmware while running libreboot is unknown. libreboot
only replaces the BIOS firmware, not EC. only replaces the BIOS firmware, not EC.

View File

@ -124,9 +124,12 @@ d945gclf据上次报告根本无法启动。D510MO 仍在 lbmk 中,但
建议更新到最新 EC 固件版本。[EC 固件](../../faq.md#ec-embedded-controller-firmware) 与 libreboot 是独立的,所以我们实际上并不会提供这些固件,但如果你仍还有 Lenovo BIOS那你可以直接运行 Lenovo BIOS 更新工具,它会同时更新 BIOS 和 EC 版本。见: 建议更新到最新 EC 固件版本。[EC 固件](../../faq.md#ec-embedded-controller-firmware) 与 libreboot 是独立的,所以我们实际上并不会提供这些固件,但如果你仍还有 Lenovo BIOS那你可以直接运行 Lenovo BIOS 更新工具,它会同时更新 BIOS 和 EC 版本。见:
- [../install/#flashrom](../install/#flashrom) - [../install/#flashprog](../install/#flashprog)
- <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk> - <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk>
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
注意:只有在运行 Lenovo BIOS 的时候,你才能这样做。如何在运行 libreboot 的时候更新 EC 固件尚不清楚。libreboot 只会替换 BIOS 固件,而不会替换 EC。 注意:只有在运行 Lenovo BIOS 的时候,你才能这样做。如何在运行 libreboot 的时候更新 EC 固件尚不清楚。libreboot 只会替换 BIOS 固件,而不会替换 EC。
更新的 EC 固件有一些好处,例如电池管理更加好。 更新的 EC 固件有一些好处,例如电池管理更加好。

View File

@ -52,7 +52,10 @@ This is a server board using AMD hardware (Fam10h). It can also be used
for building a high-powered workstation. Powered by libreboot. for building a high-powered workstation. Powered by libreboot.
Flashing instructions can be found at Flashing instructions can be found at
[../install/\#flashrom](../install/) [../install/\#flashprog](../install/)
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
Form factor {#formfactor} Form factor {#formfactor}
=========== ===========

View File

@ -19,7 +19,7 @@ recommend avoiding Kingston modules.*
*For working configurations see <https://www.coreboot.org/Board:asus/kgpe-d16>.* *For working configurations see <https://www.coreboot.org/Board:asus/kgpe-d16>.*
Flashing instructions can be found at Flashing instructions can be found at
[../install/\#flashrom](../install/#flashrom) - note that external [../install/\#flashprog](../install/#flashprog) - note that external
flashing is required, if the proprietary (ASUS) firmware is flashing is required, if the proprietary (ASUS) firmware is
currently installed. If you already have libreboot, by default it is currently installed. If you already have libreboot, by default it is
possible to re-flash using software running in Linux on the possible to re-flash using software running in Linux on the

View File

@ -103,7 +103,10 @@ Internal flashing
MacBook2,1 can always be flashed internally, even if running Apple firmware: MacBook2,1 can always be flashed internally, even if running Apple firmware:
sudo flashrom -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w your.rom sudo flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w your.rom
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
The MacBook1,1 can't be flashed internally if running the Apple EFI firmware. The MacBook1,1 can't be flashed internally if running the Apple EFI firmware.
You must flash externally. You must flash externally.

View File

@ -77,7 +77,10 @@ modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)*
(contains notes, plus instructions) (contains notes, plus instructions)
Flashing instructions can be found at Flashing instructions can be found at
[../install/\#flashrom](../install/#flashrom) [../install/\#flashprog](../install/#flashprog)
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
EC update {#ecupdate} EC update {#ecupdate}
========= =========
@ -88,7 +91,7 @@ libreboot, so we don't actually provide that, but if you still have
Lenovo BIOS then you can just run the Lenovo BIOS update utility, which Lenovo BIOS then you can just run the Lenovo BIOS update utility, which
will update both the BIOS and EC version. See: will update both the BIOS and EC version. See:
- [../install/#flashrom](../install/#flashrom) - [../install/#flashprog](../install/#flashprog)
- <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk> - <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk>
NOTE: this can only be done when you are using Lenovo BIOS. How to NOTE: this can only be done when you are using Lenovo BIOS. How to

View File

@ -76,7 +76,10 @@ modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)*
(contains notes, plus instructions) (contains notes, plus instructions)
Flashing instructions can be found at Flashing instructions can be found at
[../install/\#flashrom](../install/#flashrom) [../install/\#flashprog](../install/#flashprog)
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
EC update {#ecupdate} EC update {#ecupdate}
========= =========
@ -87,7 +90,7 @@ libreboot, so we don't actually provide that, but if you still have
Lenovo BIOS then you can just run the Lenovo BIOS update utility, which Lenovo BIOS then you can just run the Lenovo BIOS update utility, which
will update both the BIOS and EC version. See: will update both the BIOS and EC version. See:
- [../install/#flashrom](../install/#flashrom) - [../install/#flashprog](../install/#flashprog)
- <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk> - <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk>
NOTE: this can only be done when you are using Lenovo BIOS. How to NOTE: this can only be done when you are using Lenovo BIOS. How to

View File

@ -78,7 +78,10 @@ modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)*
(contains notes, plus instructions) (contains notes, plus instructions)
Flashing instructions can be found at Flashing instructions can be found at
[../install/\#flashrom](../install/#flashrom) [../install/\#flashprog](../install/#flashprog)
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
EC update {#ecupdate} EC update {#ecupdate}
========= =========
@ -89,7 +92,7 @@ libreboot, so we don't actually provide that, but if you still have
Lenovo BIOS then you can just run the Lenovo BIOS update utility, which Lenovo BIOS then you can just run the Lenovo BIOS update utility, which
will update both the BIOS and EC version. See: will update both the BIOS and EC version. See:
- [../install/#flashrom](../install/#flashrom) - [../install/#flashprog](../install/#flashprog)
- <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk> - <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk>
NOTE: this can only be done when you are using Lenovo BIOS. How to NOTE: this can only be done when you are using Lenovo BIOS. How to

View File

@ -76,7 +76,10 @@ modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)*
(contains notes, plus instructions) (contains notes, plus instructions)
Flashing instructions can be found at Flashing instructions can be found at
[../install/\#flashrom](../install/#flashrom) [../install/\#flashprog](../install/#flashprog)
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
EC update {#ecupdate} EC update {#ecupdate}
========= =========
@ -87,7 +90,7 @@ libreboot, so we don't actually provide that, but if you still have
Lenovo BIOS then you can just run the Lenovo BIOS update utility, which Lenovo BIOS then you can just run the Lenovo BIOS update utility, which
will update both the BIOS and EC version. See: will update both the BIOS and EC version. See:
- [../install/#flashrom](../install/#flashrom) - [../install/#flashprog](../install/#flashprog)
- <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk> - <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk>
- [X200, X200s, X200si BIOS Update](http://pcsupport.lenovo.com/au/en/products/laptops-and-netbooks/thinkpad-x-series-laptops/thinkpad-x200/downloads/ds015007) - [X200, X200s, X200si BIOS Update](http://pcsupport.lenovo.com/au/en/products/laptops-and-netbooks/thinkpad-x-series-laptops/thinkpad-x200/downloads/ds015007)
- [X200t BIOS Update](http://pcsupport.lenovo.com/au/en/products/laptops-and-netbooks/thinkpad-x-series-tablet-laptops/thinkpad-x200-tablet/downloads/ds018814) - [X200t BIOS Update](http://pcsupport.lenovo.com/au/en/products/laptops-and-netbooks/thinkpad-x-series-tablet-laptops/thinkpad-x200-tablet/downloads/ds018814)

View File

@ -69,7 +69,10 @@ X200S та X201S; знову ж таки, це неперевірено. *Шви
(містить примітки та інструкції) (містить примітки та інструкції)
Інструкції з перепрошивки можна знайти за адресою Інструкції з перепрошивки можна знайти за адресою
[../install/\#flashrom](../install/#flashrom) [../install/\#flashprog](../install/#flashprog)
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
Оновлення EC {#ecupdate} Оновлення EC {#ecupdate}
========= =========
@ -80,7 +83,7 @@ libreboot, тому ми її фактично не надаємо, але як
Lenovo BIOS, ви можете просто запустити утиліту оновлення BIOS Lenovo, яка Lenovo BIOS, ви можете просто запустити утиліту оновлення BIOS Lenovo, яка
оновить як BIOS, так і версію EC. Дивіться: оновить як BIOS, так і версію EC. Дивіться:
- [../install/#flashrom](../install/#flashrom) - [../install/#flashprog](../install/#flashprog)
- <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk> - <http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk>
- [Оновлення BIOS X200, X200s, X200i](http://pcsupport.lenovo.com/au/en/products/laptops-and-netbooks/thinkpad-x-series-laptops/thinkpad-x200/downloads/ds015007) - [Оновлення BIOS X200, X200s, X200i](http://pcsupport.lenovo.com/au/en/products/laptops-and-netbooks/thinkpad-x-series-laptops/thinkpad-x200/downloads/ds015007)
- [Оновлення BIOS X200t](http://pcsupport.lenovo.com/au/en/products/laptops-and-netbooks/thinkpad-x-series-tablet-laptops/thinkpad-x200-tablet/downloads/ds018814) - [Оновлення BIOS X200t](http://pcsupport.lenovo.com/au/en/products/laptops-and-netbooks/thinkpad-x-series-tablet-laptops/thinkpad-x200-tablet/downloads/ds018814)

View File

@ -22,6 +22,10 @@ A special fork of flashrom, maintained by Google, is required for flashing.
More information about this is present in the generic [chromebook flashing More information about this is present in the generic [chromebook flashing
instructions](chromebooks.md). instructions](chromebooks.md).
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom, but the chromium fork
is another fork of flashrom, and you should use that on chromebooks.
Depthcharge payload (obsolete) Depthcharge payload (obsolete)
------------------------------ ------------------------------

View File

@ -12,7 +12,10 @@ Flash chip size {#flashchips}
Use this to find out: Use this to find out:
flashrom -p internal flashprog -p internal
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
Flashing instructions {#clip} Flashing instructions {#clip}
===================== =====================

View File

@ -68,7 +68,7 @@ Flash chip size {#flashchips}
Use this to find out: Use this to find out:
flashrom -p internal flashprog -p internal
We believe most/all are 4MB (32Mb) flash sizes, but larger ROM images are We believe most/all are 4MB (32Mb) flash sizes, but larger ROM images are
provided for people who wish to upgrade. provided for people who wish to upgrade.
@ -168,9 +168,10 @@ BSD *boots* and works properly on these machines, but take note:
Nicholas's [dell-flash-unlock](https://browse.libreboot.org/lbmk.git/plain/util/dell-flash-unlock/dell_flash_unlock.c) Nicholas's [dell-flash-unlock](https://browse.libreboot.org/lbmk.git/plain/util/dell-flash-unlock/dell_flash_unlock.c)
utility has been ported to OpenBSD, but *other* BSDs are assumed unsupported for utility has been ported to OpenBSD, but *other* BSDs are assumed unsupported for
now. The `flashrom` software is available on BSD systems. Libreboot's build now.
system has *itself* not yet been ported to the BSDs, but you can use the
flash unlock utility. NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
NOTE: BSD is mentioned above, but the only BSD tested for `dell-flash-unlock` NOTE: BSD is mentioned above, but the only BSD tested for `dell-flash-unlock`
is OpenBSD, as of 15 October 2023. is OpenBSD, as of 15 October 2023.
@ -179,8 +180,8 @@ Flashing from Linux
------------------- -------------------
MAKE SURE you boot with this Linux kernel parameter: `iomem=relaxed` - this MAKE SURE you boot with this Linux kernel parameter: `iomem=relaxed` - this
disables memory protections, permitting `/dev/mem` access needed by flashrom. disables memory protections, permitting `/dev/mem` access needed by flashprog.
The flash is memory mapped and flashrom accesses it via `/dev/mem`. The flash is memory mapped and flashprog accesses it via `/dev/mem`.
You can flash Libreboot directly from the vendor (Dell) BIOS, without taking You can flash Libreboot directly from the vendor (Dell) BIOS, without taking
the machine apart. It can be done entirely from Linux. It will probably also the machine apart. It can be done entirely from Linux. It will probably also
@ -216,18 +217,18 @@ Protected Range registers.
When you flash it, you can use this command: When you flash it, you can use this command:
flashrom -p internal -w libreboot.rom flashprog -p internal -w libreboot.rom
Where `libreboot.rom` is your E6400 ROM. *Make sure* it's the right one. Where `libreboot.rom` is your E6400 ROM. *Make sure* it's the right one.
If flashrom complains about multiple flash chips detected, just pick one of If flashprog complains about multiple flash chips detected, just pick one of
them (doesn't matter which one). On *most* Dell machines, the most correct them (doesn't matter which one). On *most* Dell machines, the most correct
would probably be this option in flashrom: `-c MX25L3205D/MX25L3208D`. would probably be this option in flashprog: `-c MX25L3205D/MX25L3208D`.
So: So:
flashrom -p internal -w libreboot.rom -c MX25L3205D/MX25L3208D flashprog -p internal -w libreboot.rom -c MX25L3205D/MX25L3208D
When you see flashrom say `VERIFIED` at the end, that means the flash was When you see flashprog say `VERIFIED` at the end, that means the flash was
successful. If you don't see that, or you're unsure, please [contact the successful. If you don't see that, or you're unsure, please [contact the
Libreboot project via IRC](../../contact.md). Libreboot project via IRC](../../contact.md).
@ -237,7 +238,7 @@ BACK UP THE FACTORY BIOS
The `-w` option flashes `libreboot.rom`. You may consider *backing up* the The `-w` option flashes `libreboot.rom`. You may consider *backing up* the
original Dell BIOS first, using the -r option: original Dell BIOS first, using the -r option:
flashrom -p internal -r backup.rom -c MX25L3205D/MX25L3208D flashprog -p internal -r backup.rom -c MX25L3205D/MX25L3208D
Do this while in a flashable state, after the 2nd run of `dell-flash-unlock`. Do this while in a flashable state, after the 2nd run of `dell-flash-unlock`.

View File

@ -21,7 +21,7 @@ Flash chip size {#flashchips}
Use this to find out: Use this to find out:
flashrom -p internal flashprog -p internal
The internal flash size is 12MiB on this board; physically, an 8MiB and 4MiB The internal flash size is 12MiB on this board; physically, an 8MiB and 4MiB
chip (two chips) but this distinction only matters for external flashing. chip (two chips) but this distinction only matters for external flashing.
@ -79,9 +79,10 @@ BSD *boots* and works properly on these machines, but take note:
Nicholas's [dell-flash-unlock](https://browse.libreboot.org/lbmk.git/plain/util/dell-flash-unlock/dell_flash_unlock.c) Nicholas's [dell-flash-unlock](https://browse.libreboot.org/lbmk.git/plain/util/dell-flash-unlock/dell_flash_unlock.c)
utility has been ported to OpenBSD, but *other* BSDs are assumed unsupported for utility has been ported to OpenBSD, but *other* BSDs are assumed unsupported for
now. The `flashrom` software is available on BSD systems. Libreboot's build now.
system has *itself* not yet been ported to the BSDs, but you can use the
flash unlock utility. NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
NOTE: BSD is mentioned above, but the only BSD tested for `dell-flash-unlock` NOTE: BSD is mentioned above, but the only BSD tested for `dell-flash-unlock`
is OpenBSD, as of 15 October 2023. is OpenBSD, as of 15 October 2023.
@ -90,8 +91,8 @@ Flashing from Linux
------------------- -------------------
MAKE SURE you boot with this Linux kernel parameter: `iomem=relaxed` - this MAKE SURE you boot with this Linux kernel parameter: `iomem=relaxed` - this
disables memory protections, permitting `/dev/mem` access needed by flashrom. disables memory protections, permitting `/dev/mem` access needed by flashprog.
The flash is memory mapped and flashrom accesses it via `/dev/mem`. The flash is memory mapped and flashprog accesses it via `/dev/mem`.
You can flash Libreboot directly from the vendor (Dell) BIOS, without taking You can flash Libreboot directly from the vendor (Dell) BIOS, without taking
the machine apart. It can be done entirely from Linux. It will probably also the machine apart. It can be done entirely from Linux. It will probably also
@ -128,14 +129,14 @@ flash; see the instructions below.
When you flash it, you can use this command: When you flash it, you can use this command:
flashrom -p internal -w libreboot.rom flashprog -p internal -w libreboot.rom
Where `libreboot.rom` is your E6430 ROM. *Make sure* it's the right one. Where `libreboot.rom` is your E6430 ROM. *Make sure* it's the right one.
If flashrom complains about multiple flash chips detected, just pick one of If flashprog complains about multiple flash chips detected, just pick one of
them (doesn't matter which one), with the `-C` flag as directed; just pick one, them (doesn't matter which one), with the `-C` flag as directed; just pick one,
and if it doesn't work, try the next. and if it doesn't work, try the next.
When you see flashrom say `VERIFIED` at the end, that means the flash was When you see flashprog say `VERIFIED` at the end, that means the flash was
successful. If you don't see that, or you're unsure, please [contact the successful. If you don't see that, or you're unsure, please [contact the
Libreboot project via IRC](../../contact.md). Libreboot project via IRC](../../contact.md).
@ -145,10 +146,10 @@ BACK UP THE FACTORY BIOS
The `-w` option flashes `libreboot.rom`. You may consider *backing up* the The `-w` option flashes `libreboot.rom`. You may consider *backing up* the
original Dell BIOS first, using the -r option: original Dell BIOS first, using the -r option:
flashrom -p internal -r backup.rom flashprog -p internal -r backup.rom
AGAIN: make sure to use `-C` accordingly, if you need to pick a chip (where AGAIN: make sure to use `-C` accordingly, if you need to pick a chip (where
flashrom has detected multiple chip definitions). Just pick one, any of them flashprog has detected multiple chip definitions). Just pick one, any of them
will probably work, if not try the next. will probably work, if not try the next.
Do this while in a flashable state, after the 2nd run of `dell-flash-unlock`. Do this while in a flashable state, after the 2nd run of `dell-flash-unlock`.

View File

@ -22,7 +22,7 @@ Flash chip size {#flashchips}
Use this to find out: Use this to find out:
flashrom -p internal flashprog -p internal
Flashing instructions {#clip} Flashing instructions {#clip}
===================== =====================
@ -52,11 +52,11 @@ Linux. There are 2 flash chips (one is backup).
Flash the first chip: Flash the first chip:
./flashrom -p internal:dualbiosindex=0 -w libreboot.rom ./flashprog -p internal:dualbiosindex=0 -w libreboot.rom
Flash the second chip: Flash the second chip:
./flashrom -p internal:dualbiosindex=1 -w libreboot.rom ./flashprog -p internal:dualbiosindex=1 -w libreboot.rom
NOTE: you can still boot the system with just the main flash chip NOTE: you can still boot the system with just the main flash chip
connected, after desoldering the backup chip. This has been tested while connected, after desoldering the backup chip. This has been tested while
@ -66,5 +66,5 @@ NOTE: If you don't flash both chips, the recovery program from the default
factory BIOS will kick in and your board will be soft bricked. Make sure that factory BIOS will kick in and your board will be soft bricked. Make sure that
you flash both chips! you flash both chips!
NOTE: You need the latest flashrom. Just get it on flashrom.org from NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
their SVN or Git repos. now, as of 27 January 2024, which is a fork of flashrom.

View File

@ -123,7 +123,7 @@ accomplish the same result of locking or unlocking a descriptor.**
These files contain the descriptor+GbE region and are suitable for systems These files contain the descriptor+GbE region and are suitable for systems
that have an Intel GbE NIC present. The flash regions (as defined by the that have an Intel GbE NIC present. The flash regions (as defined by the
Intel Flash Descriptor) are set *read-write* which means that you can also Intel Flash Descriptor) are set *read-write* which means that you can also
re-flash using `flashrom -p internal` in your operating system running on re-flash using `flashprog -p internal` in your operating system running on
that machine. This is the default setup used when libreboot's build system that machine. This is the default setup used when libreboot's build system
compiles ROM images. compiles ROM images.
@ -181,7 +181,7 @@ a Broadcom NIC for ethernet. In descriptorless mode, ICH9M works very similarly
to older ICH7 chipsets. to older ICH7 chipsets.
Your libreboot.rom image is now ready to be flashed on the system. Refer Your libreboot.rom image is now ready to be flashed on the system. Refer
back to [../install/\#flashrom](../install/#flashrom) for how to flash back to [../install/\#flashprog](../install/#flashprog) for how to flash
it. it.
Write-protecting the flash chip Write-protecting the flash chip
@ -289,7 +289,7 @@ This takes a `factory.rom` dump and disables the ME/TPM, but leaves the
region intact. It also sets all regions read-write. Simply put, this means region intact. It also sets all regions read-write. Simply put, this means
that you can use the original factory firmware but without the Intel ME enabled. that you can use the original factory firmware but without the Intel ME enabled.
The ME interferes with flash read/write in flashrom, and the default The ME interferes with flash read/write in flashprog, and the default
descriptor locks some regions. The idea is that doing this will remove descriptor locks some regions. The idea is that doing this will remove
all of those restrictions. all of those restrictions.

View File

@ -3,27 +3,23 @@ title: Installation instructions
x-toc-enable: true x-toc-enable: true
... ...
**WARNING: Upstream flashrom has many stability issues at present, especially **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
in revisions after 1.3 tested as of November 2023. If you're using flashrom on now, as of 27 January 2024, which is a fork of flashrom.**
Libreboot systems, we recommend you stick to flashrom 1.2 for now, the last
known version that was stable. In particular, many i945 machines e.g. X60, T60
cannot be flashed at all by current November 2023 revisions, at the time of
this notice. We will have more context at a future date.**
This section relates to installing libreboot on supported targets. This section relates to installing libreboot on supported targets.
FLASH ERRORS (and workarounds) FLASH ERRORS (and workarounds)
======================= =======================
Right out of the gate, some users may experience errors with flashrom when Right out of the gate, some users may experience errors with flashprog when
using the internal programmer. They are: using the internal programmer. They are:
/dev/mem access error /dev/mem access error
--------------------- ---------------------
NOTE: if running `flashrom -p internal` for software based flashing, and you NOTE: if running `flashprog -p internal` for software based flashing, and you
get an error related to `/dev/mem` access, you should reboot with get an error related to `/dev/mem` access, you should reboot with
`iomem=relaxed` kernel parameter before running flashrom, or use a kernel that `iomem=relaxed` kernel parameter before running flashprog, or use a kernel that
has `CONFIG_STRICT_DEVMEM` not enabled. has `CONFIG_STRICT_DEVMEM` not enabled.
On NetBSD and OpenBSD systems, the equivalent to `iomem=relaxed` in this case On NetBSD and OpenBSD systems, the equivalent to `iomem=relaxed` in this case
@ -36,8 +32,8 @@ ERROR: Could not get I/O privileges
Error message: `ERROR: Could not get I/O privileges (Function not implemented)` Error message: `ERROR: Could not get I/O privileges (Function not implemented)`
If you get this while running `flashrom -p internal -w filename.rom` (or any If you get this while running `flashprog -p internal -w filename.rom` (or any
internal flash operation), note: flashrom heavily uses ioperm/iopl functions internal flash operation), note: flashprog heavily uses ioperm/iopl functions
to operate the internal flasher, at least on x86 machines. to operate the internal flasher, at least on x86 machines.
See: <https://lwn.net/Articles/804143/> See: <https://lwn.net/Articles/804143/>
@ -56,7 +52,7 @@ See: [NetBSD securelevel manual](https://wiki.netbsd.org/tutorials/kernel_secure
and [OpenBSD securelevel manpage](https://man.openbsd.org/securelevel). and [OpenBSD securelevel manpage](https://man.openbsd.org/securelevel).
Otherwise, if you get such errors, it may just be that you're not root. You Otherwise, if you get such errors, it may just be that you're not root. You
must run flashrom as root, at least to use the internal flasher (using external must run flashprog as root, at least to use the internal flasher (using external
USB flashing dongles doesn't normally require root). USB flashing dongles doesn't normally require root).
SAFETY WARNING! SAFETY WARNING!
@ -276,7 +272,7 @@ may be configured to restrict write privileges by the host CPU.
In some situations, the host CPU can rewrite/erase/dump the boot flash. In some situations, the host CPU can rewrite/erase/dump the boot flash.
This is called *internal flashing*. This means that you will run software, This is called *internal flashing*. This means that you will run software,
namely `flashrom`, to read/erase/write the contents of the boot flash from a namely `flashprog`, to read/erase/write the contents of the boot flash from a
running operating system on the target device. running operating system on the target device.
NOTE: please also read the sections further down this page. On some systems, NOTE: please also read the sections further down this page. On some systems,
@ -287,11 +283,11 @@ NOTE: in some cases, external flashing is possible but special steps are
required. This depends on your mainboard. Again, please read this page required. This depends on your mainboard. Again, please read this page
carefully. carefully.
Run flashrom on host CPU Run flashprog on host CPU
------------------------ ------------------------
You can simply take any ROM image from the libreboot project, and flash it. You can simply take any ROM image from the libreboot project, and flash it.
Boot a Linux distribution on the target device, and install flashrom. Boot a Linux distribution on the target device, and install flashprog.
In some cases, this is not possible or there are other considerations. Please In some cases, this is not possible or there are other considerations. Please
read this section *carefully*. read this section *carefully*.
@ -300,7 +296,7 @@ read this section *carefully*.
Use this to find out: Use this to find out:
flashrom -p internal flashprog -p internal
In the output will be information pertaining to your boot flash. In the output will be information pertaining to your boot flash.
@ -308,14 +304,14 @@ In the output will be information pertaining to your boot flash.
How to read the current chip contents: How to read the current chip contents:
sudo flashrom -p internal:laptop=force_I_want_a_brick,boardmismatch=force -r dump.bin sudo flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -r dump.bin
You should still make several dumps, even if you're flashing internally, to You should still make several dumps, even if you're flashing internally, to
ensure that you get the same checksums. Check each dump using `sha1sum` ensure that you get the same checksums. Check each dump using `sha1sum`
How to erase and rewrite the chip contents: How to erase and rewrite the chip contents:
sudo flashrom -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w libreboot.rom sudo flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w libreboot.rom
If you are re-flashing a GM45+ICH9M laptop (e.g. ThinkPad X200/X200S/X200T, If you are re-flashing a GM45+ICH9M laptop (e.g. ThinkPad X200/X200S/X200T,
T400, T500, R400, W500 etc - but not R500), you should run the ich9gen utility T400, T500, R400, W500 etc - but not R500), you should run the ich9gen utility
@ -324,13 +320,13 @@ Please read the ich9utils documentation:
[/docs/install/ich9utils.html](/docs/install/ich9utils.html) [/docs/install/ich9utils.html](/docs/install/ich9utils.html)
NOTE: `force_I_want_a_brick` is not scary. Do not be scared! This merely disables NOTE: `force_I_want_a_brick` is not scary. Do not be scared! This merely disables
the safety checks in flashrom. Flashrom and coreboot change a lot, over the years, the safety checks in flashprog. Flashrom and coreboot change a lot, over the years,
and sometimes it's necessary to use this option. If you're scared, then just and sometimes it's necessary to use this option. If you're scared, then just
follow the above instructions, but remove that option. So, just use `-p internal`. follow the above instructions, but remove that option. So, just use `-p internal`.
If that doesn't work, next try `-p internal:boardmismatch=force`. If that doesn't If that doesn't work, next try `-p internal:boardmismatch=force`. If that doesn't
work, try `-p internal:boardmismatch=force,laptop=force_I_want_a_brick`. So long work, try `-p internal:boardmismatch=force,laptop=force_I_want_a_brick`. So long
as you *ensure* you're using the correct ROM for your machine, it will be safe as you *ensure* you're using the correct ROM for your machine, it will be safe
to run flashrom. These extra options just disable the safetyl checks in flashrom. to run flashprog. These extra options just disable the safetyl checks in flashprog.
There is nothing to worry about. There is nothing to worry about.
If successful, it will either say `VERIFIED` or it will say that the chip If successful, it will either say `VERIFIED` or it will say that the chip
@ -420,7 +416,7 @@ example of the push pin as a proof of concept:
[You must flash it externally](spi.md) [You must flash it externally](spi.md)
#### ThinkPad X60/X60S/X60T/T60 with Lenovo BIOS {#flashrom_lenovobios} #### ThinkPad X60/X60S/X60T/T60 with Lenovo BIOS {#flashprog_lenovobios}
**WARNING: Libreboot 20231021 and likely older 2023 releases do not have the **WARNING: Libreboot 20231021 and likely older 2023 releases do not have the
bootblock copied in release ROMs, so the bucts trick below will actually cause bootblock copied in release ROMs, so the bucts trick below will actually cause
@ -437,7 +433,7 @@ And then do this:
**NOTE: This section partially relates to `utils` release archive in **NOTE: This section partially relates to `utils` release archive in
Libreboot 20160907, which contains static compiled binaries for things like Libreboot 20160907, which contains static compiled binaries for things like
bucts and flashrom. It will *still* work on modern distros, and thus is bucts and flashprog. It will *still* work on modern distros, and thus is
still referenced here. The `flash` script in that release can be used, with still referenced here. The `flash` script in that release can be used, with
modern Libreboot ROMs. Current Libreboot releases do not include pre-compiled modern Libreboot ROMs. Current Libreboot releases do not include pre-compiled
utilities, only ROMs.** utilities, only ROMs.**
@ -452,7 +448,7 @@ X60 BIOS password (Lenovo): you might find info here:
<https://bios-pw.org/> <https://bios-pw.org/>
You can just get bucts from the libreboot project, same thing for the patched You can just get bucts from the libreboot project, same thing for the patched
flashrom. In the Libreboot 20160907 release, there is a *utility* archive, which flashprog. In the Libreboot 20160907 release, there is a *utility* archive, which
has statically compiled executables. They still work just fine on modern has statically compiled executables. They still work just fine on modern
systems, and they can be used for this purpose. systems, and they can be used for this purpose.
@ -467,11 +463,11 @@ Here are a list of targets:
and you will run it at 115200 baud rate. agetty/fgetty in Linux can give and you will run it at 115200 baud rate. agetty/fgetty in Linux can give
you a serial console in your OS) you a serial console in your OS)
Download and build flashrom, using the instructions Download and build flashprog, using the instructions
on [the Git page](../../git.md), and download the `bucts` software using the on [the Git page](../../git.md), and download the `bucts` software using the
notes on that very same page. notes on that very same page.
You can replace Lenovo BIOS with libreboot, using flashrom running on the host You can replace Lenovo BIOS with libreboot, using flashprog running on the host
CPU. However, there are some considerations. CPU. However, there are some considerations.
Firstly, make sure that the yellow CMOS battery is installed, and functioning Firstly, make sure that the yellow CMOS battery is installed, and functioning
@ -483,7 +479,7 @@ load on it, which there will be. This coincell powers the real-time clock and
CMOS memory). CMOS memory).
Lenovo BIOS restricts write access, but there is a weakness in it. With a Lenovo BIOS restricts write access, but there is a weakness in it. With a
specially patched flashrom binary, you can easily flash it but the top 64KiB specially patched flashprog binary, you can easily flash it but the top 64KiB
region of the boot flash, containing your bootblock, cannot be flashed just region of the boot flash, containing your bootblock, cannot be flashed just
yet. However, there is a register called the *Backup Control* or *BUC* register yet. However, there is a register called the *Backup Control* or *BUC* register
and in that register is a status bit called *Top Swap* or *TS*. and in that register is a status bit called *Top Swap* or *TS*.
@ -497,12 +493,12 @@ program referenced below.
The libreboot ROM images already have the upper 64KiB bootblock copied to the lower The libreboot ROM images already have the upper 64KiB bootblock copied to the lower
one, so you don't have to worry about copying it yourself. one, so you don't have to worry about copying it yourself.
If you build flashrom using the libreboot build system, there will be three If you build flashprog using the libreboot build system, there will be three
binaries: binaries:
* `flashrom` * `flashprog`
* `flashrom_i945_sst` * `flashprog_i945_sst`
* `flashrom_i945_mx` * `flashprog_i945_mx`
It's these last two binaries that you should use. Now compile bucts (just It's these last two binaries that you should use. Now compile bucts (just
run `make` in the bucts source directory). run `make` in the bucts source directory).
@ -514,19 +510,19 @@ Run the bucts tool:
Ensure that your CMOS battery is connected too. Now you must determine whether Ensure that your CMOS battery is connected too. Now you must determine whether
you have Macronix or SST. An X60/T60 thinkpad will have either an SST or a you have Macronix or SST. An X60/T60 thinkpad will have either an SST or a
Macronix chip. The Macronix chip will have "MX" written on the chip. You will Macronix chip. The Macronix chip will have "MX" written on the chip. You will
use `flashrom_i945_sst` for the SST chip, and `flashrom_i945_mx` for the use `flashprog_i945_sst` for the SST chip, and `flashprog_i945_mx` for the
Macronix chip. Macronix chip.
Now run flashrom (for SST): Now run flashprog (for SST):
sudo ./flashrom_i945_sst -p internal -w coreboot.rom sudo ./flashprog_i945_sst -p internal -w coreboot.rom
Or Macronix: Or Macronix:
sudo ./flashrom_i945_mx -p internal -w coreboot.rom sudo ./flashprog_i945_mx -p internal -w coreboot.rom
NOTE: you *can* just run both. One of them will succeed. It is perfectly NOTE: you *can* just run both. One of them will succeed. It is perfectly
harmless to run both versions of flashrom. In fact, you should do so! harmless to run both versions of flashprog. In fact, you should do so!
You'll see a lot of errors. This is normal. You should see something like: You'll see a lot of errors. This is normal. You should see something like:
@ -554,17 +550,17 @@ Your flash chip is in an unknown state.
If you see this, rejoice! It means that the flash was successful. Please do not If you see this, rejoice! It means that the flash was successful. Please do not
panic. Shut down now, and wait a few seconds, then turn back on again. panic. Shut down now, and wait a few seconds, then turn back on again.
**WARNING: if flashrom complains about `/dev/mem` access, please **WARNING: if flashprog complains about `/dev/mem` access, please
run `sudo ./bucts 0`. If flashrom is complaining about `/dev/mem`, it means run `sudo ./bucts 0`. If flashprog is complaining about `/dev/mem`, it means
that you have `CONFIG_STRICT_DEVMEM` enabled in your kernel. Reboot with the that you have `CONFIG_STRICT_DEVMEM` enabled in your kernel. Reboot with the
following kernel parameter added in your bootloader: `iomem=relaxed` and try following kernel parameter added in your bootloader: `iomem=relaxed` and try
again with the above instructions. DO NOT continue until the above works, and again with the above instructions. DO NOT continue until the above works, and
you see the expected flashrom output as indicated above.** you see the expected flashprog output as indicated above.**
If you *did* run flashrom and it failed to flash, but you set bucts to 1 and If you *did* run flashprog and it failed to flash, but you set bucts to 1 and
shut down, don't worry. Just remove the yellow coin-cell battery (it's underneath shut down, don't worry. Just remove the yellow coin-cell battery (it's underneath
the keyboard, connected to the mainboard), wait a minute or two, reconnect the the keyboard, connected to the mainboard), wait a minute or two, reconnect the
coin-cell and try again from scratch. In this instance, if flashrom didn't do coin-cell and try again from scratch. In this instance, if flashprog didn't do
anything, and didn't flash anything, it means you still have Lenovo BIOS but anything, and didn't flash anything, it means you still have Lenovo BIOS but
if bucts is set to 1, you can flush it and set it back to 0. BUC.TS is stored in if bucts is set to 1, you can flush it and set it back to 0. BUC.TS is stored in
volatile memory, powered by that CR2032 coin-cell battery. volatile memory, powered by that CR2032 coin-cell battery.
@ -572,16 +568,16 @@ volatile memory, powered by that CR2032 coin-cell battery.
Assuming that everything went well: Assuming that everything went well:
Flash the ROM for a second time. For this second flashing attempt, the upper Flash the ROM for a second time. For this second flashing attempt, the upper
64KiB bootblock is now read-write. Use the *unpatched* flashrom binary: 64KiB bootblock is now read-write. Use the *unpatched* flashprog binary:
sudo ./flashrom -p internal -w libreboot.rom sudo ./flashprog -p internal -w libreboot.rom
To reset bucts, do this: To reset bucts, do this:
sudo ./bucts 0 sudo ./bucts 0
ONLY set bucts back to 0 if you're sure that the upper 64KiB bootblock is ONLY set bucts back to 0 if you're sure that the upper 64KiB bootblock is
flashed. It is flashed if flashrom said VERIFIED when running the above flashed. It is flashed if flashprog said VERIFIED when running the above
command. command.
If it said VERIFIED, shut down. If it didn't say VERIFIED, make sure bucts is If it said VERIFIED, shut down. If it didn't say VERIFIED, make sure bucts is
@ -627,13 +623,13 @@ ASUS KFSN4-DRE
The KFSN4-DRE has an LPC chip. Most people have been flashing these The KFSN4-DRE has an LPC chip. Most people have been flashing these
internally, hot-swapping the chip out after boot, preserving the original chip, internally, hot-swapping the chip out after boot, preserving the original chip,
and using flashrom on a new chip as described above. and using flashprog on a new chip as described above.
TODO: Document PLCC32 (LPC) flashing. TODO: Document PLCC32 (LPC) flashing.
The [FlexyICE](https://www.coreboot.org/FlexyICE) has been used to flash these The [FlexyICE](https://www.coreboot.org/FlexyICE) has been used to flash these
chips, but it is hard to find now. A custom flasher may be made such as chips, but it is hard to find now. A custom flasher may be made such as
[flashrom serprog stm32](https://github.com/wosk/stm32-vserprog-lpc) or [flashprog serprog stm32](https://github.com/wosk/stm32-vserprog-lpc) or
[teensy flasher](https://www.flashrom.org/Teensy_3.1_SPI_%2B_LPC/FWH_Flasher) [teensy flasher](https://www.flashprog.org/Teensy_3.1_SPI_%2B_LPC/FWH_Flasher)
TARGET: DELL Precision T1650 desktop TARGET: DELL Precision T1650 desktop
------------------------------------ ------------------------------------

View File

@ -111,23 +111,26 @@ containing your NIC's configuration. This is the part that
many people will struggle with, so we will dedicated an many people will struggle with, so we will dedicated an
entire next section to it: entire next section to it:
Use flashrom Use flashprog
------------ ------------
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
If you wish to operate on the GbE section that's already If you wish to operate on the GbE section that's already
flashed, you should *dump* the current full ROM image. flashed, you should *dump* the current full ROM image.
If you already have a ROM image, you do not need to dump If you already have a ROM image, you do not need to dump
it, so you can skip this section. it, so you can skip this section.
Download flashrom here: Download flashprog here:
* <https://flashrom.org/> * <https://flashprog.org/>
Using recent flashrom versions, you can extract this region. If Using recent flashprog versions, you can extract this region. If
your regions are unlocked, you can run flashrom on the target your regions are unlocked, you can run flashprog on the target
system, like so: system, like so:
flashrom -p internal -r rom.bin flashprog -p internal -r rom.bin
If your system has two flash chips, the GbE region is usually If your system has two flash chips, the GbE region is usually
stored on SPI1 (not SPI2). Otherwise, it may be that you have stored on SPI1 (not SPI2). Otherwise, it may be that you have
@ -145,7 +148,7 @@ from and writing to the chip. See:
* <https://libreboot.org/docs/install/spi.html> * <https://libreboot.org/docs/install/spi.html>
If you're using an external programmer, the `-p internal` If you're using an external programmer, the `-p internal`
option should be changed accordingly. Read flashrom option should be changed accordingly. Read flashprog
documentation, and make sure you have everything documentation, and make sure you have everything
properly configured. properly configured.
@ -201,18 +204,18 @@ This will create the file `rom.bin.new`, which contains
your modified GbE section with the NVM images inside; this your modified GbE section with the NVM images inside; this
includes your MAC address. includes your MAC address.
Refer to flashrom documentation. You may flash the new ROM Refer to flashprog documentation. You may flash the new ROM
like so, if running on the same system and the regions are like so, if running on the same system and the regions are
read-write: read-write:
flashrom -p internal -w rom.bin.new flashprog -p internal -w rom.bin.new
Newer versions of flashrom support flashing just the specified Newer versions of flashprog support flashing just the specified
region, like so: region, like so:
flashrom -p internal --ifd -i gbe -w rom.bin.new flashprog -p internal --ifd -i gbe -w rom.bin.new
If you're running flashrom from host CPU on the target If you're running flashprog from host CPU on the target
system, and it's dual flash, you can just flash the system, and it's dual flash, you can just flash the
concatenated image, which you created earlier by running concatenated image, which you created earlier by running
the `cat` program; dual-IC flash configurations appear to the `cat` program; dual-IC flash configurations appear to

View File

@ -64,7 +64,10 @@ Flash chip size {#flashchips}
Use this to find out: Use this to find out:
flashrom -p internal flashprog -p internal
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
MAC address {#macaddress} MAC address {#macaddress}
=========== ===========

View File

@ -3,6 +3,9 @@ title: Read/write 25XX NOR flash via SPI protocol
x-toc-enable: true x-toc-enable: true
... ...
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
@ -14,7 +17,7 @@ which uses LPC flash in a PLCC32 socket, which you can simply hot-swap after
booting the vendor firmware, and then flash internally. Simple! booting the vendor firmware, and then flash internally. Simple!
We will be using We will be using
the [flashrom](https://flashrom.org/Flashrom) software which is written to the [flashprog](https://flashprog.org/Flashrom) software which is written to
dump, erase and rewrite these flash chips. dump, erase and rewrite these flash chips.
libreboot currently documents how to use these SPI programmers: libreboot currently documents how to use these SPI programmers:
@ -36,7 +39,7 @@ libreboot is running.
*Internal* flashing means that the host CPU on your system can re-program the *Internal* flashing means that the host CPU on your system can re-program the
SPI flash, using an on-board SPI programmer (which all boards have). You do this SPI flash, using an on-board SPI programmer (which all boards have). You do this
from Linux, with flashrom. from Linux, with flashprog.
*This* guide that you're reading now is for using an *external* programmer. It *This* guide that you're reading now is for using an *external* programmer. It
is called *external* because it's not the *internal* one on your mainboard. is called *external* because it's not the *internal* one on your mainboard.
@ -108,7 +111,7 @@ will appear:
Take note of the ttyACMx. Flashrom is now usable Take note of the ttyACMx. Flashrom is now usable
(substitute ttyACMx with what you observed earlier). (substitute ttyACMx with what you observed earlier).
flashrom -p serprog:dev=/dev/ttyACMx,spispeed=16M flashprog -p serprog:dev=/dev/ttyACMx,spispeed=16M
spispeed=32M usually works, but since it's not much faster it's probably spispeed=32M usually works, but since it's not much faster it's probably
not worth it. The 12Mbps USB port is limiting the actual speed here. not worth it. The 12Mbps USB port is limiting the actual speed here.
@ -267,7 +270,7 @@ BeagleBone Black (BBB)
---------------------- ----------------------
SSH into your BeagleBone Black. It is assumed that you are running Debian 9 on SSH into your BeagleBone Black. It is assumed that you are running Debian 9 on
your BBB. You will run `flashrom` from your BBB. your BBB. You will run `flashprog` from your BBB.
NOTE: This section is out of date, because it is written for Debian 9 (running NOTE: This section is out of date, because it is written for Debian 9 (running
on the BBB) on the BBB)
@ -308,9 +311,9 @@ RemainAfterExit=yes
WantedBy=multi-user.target WantedBy=multi-user.target
``` ```
Now test flashrom: Now test flashprog:
./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 ./flashprog -p linux_spi:dev=/dev/spidev1.0,spispeed=512
It is important to use `spispeed=512` or a lower number such as 256 or 128, It is important to use `spispeed=512` or a lower number such as 256 or 128,
because otherwise the BBB will be quite unstable. because otherwise the BBB will be quite unstable.
@ -320,7 +323,7 @@ Example output:
``` ```
Calibrating delay loop... OK. Calibrating delay loop... OK.
No EEPROM/flash device found. No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically. Note: flashprog can never write if the flash chip isn't found automatically.
``` ```
This means that it's working (the clip isn't connected to any flash This means that it's working (the clip isn't connected to any flash
@ -339,7 +342,7 @@ TODO: document other SPI flashers
Rasberry Pi (RPi) Rasberry Pi (RPi)
----------------- -----------------
SSH into your Raspberry Pi. You will run `flashrom` from your Raspberry Pi. SSH into your Raspberry Pi. You will run `flashprog` from your Raspberry Pi.
You must configure `spidev` on your Raspberry Pi. This is a special driver in You must configure `spidev` on your Raspberry Pi. This is a special driver in
the Linux kernel; technically, the driver name is `spi-bcm2835`. the Linux kernel; technically, the driver name is `spi-bcm2835`.
@ -447,7 +450,7 @@ Website:
<https://librerpi.github.io/> <https://librerpi.github.io/>
Install flashrom Install flashprog
---------------- ----------------
If you're using a BBB or RPi, you will do this while SSH'd into those. If you're using a BBB or RPi, you will do this while SSH'd into those.
@ -456,7 +459,7 @@ Flashrom is the software that you will use, for dumping, erasing and rewriting
the contents of your NOR flash. the contents of your NOR flash.
In the libreboot build system, from the Git repository, you can download and In the libreboot build system, from the Git repository, you can download and
install flashrom. Do this after downloading the install flashprog. Do this after downloading the
[lbmk Git repository](https://codeberg.org/libreboot/lbmk): [lbmk Git repository](https://codeberg.org/libreboot/lbmk):
cd lbmk cd lbmk
@ -465,7 +468,7 @@ install flashrom. Do this after downloading the
NOTE: debian, arch or void can be written instead of ubuntu2004. the debian NOTE: debian, arch or void can be written instead of ubuntu2004. the debian
script is also applicable to newer ubuntu versions script is also applicable to newer ubuntu versions
./update trees -b flashrom ./update trees -b flashprog
If the `ubuntu2004` script complains about missing dependencies, just modify If the `ubuntu2004` script complains about missing dependencies, just modify
the dependencies config to remove those dependencies. The script is located the dependencies config to remove those dependencies. The script is located
@ -473,29 +476,29 @@ at `config/dependencies/ubuntu2004` and it is written for
Ubuntu 20.04, but it should work fine in other Linux distributions that use Ubuntu 20.04, but it should work fine in other Linux distributions that use
the `apt-get` package manager. the `apt-get` package manager.
A `flashrom/` directory will be present, with a `flashrom` executable inside A `flashprog/` directory will be present, with a `flashprog` executable inside
of it. If you got an error about missing package when running the dependencies of it. If you got an error about missing package when running the dependencies
command above, tweak `config/dependencies/ubuntu2004`. That command above, tweak `config/dependencies/ubuntu2004`. That
script downloads and installs build dependencies in apt-get and it is intended script downloads and installs build dependencies in apt-get and it is intended
for use on x86-64 systems running Ubuntu 20.04, but it should work in Raspbian for use on x86-64 systems running Ubuntu 20.04, but it should work in Raspbian
on the Raspberry Pi. on the Raspberry Pi.
Alternatively, you may download flashrom directly from upstream Alternatively, you may download flashprog directly from upstream
at <https://flashrom.org/Flashrom> at <https://flashprog.org/Flashrom>
If you're flashing a Macronix flashchip on a ThinkPad X200, you will want to If you're flashing a Macronix flashchip on a ThinkPad X200, you will want to
use a special patched version of flashrom, which you can download here: use a special patched version of flashprog, which you can download here:
<https://vimuser.org/hackrom.tar.xz> - patched source code is available, and a <https://vimuser.org/hackrom.tar.xz> - patched source code is available, and a
binary is also available that you can simply run. Pass the `--workaround-mx` binary is also available that you can simply run. Pass the `--workaround-mx`
argument in flashrom. This mitigates stability issues. argument in flashprog. This mitigates stability issues.
If you downloaded the flashrom source code directly, you can go into the If you downloaded the flashprog source code directly, you can go into the
directory and simply type `make`. In the libreboot build system, build directory and simply type `make`. In the libreboot build system, build
dependencies are documented in configuration files located dependencies are documented in configuration files located
at `config/dependencies/` which you can install at `config/dependencies/` which you can install
using the `apt-get` software. using the `apt-get` software.
How to use flashrom How to use flashprog
=================== ===================
Read past these sections, further down this page, to learn about specific chip Read past these sections, further down this page, to learn about specific chip
@ -510,11 +513,11 @@ current chip contents to a file.
Run this command to see if 25xx flash is detected, with your RPi properly Run this command to see if 25xx flash is detected, with your RPi properly
wired. wired.
sudo ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=32768 sudo ./flashprog -p linux_spi:dev=/dev/spidev0.0,spispeed=32768
For BBB, you must use a lower speed and a different device path: For BBB, you must use a lower speed and a different device path:
sudo ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 sudo ./flashprog -p linux_spi:dev=/dev/spidev1.0,spispeed=512
On BBB, never use a speed higher than `spispeed=512`. In some cases, you may On BBB, never use a speed higher than `spispeed=512`. In some cases, you may
even need to go as low as `spispeed=128`. The BBB is highly unstable and even need to go as low as `spispeed=128`. The BBB is highly unstable and
@ -532,11 +535,11 @@ or you can try flashing it with a new ROM.
Dump it like so (RPi): Dump it like so (RPi):
sudo ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=32768 -r dump.bin sudo ./flashprog -p linux_spi:dev=/dev/spidev0.0,spispeed=32768 -r dump.bin
For BBB, do this: For BBB, do this:
sudo ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r dump.bin sudo ./flashprog -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r dump.bin
It is advisable to take a *2nd* dump, e.g. `dump2.bin`, and then check sha1sum: It is advisable to take a *2nd* dump, e.g. `dump2.bin`, and then check sha1sum:
@ -567,11 +570,11 @@ Writing
Next, run this command (RPi): Next, run this command (RPi):
sudo ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=32768 -w /path/to/libreboot.rom sudo ./flashprog -p linux_spi:dev=/dev/spidev0.0,spispeed=32768 -w /path/to/libreboot.rom
If using BBB: If using BBB:
sudo ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -w /path/to/libreboot.rom sudo ./flashprog -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -w /path/to/libreboot.rom
If using BBB, you may have to use a lower speed than 512. You may also have to If using BBB, you may have to use a lower speed than 512. You may also have to
re-flash several times before it works fully. re-flash several times before it works fully.

View File

@ -7,7 +7,7 @@ x-toc-enable: true
本指南将教你怎样使用各种工具,通过 SPI 协议对 25xx NOR flash 进行外部再编程。这是 coreboot 所支持的计算机中,最常见的 flash IC 类型。目前 libreboot 支持的每个系统,基本都使用这种类型的引导 flash唯一的例外就是 ASUS KFSN4-DRE它在 PLCC32 芯片座中使用了 LPC flash你可以在供应商固件启动后对其进行热切换然后再内部刷入。十分简单 本指南将教你怎样使用各种工具,通过 SPI 协议对 25xx NOR flash 进行外部再编程。这是 coreboot 所支持的计算机中,最常见的 flash IC 类型。目前 libreboot 支持的每个系统,基本都使用这种类型的引导 flash唯一的例外就是 ASUS KFSN4-DRE它在 PLCC32 芯片座中使用了 LPC flash你可以在供应商固件启动后对其进行热切换然后再内部刷入。十分简单
我们会用到 [flashrom](https://flashrom.org/Flashrom) 软件,这个软件可以读出、擦除及重写这些 flash 芯片。 我们会用到 [flashprog](https://flashprog.org/Flashrom) 软件,这个软件可以读出、擦除及重写这些 flash 芯片。
libreboot 目前记录了这些 SPI 编程器的使用方法: libreboot 目前记录了这些 SPI 编程器的使用方法:
@ -20,7 +20,7 @@ libreboot 目前记录了这些 SPI 编程器的使用方法:
大部分支持 libreboot 机器,都需要在第一次刷写的时候,借助这里的教程或是类似教程,对其进行外部再刷写。不过,目前支持的所有机器,你都可以在 libreboot 运行时,对其进行内部再刷写。 大部分支持 libreboot 机器,都需要在第一次刷写的时候,借助这里的教程或是类似教程,对其进行外部再刷写。不过,目前支持的所有机器,你都可以在 libreboot 运行时,对其进行内部再刷写。
*内部*刷写是指,主机上的 CPU 可以使用板载 SPI 编程器(每个主板都有)对 SPI flash 进行再编程。这可以在 Linux 上使用 flashrom 做到。 *内部*刷写是指,主机上的 CPU 可以使用板载 SPI 编程器(每个主板都有)对 SPI flash 进行再编程。这可以在 Linux 上使用 flashprog 做到。
你在读的*这个*教程,使用的是*外部*编程器。之所以叫*外部*,是因为用的不是主板上的*内部*编程器。 你在读的*这个*教程,使用的是*外部*编程器。之所以叫*外部*,是因为用的不是主板上的*内部*编程器。
@ -85,7 +85,7 @@ will appear:
Take note of the ttyACMx. Flashrom is now usable Take note of the ttyACMx. Flashrom is now usable
(substitute ttyACMx with what you observed earlier). (substitute ttyACMx with what you observed earlier).
flashrom -p serprog:dev=/dev/ttyACMx,spispeed=16M flashprog -p serprog:dev=/dev/ttyACMx,spispeed=16M
spispeed=32M usually works, but since it's not much faster it's probably spispeed=32M usually works, but since it's not much faster it's probably
not worth it. The 12Mbps USB port is limiting the actual speed here. not worth it. The 12Mbps USB port is limiting the actual speed here.
@ -173,7 +173,7 @@ DIP8
BeagleBone BlackBBB BeagleBone BlackBBB
---------------------- ----------------------
SSH 连接到你的 BeagleBone Black。假定你在 BBB 上用的是 Debian 9。你将在 BBB 上运行 `flashrom`。 SSH 连接到你的 BeagleBone Black。假定你在 BBB 上用的是 Debian 9。你将在 BBB 上运行 `flashprog`。
注意:该部分已过时,因为它是写给 BBB 上运行的 Debian 9 的。 注意:该部分已过时,因为它是写给 BBB 上运行的 Debian 9 的。
@ -212,9 +212,9 @@ RemainAfterExit=yes
WantedBy=multi-user.target WantedBy=multi-user.target
``` ```
现在测试 flashrom 现在测试 flashprog
./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 ./flashprog -p linux_spi:dev=/dev/spidev1.0,spispeed=512
重要的一点是,要使用 `spispeed=512` 或者更低的速度,例如 256 或 128否则 BBB 会十分不稳定。 重要的一点是,要使用 `spispeed=512` 或者更低的速度,例如 256 或 128否则 BBB 会十分不稳定。
@ -223,7 +223,7 @@ WantedBy=multi-user.target
``` ```
Calibrating delay loop... OK. Calibrating delay loop... OK.
No EEPROM/flash device found. No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically. Note: flashprog can never write if the flash chip isn't found automatically.
``` ```
这表示正常工作了(夹子没连接任何 flash 芯片,所以出错是正常的)。 这表示正常工作了(夹子没连接任何 flash 芯片,所以出错是正常的)。
@ -238,7 +238,7 @@ BBB 注意事项
Rasberry PiRPi Rasberry PiRPi
----------------- -----------------
SSH 连接到树莓派。你将在树莓派上运行 `flashrom`。 SSH 连接到树莓派。你将在树莓派上运行 `flashprog`。
你必须在树莓派上配置 `spidev`。这是 Linux 内核的一个特别驱动;它严谨的名字叫做 `spi-bcm2835` 你必须在树莓派上配置 `spidev`。这是 Linux 内核的一个特别驱动;它严谨的名字叫做 `spi-bcm2835`
@ -256,7 +256,7 @@ SSH 连接到树莓派。你将在树莓派上运行 `flashrom`。
RPi 驱动强度Drive Strength RPi 驱动强度Drive Strength
------------------ ------------------
RPi 的 flashrom 可能无法检测到一些系统的 SPI flash即使你已经完美地连好了线并夹住了芯片。这可能是因为树莓派 GPIO 的驱动强度,它默认是 8mA。驱动强度本质上就是在保持高电平最低电压的同时引脚最高能输出的电流。对树莓派而言这个电压是 3.0 V。 RPi 的 flashprog 可能无法检测到一些系统的 SPI flash即使你已经完美地连好了线并夹住了芯片。这可能是因为树莓派 GPIO 的驱动强度,它默认是 8mA。驱动强度本质上就是在保持高电平最低电压的同时引脚最高能输出的电流。对树莓派而言这个电压是 3.0 V。
类似地也要满足一个最低电压SPI flash 芯片才会把它当成高逻辑电平。这个值一般是 SPI flash 的 0.7*VCC对 3.3V 的芯片而言也就是 2.31V。如果驱动强度太低了,那 flash 芯片的引脚处的电压可能会低于最低电压,导致它被视为发送了低逻辑电平,而不是高逻辑电平。 类似地也要满足一个最低电压SPI flash 芯片才会把它当成高逻辑电平。这个值一般是 SPI flash 的 0.7*VCC对 3.3V 的芯片而言也就是 2.31V。如果驱动强度太低了,那 flash 芯片的引脚处的电压可能会低于最低电压,导致它被视为发送了低逻辑电平,而不是高逻辑电平。
@ -309,33 +309,33 @@ RPi 的自由固件
<https://librerpi.github.io/> <https://librerpi.github.io/>
安装 flashrom 安装 flashprog
---------------- ----------------
如果你在使用 BBB 或者 RPi你需要在 SSH 进去之后再这么做。 如果你在使用 BBB 或者 RPi你需要在 SSH 进去之后再这么做。
Flashrom 是用来读出、擦除、重写 NOR flash 内容的软件。 Flashrom 是用来读出、擦除、重写 NOR flash 内容的软件。
使用 Git 仓库中的 libreboot 构建系统,你可以下载并安装 flashrom。首先下载 [lbmk Git 仓库](https://codeberg.org/libreboot/lbmk),然后执行: 使用 Git 仓库中的 libreboot 构建系统,你可以下载并安装 flashprog。首先下载 [lbmk Git 仓库](https://codeberg.org/libreboot/lbmk),然后执行:
cd lbmk cd lbmk
sudo ./build dependencies ubuntu2004 sudo ./build dependencies ubuntu2004
注意:你可以输入 debian、arch 或 void 来替换 ubuntu。debian 脚本也可以用于新版 ubuntu。 注意:你可以输入 debian、arch 或 void 来替换 ubuntu。debian 脚本也可以用于新版 ubuntu。
./update trees -b flashrom ./update trees -b flashprog
如果 `ubuntu2004` 报告了依赖缺失,编辑一下这个脚本,把缺失的依赖移除就行了。脚本位于 `config/dependencies/ubuntu2004`,它是写给 Ubuntu 20.04 的,但在其他使用 `apt-get` 包管理器的 Linux 发行版应该也能用。 如果 `ubuntu2004` 报告了依赖缺失,编辑一下这个脚本,把缺失的依赖移除就行了。脚本位于 `config/dependencies/ubuntu2004`,它是写给 Ubuntu 20.04 的,但在其他使用 `apt-get` 包管理器的 Linux 发行版应该也能用。
接下来,会出现一个 `flashrom/` 目录,其中有一个 `flashrom` 可执行文件。如果你在运行上面的依赖命令的时候,出现了缺失包的错误,则修改 `config/dependencies/ubuntu2004`。那个脚本会在 apt-get 中下载并安装构建依赖,它是为运行 Ubuntu 的 x86-64 系统写的,但在树莓派上的 Raspbian 应该能用。 接下来,会出现一个 `flashprog/` 目录,其中有一个 `flashprog` 可执行文件。如果你在运行上面的依赖命令的时候,出现了缺失包的错误,则修改 `config/dependencies/ubuntu2004`。那个脚本会在 apt-get 中下载并安装构建依赖,它是为运行 Ubuntu 的 x86-64 系统写的,但在树莓派上的 Raspbian 应该能用。
或者,你可以直接从上游下载 flashrom位于<https://flashrom.org/Flashrom> 或者,你可以直接从上游下载 flashprog位于<https://flashprog.org/Flashrom>
如果你是在 ThinkPad X200 上刷写 Macronix flash 芯片,则要使用一个 flashrom 的特别修改版,下载地址在这里:<https://vimuser.org/hackrom.tar.xz> —— 其中有修改版的源代码,也有可以直接运行的二进制文件。将 `--workaround-mx` 参数传给 flashrom。这会缓解稳定性问题。 如果你是在 ThinkPad X200 上刷写 Macronix flash 芯片,则要使用一个 flashprog 的特别修改版,下载地址在这里:<https://vimuser.org/hackrom.tar.xz> —— 其中有修改版的源代码,也有可以直接运行的二进制文件。将 `--workaround-mx` 参数传给 flashprog。这会缓解稳定性问题。
如果你直接下载了 flashrom 源代码,你可以进入目录并直接运行 `make`。在 libreboot 构建系统中,`config/dependencies/` 处的脚本写明了构建依赖,你可以直接使用 `apt-get` 软件安装。 如果你直接下载了 flashprog 源代码,你可以进入目录并直接运行 `make`。在 libreboot 构建系统中,`config/dependencies/` 处的脚本写明了构建依赖,你可以直接使用 `apt-get` 软件安装。
如何使用 flashrom 如何使用 flashprog
=================== ===================
请先阅读本页更下方的部分,了解特定的芯片类型及其接线方法。 请先阅读本页更下方的部分,了解特定的芯片类型及其接线方法。
@ -347,11 +347,11 @@ Flashrom 是用来读出、擦除、重写 NOR flash 内容的软件。
树莓派正确接线后,运行这个命令来查看是否检测到 25xx flash 树莓派正确接线后,运行这个命令来查看是否检测到 25xx flash
sudo ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=32768 sudo ./flashprog -p linux_spi:dev=/dev/spidev0.0,spispeed=32768
对 BBB 而言,必须使用更慢的速度及不同的设备路径: 对 BBB 而言,必须使用更慢的速度及不同的设备路径:
sudo ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 sudo ./flashprog -p linux_spi:dev=/dev/spidev1.0,spispeed=512
在 BBB 上,绝对不要使用高于 `spispeed=512` 的速度。有时候,你可能还要低到 `spispeed=128` 的速度。BBB 对 SPI 刷写而言非常不稳定、不可靠。在读取的时候,要多次读出,并检查它们的 checksum 是否一致,然后再刷。你可能需要多次刷写芯片! 在 BBB 上,绝对不要使用高于 `spispeed=512` 的速度。有时候,你可能还要低到 `spispeed=128` 的速度。BBB 对 SPI 刷写而言非常不稳定、不可靠。在读取的时候,要多次读出,并检查它们的 checksum 是否一致,然后再刷。你可能需要多次刷写芯片!
@ -361,11 +361,11 @@ Flashrom 是用来读出、擦除、重写 NOR flash 内容的软件。
在 RPi 上,这样读出: 在 RPi 上,这样读出:
sudo ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=32768 -r dump.bin sudo ./flashprog -p linux_spi:dev=/dev/spidev0.0,spispeed=32768 -r dump.bin
BBB 的话,这样: BBB 的话,这样:
sudo ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r dump.bin sudo ./flashprog -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -r dump.bin
建议读出*两次*,比如弄一个 `dump2.bin`,然后检查 sha1sum 建议读出*两次*,比如弄一个 `dump2.bin`,然后检查 sha1sum
@ -386,11 +386,11 @@ BBB 的话,这样:
接下来运行这个命令RPi 接下来运行这个命令RPi
sudo ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=32768 -w /path/to/libreboot.rom sudo ./flashprog -p linux_spi:dev=/dev/spidev0.0,spispeed=32768 -w /path/to/libreboot.rom
如果用的是 BBB 如果用的是 BBB
sudo ./flashrom -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -w /path/to/libreboot.rom sudo ./flashprog -p linux_spi:dev=/dev/spidev1.0,spispeed=512 -w /path/to/libreboot.rom
用 BBB 的时候,可能得使用低于 512 的速度。你也许还得多次重复刷写,才能完全工作。 用 BBB 的时候,可能得使用低于 512 的速度。你也许还得多次重复刷写,才能完全工作。

View File

@ -3,6 +3,9 @@ title: Generic SPI Flashing Guide
x-toc-enable: true x-toc-enable: true
... ...
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
@ -83,24 +86,24 @@ sudo ldto merge spicc spicc-spidev
Using Flashrom Using Flashrom
============== ==============
Most linux distros will provide flashrom in their default repositories. Most linux distros will provide flashprog in their default repositories.
You can also download flashrom in binary form with [libreboot utils.](https://libreboot.org/download.html#https) You can also download flashprog in binary form with [libreboot utils.](https://libreboot.org/download.html#https)
Here is an example using raspbian: Here is an example using raspbian:
``` ```
sudo apt update sudo apt update
sudo apt install flashrom sudo apt install flashprog
``` ```
Reading/writing from SPI works respectively as such: Reading/writing from SPI works respectively as such:
``` ```
sudo ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=32768 -r /path/to/read.bin sudo ./flashprog -p linux_spi:dev=/dev/spidev0.0,spispeed=32768 -r /path/to/read.bin
sudo ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=32768 -w /path/to/libreboot.rom sudo ./flashprog -p linux_spi:dev=/dev/spidev0.0,spispeed=32768 -w /path/to/libreboot.rom
``` ```
Note that `spispeed` varies based on the board in question. Note that `spispeed` varies based on the board in question.
A standard lower limit is *512.* A standard lower limit is *512.*
For example, to read on a board with a lower SPI speed, you may try: For example, to read on a board with a lower SPI speed, you may try:
sudo ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -r /path/to/read.bin sudo ./flashprog -p linux_spi:dev=/dev/spidev0.0,spispeed=512 -r /path/to/read.bin

View File

@ -3,6 +3,9 @@ title: Flashing the ThinkPad T400 externally
x-toc-enable: true x-toc-enable: true
... ...
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
Dell Latitude E6400 Dell Latitude E6400
=================== ===================
@ -77,7 +80,7 @@ Flash chip size {#flashchips}
Use this to find out: Use this to find out:
flashrom -p internal flashprog -p internal
MAC address {#macaddress} MAC address {#macaddress}
=========== ===========

View File

@ -3,6 +3,9 @@ title: ThinkPad T440p external flashing
x-toc-enable: true x-toc-enable: true
... ...
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
@ -65,7 +68,7 @@ external flashing.
dd if=libreboot.rom of=bottom.rom bs=1M count=8 dd if=libreboot.rom of=bottom.rom bs=1M count=8
Flash the top chip with top.rom, and tho bottom chip with bottom.rom. Flash the top chip with top.rom, and tho bottom chip with bottom.rom.
Don't worry about knowing which chip is which on a standard setup; flashrom will let you know if the Don't worry about knowing which chip is which on a standard setup; flashprog will let you know if the
image size is incorrect for the chip you're flashing. image size is incorrect for the chip you're flashing.

View File

@ -3,6 +3,9 @@ title: ThinkPad T500 external flashing
x-toc-enable: true x-toc-enable: true
... ...
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
**If you haven't bought a T500 yet: the [Dell Latitude **If you haven't bought a T500 yet: the [Dell Latitude
E6400](../../news/e6400.md) is much easier to flash; no disassembly required, E6400](../../news/e6400.md) is much easier to flash; no disassembly required,
it can be flashed entirely in software from Dell BIOS to Libreboot. It is the it can be flashed entirely in software from Dell BIOS to Libreboot. It is the
@ -73,7 +76,7 @@ Flash chip size {#flashchips}
Use this to find out: Use this to find out:
flashrom -p internal flashprog -p internal
MAC address {#macaddress} MAC address {#macaddress}
=========== ===========

View File

@ -3,6 +3,9 @@ title: ThinkPad T60 Recovery guide
x-toc-enable: true x-toc-enable: true
... ...
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
This section documents how to recover from a bad flash that prevents This section documents how to recover from a bad flash that prevents
your ThinkPad T60 from booting. your ThinkPad T60 from booting.
@ -160,16 +163,16 @@ which all draw a lot of current, more than your flasher can provide.
Example command: Example command:
sudo ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=4096 -w libreboot.rom -V sudo ./flashprog -p linux_spi:dev=/dev/spidev0.0,spispeed=4096 -w libreboot.rom -V
If flashrom complains about multiple flash chips detected, just pass the `-c` If flashprog complains about multiple flash chips detected, just pass the `-c`
option as it suggests, and pick any of the chips it lists. `spispeed=4096` or option as it suggests, and pick any of the chips it lists. `spispeed=4096` or
lower (e.g. `spispeed=512`) is recommended on this board. The flashing becomes lower (e.g. `spispeed=512`) is recommended on this board. The flashing becomes
unstable, on this machine, when you use higher speeds. unstable, on this machine, when you use higher speeds.
Reverse the steps to re-assemble your system, after you've flashed the chip. Reverse the steps to re-assemble your system, after you've flashed the chip.
It should be `Verifying flash... VERIFIED` at the end. If flashrom It should be `Verifying flash... VERIFIED` at the end. If flashprog
complains about multiple flash chip definitions detected, then choose complains about multiple flash chip definitions detected, then choose
one of them following the instructions in the output. one of them following the instructions in the output.

View File

@ -3,6 +3,9 @@ title: First-time ThinkPad X200 flashing
x-toc-enable: true x-toc-enable: true
... ...
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
**If you haven't bought an X200 yet: the [Dell Latitude **If you haven't bought an X200 yet: the [Dell Latitude
E6400](../../news/e6400.md) is much easier to flash; no disassembly required, E6400](../../news/e6400.md) is much easier to flash; no disassembly required,
it can be flashed entirely in software from Dell BIOS to Libreboot. It is the it can be flashed entirely in software from Dell BIOS to Libreboot. It is the
@ -25,7 +28,7 @@ Flash chip size
Run this command on x200 to find out flash chip model and its size: Run this command on x200 to find out flash chip model and its size:
flashrom -p internal flashprog -p internal
MAC address MAC address
=========== ===========
@ -106,7 +109,7 @@ Look just above the 7 in TP37 (that's GPIO33):
![](https://av.libreboot.org/x200/gpio33_location.jpg) ![](https://av.libreboot.org/x200/gpio33_location.jpg)
By default we would see this in lenovobios, when trying flashrom -p By default we would see this in lenovobios, when trying flashprog -p
internal -w rom.rom: internal -w rom.rom:
``` ```
@ -147,7 +150,7 @@ that does the flashing; Lenovo BIOS then probably sees that and runs that, inste
of setting PRx and going for normal boot. It is theoretically possible that we of setting PRx and going for normal boot. It is theoretically possible that we
could discover how this works, by debugging the Lenovo BIOS update utility (in could discover how this works, by debugging the Lenovo BIOS update utility (in
Windows), and then replicate what it is doing, with some tool for Linux, Windows), and then replicate what it is doing, with some tool for Linux,
then load a flashrom binary into memory and the ROM to flash (for the BIOS then load a flashprog binary into memory and the ROM to flash (for the BIOS
region). You would do this with GPIO33 grounded, and the payload program would region). You would do this with GPIO33 grounded, and the payload program would
actually flash the entire chip, with just a normal libreboot image. actually flash the entire chip, with just a normal libreboot image.

View File

@ -3,6 +3,9 @@ title: Прошивка ThinkPad X200 вперше
x-toc-enable: true x-toc-enable: true
... ...
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
**If you haven't bought an X200 yet: the [Dell Latitude **If you haven't bought an X200 yet: the [Dell Latitude
E6400](../../news/e6400.md) is much easier to flash; no disassembly required, E6400](../../news/e6400.md) is much easier to flash; no disassembly required,
it can be flashed entirely in software from Dell BIOS to Libreboot. It is the it can be flashed entirely in software from Dell BIOS to Libreboot. It is the
@ -25,7 +28,7 @@ same hardware generation (GM45), with same CPUs, video processor, etc.**
Виконайте цю команду на x200, щоб дізнатися модель флеш-чіпа та його розмір: Виконайте цю команду на x200, щоб дізнатися модель флеш-чіпа та його розмір:
flashrom -p internal flashprog -p internal
MAC адреса MAC адреса
=========== ===========
@ -106,7 +109,7 @@ sgsit дізнався про контакт під назвою GPIO33, яки
![](https://av.libreboot.org/x200/gpio33_location.jpg) ![](https://av.libreboot.org/x200/gpio33_location.jpg)
Це замовчуванням ми побачимо це в lenovobios, під час спроби flashrom -p Це замовчуванням ми побачимо це в lenovobios, під час спроби flashprog -p
internal -w rom.rom: internal -w rom.rom:
FREG0: Warning: Flash Descriptor region (0x00000000-0x00000fff) is read-only. FREG0: Warning: Flash Descriptor region (0x00000000-0x00000fff) is read-only.
@ -141,7 +144,7 @@ internal -w rom.rom:
встановлення PRx і переходу до нормального завантаження. Теоретично можливо, що ми встановлення PRx і переходу до нормального завантаження. Теоретично можливо, що ми
зможемо дізнатися, як це працює, налагодивши утиліту оновлення BIOS Lenovo (у зможемо дізнатися, як це працює, налагодивши утиліту оновлення BIOS Lenovo (у
Windows), а потім відтворивши її дії за допомогою якогось інструменту для Linux, Windows), а потім відтворивши її дії за допомогою якогось інструменту для Linux,
а потім завантаживши двійковий файл flashrom в пам'ять та ROM для прошивки (для BIOS а потім завантаживши двійковий файл flashprog в пам'ять та ROM для прошивки (для BIOS
регіона). Ви б зробили це з заземленням GPIO33, і програма корисного навантаження регіона). Ви б зробили це з заземленням GPIO33, і програма корисного навантаження
фактично прошиє весь чіп, лише звичайним образом libreboot. фактично прошиє весь чіп, лише звичайним образом libreboot.

View File

@ -3,6 +3,9 @@ title: ThinkPad X230/X230T external flashing
x-toc-enable: true x-toc-enable: true
... ...
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md),
OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
@ -58,7 +61,7 @@ external flashing.
dd if=libreboot.rom of=bottom.rom bs=1M count=8 dd if=libreboot.rom of=bottom.rom bs=1M count=8
Flash the top chip with top.rom, and tho bottom chip with bottom.rom. Flash the top chip with top.rom, and tho bottom chip with bottom.rom.
Don't worry about knowing which chip is which on a standard setup; flashrom will let you know if the Don't worry about knowing which chip is which on a standard setup; flashprog will let you know if the
image size is incorrect for the chip you're flashing. image size is incorrect for the chip you're flashing.

View File

@ -3,6 +3,9 @@ title: Modifying grub.cfg in CBFS
x-toc-enable: true x-toc-enable: true
... ...
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
Before you follow this guide, it is advisable that you have the ability to Before you follow this guide, it is advisable that you have the ability to
flash externally, just in case something goes wrong. flash externally, just in case something goes wrong.
@ -27,7 +30,7 @@ a *soft brick* where your machine is effectively useless and, in that scenario,
may or may not require external flashing equipment for restoring the machine to may or may not require external flashing equipment for restoring the machine to
a known state. a known state.
Compile flashrom and cbfstool Compile flashprog and cbfstool
============================= =============================
libreboot does not currently distribute utilities pre-compiled. It only libreboot does not currently distribute utilities pre-compiled. It only
@ -75,34 +78,34 @@ The `cbfstool` utility is what you shall use. It is used to manipulate CBFS
(coreboot file system) which is a file system contained within the coreboot (coreboot file system) which is a file system contained within the coreboot
ROM image; as a *coreboot distribution*, libreboot inherits this technology. ROM image; as a *coreboot distribution*, libreboot inherits this technology.
You will also want to build `flashrom` which libreboot recommends for reading You will also want to build `flashprog` which libreboot recommends for reading
from and/or writing to the boot flash. In the libreboot build system, you can from and/or writing to the boot flash. In the libreboot build system, you can
build it by running this command: build it by running this command:
./update trees -b flashrom ./update trees -b flashprog
An executable will be available at `src/flashrom/flashrom` after you have done An executable will be available at `src/flashprog/flashprog` after you have done
this. this.
Dump the boot flash Dump the boot flash
=================== ===================
If you wish to modify your *existing* libreboot ROM, which was installed on If you wish to modify your *existing* libreboot ROM, which was installed on
your computer, you can use `flashrom` to acquire it. your computer, you can use `flashprog` to acquire it.
Simply run the following, after using libreboot's build system to compile Simply run the following, after using libreboot's build system to compile
flashrom: flashprog:
sudo ./src/flashrom/flashrom -p internal -r dump.bin sudo ./src/flashprog/flashprog -p internal -r dump.bin
If flashrom complains about multiple flash chip definitions, do what it says to If flashprog complains about multiple flash chip definitions, do what it says to
rectify your command and run it again. rectify your command and run it again.
You may want to use the following, instead of `-p internal`: You may want to use the following, instead of `-p internal`:
`-p internal:laptop=force_I_want_a_brick,boardmismatch=force` `-p internal:laptop=force_I_want_a_brick,boardmismatch=force`
Do not let the word *brick* fools you. This merely disables the safety checks Do not let the word *brick* fools you. This merely disables the safety checks
in flashrom, which is sometimes necessary depending on what ROM was already in flashprog, which is sometimes necessary depending on what ROM was already
flashed, versus the new ROM image. flashed, versus the new ROM image.
The `internal` option assumes that internal read/write is possible; this is The `internal` option assumes that internal read/write is possible; this is
@ -195,17 +198,17 @@ Flash the modified ROM image
Your modified `dump.bin` or other modified libreboot ROM can then be re-flashed Your modified `dump.bin` or other modified libreboot ROM can then be re-flashed
using: using:
sudo ./flashrom -p internal -w dump.bin sudo ./flashprog -p internal -w dump.bin
If a `-c` option is required, use it and specify a flash chip name. This is If a `-c` option is required, use it and specify a flash chip name. This is
only useful when `flashrom` complains about multiple flash chips being only useful when `flashprog` complains about multiple flash chips being
detected. detected.
If flashrom complains about wrong chip/board, make sure that your ROM is for If flashprog complains about wrong chip/board, make sure that your ROM is for
the correct system. If you're sure, you can disable the safety checks by running the correct system. If you're sure, you can disable the safety checks by running
this instead: this instead:
sudo ./flashrom -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w dump.bin sudo ./flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w dump.bin
If you need to use external flashing equipment, see the link above to the If you need to use external flashing equipment, see the link above to the
Raspberry Pi page. Raspberry Pi page.

View File

@ -3,6 +3,9 @@ title: lbmk maintenance manual
x-toc-enable: true x-toc-enable: true
... ...
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
In addition to this manual, you should also refer to [porting.md](porting.md) In addition to this manual, you should also refer to [porting.md](porting.md)
and [testing.md](testing.md). and [testing.md](testing.md).
@ -222,12 +225,12 @@ This may be less efficient on disk usage, but it simplifies the logic greatly.
Coreboot also uses its own toolchain called *crossgcc*, and crossgcc is in fact Coreboot also uses its own toolchain called *crossgcc*, and crossgcc is in fact
compiled *per tree* in Libreboot. compiled *per tree* in Libreboot.
src/flashrom/ src/flashprog/
--------------- ---------------
Please also visit: <https://flashrom.org/> Please also visit: <https://flashprog.org/>
Although currently unused by any part of lbmk, we provide flashrom for the Although currently unused by any part of lbmk, we provide flashprog for the
convenience of users, and this is copied to release archives. Flashrom is the convenience of users, and this is copied to release archives. Flashrom is the
program that you will use to read, erase and write the flash, containing program that you will use to read, erase and write the flash, containing
coreboot firmware. coreboot firmware.

View File

@ -2,6 +2,9 @@
title: Porting guide for new mainboards title: Porting guide for new mainboards
... ...
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
NOTE: This page is largely Intel-centric, at present. It should be revised to NOTE: This page is largely Intel-centric, at present. It should be revised to
cover more vendors. [Patches welcome!](../../git.md) cover more vendors. [Patches welcome!](../../git.md)
@ -93,7 +96,7 @@ Wrong CBFS and or ROM size
Different boards have different flash chip setups. Different boards have different flash chip setups.
Generally, you have one or two flash chips with a combined size of 4-16MB. Generally, you have one or two flash chips with a combined size of 4-16MB.
Thankfully, flashrom will let you know the size of the flash chip you're flashing. Thankfully, flashprog will let you know the size of the flash chip you're flashing.
For example: when flashing an X230, you'll see that one chip is 8192, and the other is 4096. For example: when flashing an X230, you'll see that one chip is 8192, and the other is 4096.
The total rom size should therefore be set as 12MB. The total rom size should therefore be set as 12MB.

View File

@ -2,6 +2,9 @@
title: Керівництво перенесення title: Керівництво перенесення
... ...
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
Це керівнитво передбачається для тих, хто має дуже низький рівень знань про прошивку Це керівнитво передбачається для тих, хто має дуже низький рівень знань про прошивку
загалом та coreboot окремо. загалом та coreboot окремо.
Більшість плат в coreboot може бути доволі легко перенесена в libreboot. Більшість плат в coreboot може бути доволі легко перенесена в libreboot.
@ -90,7 +93,7 @@ libreboot як `плата.`
Різні плати мають різні налаштування чіпів флеш-пам'яті. Різні плати мають різні налаштування чіпів флеш-пам'яті.
Загалом, ви маєте один або два флеш-пам'яті з сумарним розміром в 4-16Мбайт. Загалом, ви маєте один або два флеш-пам'яті з сумарним розміром в 4-16Мбайт.
На щастя, flashrom дасть вам знати розмір флеш-чіпа, який ви прошиваєте. На щастя, flashprog дасть вам знати розмір флеш-чіпа, який ви прошиваєте.
Наприклад: коли прошиваєте X230, ви побачите, що один чіп 8192, та інший 4096. Наприклад: коли прошиваєте X230, ви побачите, що один чіп 8192, та інший 4096.
Сумарний розмір rom тоді має бути встановлено на 12Мбайт. Сумарний розмір rom тоді має бути встановлено на 12Мбайт.

View File

@ -202,4 +202,4 @@ images for which the regular Libreboot source code archives suffice. These newer
releases instead automate the installation of build dependencies, with instructions releases instead automate the installation of build dependencies, with instructions
in the documentation for building various utilities from source. in the documentation for building various utilities from source.
These executables are utilities such as `flashrom`. These executables are utilities such as `flashprog`.

View File

@ -202,4 +202,4 @@ Libreboot включає статично зв'язані виконувані
випуски натомість автоматизують встановлення залежностей побудови, з інструкцієї випуски натомість автоматизують встановлення залежностей побудови, з інструкцієї
в документації для побудови різних утиліт з джерельного коду. в документації для побудови різних утиліт з джерельного коду.
Ці виконувані файли є утилітами, подібними `flashrom`. Ці виконувані файли є утилітами, подібними `flashprog`.

View File

@ -3,6 +3,9 @@ title: Frequently Asked Questions
x-toc-enable: true x-toc-enable: true
... ...
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
AKA Frequently Questioned Answers AKA Frequently Questioned Answers
Important issues Important issues
@ -60,15 +63,15 @@ if you are interested in testing roms before they are released.
Flashrom complains about DEVMEM access Flashrom complains about DEVMEM access
-------------------------------------- --------------------------------------
If running `flashrom -p internal` for software based flashing, and If running `flashprog -p internal` for software based flashing, and
you get an error related to /dev/mem access, you should reboot with you get an error related to /dev/mem access, you should reboot with
`iomem=relaxed` kernel parameter before running flashrom, or use a kernel `iomem=relaxed` kernel parameter before running flashprog, or use a kernel
that has `CONFIG_STRICT_DEVMEM` and `CONFIG_IO_STRICT_DEVMEM` not enabled. that has `CONFIG_STRICT_DEVMEM` and `CONFIG_IO_STRICT_DEVMEM` not enabled.
Example flashrom output with both `CONFIG_STRICT_DEVMEM` and `CONFIG_IO_STRICT_DEVMEM` enabled: Example flashprog output with both `CONFIG_STRICT_DEVMEM` and `CONFIG_IO_STRICT_DEVMEM` enabled:
``` ```
flashrom v0.9.9-r1955 on Linux 4.11.9-1-ARCH (x86_64) flashprog v0.9.9-r1955 on Linux 4.11.9-1-ARCH (x86_64)
flashrom is free software, get the source code at https://flashrom.org flashprog is free software, get the source code at https://flashprog.org
Calibrating delay loop... OK. Calibrating delay loop... OK.
Error accessing high tables, 0x100000 bytes at 0x000000007fb5d000 Error accessing high tables, 0x100000 bytes at 0x000000007fb5d000
@ -626,7 +629,7 @@ simply use dd(1) to extract only the non-padded portion. Continuing with the
examples above, in order to extract a 2MiB x86 descriptorless ROM from a examples above, in order to extract a 2MiB x86 descriptorless ROM from a
padded 16MiB image do the following: padded 16MiB image do the following:
dd if=flashromread.rom of=yourrom.rom ibs=14MiB skip=1 dd if=flashprogread.rom of=yourrom.rom ibs=14MiB skip=1
With padding removed cbfstool will be able to operate on the image as usual. With padding removed cbfstool will be able to operate on the image as usual.

View File

@ -3,6 +3,9 @@ title: Часті питання
x-toc-enable: true x-toc-enable: true
... ...
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
Також відомо як Відповіді на часті питання Також відомо як Відповіді на часті питання
Важливі питання Важливі питання
@ -46,15 +49,15 @@ Libreboot](freedom-status.uk.md)
Flashrom скаржиться на доступ DEVMEM Flashrom скаржиться на доступ DEVMEM
-------------------------------------- --------------------------------------
Якщо запущено `flashrom -p internal` для програмної перепрошивки та Якщо запущено `flashprog -p internal` для програмної перепрошивки та
ви отримуєте помилку, пов'язану з доступом до /dev/mem, вам слід перезавантажити систему з ви отримуєте помилку, пов'язану з доступом до /dev/mem, вам слід перезавантажити систему з
параметром ядра `iomem=relaxed` перед виконанням flashrom, або використовуйте ядро, параметром ядра `iomem=relaxed` перед виконанням flashprog, або використовуйте ядро,
для якого не ввімкнено `CONFIG_STRICT_DEVMEM` та `CONFIG_IO_STRICT_DEVMEM`. для якого не ввімкнено `CONFIG_STRICT_DEVMEM` та `CONFIG_IO_STRICT_DEVMEM`.
Приклад виводу flashrom з обома `CONFIG_STRICT_DEVMEM` та `CONFIG_IO_STRICT_DEVMEM` ввімкненими: Приклад виводу flashprog з обома `CONFIG_STRICT_DEVMEM` та `CONFIG_IO_STRICT_DEVMEM` ввімкненими:
``` ```
flashrom v0.9.9-r1955 on Linux 4.11.9-1-ARCH (x86_64) flashprog v0.9.9-r1955 on Linux 4.11.9-1-ARCH (x86_64)
flashrom is free software, get the source code at https://flashrom.org flashprog is free software, get the source code at https://flashprog.org
Calibrating delay loop... OK. Calibrating delay loop... OK.
Error accessing high tables, 0x100000 bytes at 0x000000007fb5d000 Error accessing high tables, 0x100000 bytes at 0x000000007fb5d000
@ -648,7 +651,7 @@ ROM та флеш-чіпом. Випадок вище, наприклад:
наведені вище приклади, щоб видобути ROM без дескрипторів 2 МБ x86 із доповненого наведені вище приклади, щоб видобути ROM без дескрипторів 2 МБ x86 із доповненого
образа 16 МБ, виконайте наступне: образа 16 МБ, виконайте наступне:
dd if=flashromread.rom of=вашrom.rom ibs=14MiB skip=1 dd if=flashprogread.rom of=вашrom.rom ibs=14MiB skip=1
Після видалення заповнення cbfstool зможе працювати із образом як зазвичай. Після видалення заповнення cbfstool зможе працювати із образом як зазвичай.

View File

@ -2,6 +2,9 @@
% Leah Rowe % Leah Rowe
% 20 October 2023 % 20 October 2023
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
Introduction Introduction
============ ============
@ -348,12 +351,12 @@ The commits are, thus:
* c7e764a3 update/release: confirm vdir path on exit * c7e764a3 update/release: confirm vdir path on exit
* 1c8b2114 update/release: copy crossgcc to archive * 1c8b2114 update/release: copy crossgcc to archive
* 54a05fc1 always re-generate .git in lbmk * 54a05fc1 always re-generate .git in lbmk
* 52c9416b update flashrom revision * 52c9416b update flashprog revision
* af1c1e10 add backup git repo for flashrom * af1c1e10 add backup git repo for flashprog
* 18364822 Revert "config/git: don't download flashrom" * 18364822 Revert "config/git: don't download flashprog"
* ac442808 config/git: add more backup repos * ac442808 config/git: add more backup repos
* 75980052 git/config: don't use github on main repos * 75980052 git/config: don't use github on main repos
* bf4ea810 config/git: don't download flashrom * bf4ea810 config/git: don't download flashprog
* da3044e7 git/config stm32-vserprog: don't fetch libopencm3 * da3044e7 git/config stm32-vserprog: don't fetch libopencm3
* 782371a5 update/release: delete *all* .git and .gitmodules * 782371a5 update/release: delete *all* .git and .gitmodules
* 743a425c include/git: fix already-exists download message * 743a425c include/git: fix already-exists download message

View File

@ -2,6 +2,9 @@
% Leah Rowe % Leah Rowe
% 31 December 2023 % 31 December 2023
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
Introduction Introduction
============ ============
@ -79,7 +82,7 @@ And now, specific changes:
courtesy of Leah Rowe. courtesy of Leah Rowe.
* **NEW BOARD:** HP 8300 CMT mainboard, added by Riku Viitanen, who worked * **NEW BOARD:** HP 8300 CMT mainboard, added by Riku Viitanen, who worked
on it with a tester in the IRC channel. on it with a tester in the IRC channel.
* Fixed implicit typecasting bug on flashrom 1.2 source code, thus preventing * Fixed implicit typecasting bug on flashprog 1.2 source code, thus preventing
a build issue (tested on Debian 12.2). Patch courtesy of Leah Rowe. a build issue (tested on Debian 12.2). Patch courtesy of Leah Rowe.
* `script/build/roms`: Rename `check_target` to `configure_target` * `script/build/roms`: Rename `check_target` to `configure_target`
and `prepare_target` to `configure_dependencies`, for increased code clarity. and `prepare_target` to `configure_dependencies`, for increased code clarity.
@ -256,7 +259,7 @@ And now, specific changes:
script was making improper use of subshells, leading to a zero exit, when script was making improper use of subshells, leading to a zero exit, when
it should have exited with non-zero status in such situations. Patch/fix it should have exited with non-zero status in such situations. Patch/fix
courtesy of Leah Rowe. courtesy of Leah Rowe.
* Bumped flashrom revision back to version 1.2, because the 1.4 RC we were * Bumped flashprog revision back to version 1.2, because the 1.4 RC we were
importing has issues (also, Nico Huber's flashprog will probably be used importing has issues (also, Nico Huber's flashprog will probably be used
in future releases of Libreboot). Patch courtesy of Leah Rowe. in future releases of Libreboot). Patch courtesy of Leah Rowe.
* Debian dependencies config: Fixed the freetype dependency, as tested on * Debian dependencies config: Fixed the freetype dependency, as tested on
@ -313,7 +316,7 @@ Exact git log, relative to 20231106:
| * 74147ea4 Add HP 8300 CMT port | * 74147ea4 Add HP 8300 CMT port
|/ |/
* 0aca6332 lbmk scripts: shorter code lines * 0aca6332 lbmk scripts: shorter code lines
* 575332f2 fix flashrom build error (implicit enum typecast) * 575332f2 fix flashprog build error (implicit enum typecast)
* b4ab3057 lbmk scripts: general code cleanup * b4ab3057 lbmk scripts: general code cleanup
* 38a7aa31 build/roms: rename two functions for clarity * 38a7aa31 build/roms: rename two functions for clarity
* 746d9cad build: remove test command * 746d9cad build: remove test command
@ -417,7 +420,7 @@ Exact git log, relative to 20231106:
|\ |\
| * 50bfe1ca fix void dependencies typo | * 50bfe1ca fix void dependencies typo
|/ |/
* 4e00ac00 revert flashrom back to version 1.2 * 4e00ac00 revert flashprog back to version 1.2
* 83c8248f dependencies/debian: fix libfreetype-dev * 83c8248f dependencies/debian: fix libfreetype-dev
* 39aad578 grub: re-add fat/nt file system modules * 39aad578 grub: re-add fat/nt file system modules
* 47ef411e Bump GRUB revision to 8 November 2023 revision * 47ef411e Bump GRUB revision to 8 November 2023 revision

View File

@ -24,7 +24,7 @@ Revision (22nd June 2014 - extra)
Revision (22nd June 2014 - extra) Revision (22nd June 2014 - extra)
--------------------------------- ---------------------------------
- Documentation: Improved the instructions for using flashrom - Documentation: Improved the instructions for using flashprog
- Documentation: Improved the instructions for using cbfstool (to - Documentation: Improved the instructions for using cbfstool (to
change the default GRUB menu) change the default GRUB menu)
- Documentation: Numerous small fixes. - Documentation: Numerous small fixes.

View File

@ -59,8 +59,8 @@ Revisions for r20140711 (1st beta) (11th July 2014)
- Merged changes for digitizer (X60 Tablet) and IR (X60 and T60) based - Merged changes for digitizer (X60 Tablet) and IR (X60 and T60) based
on 5243/17, 5242/17 and 5239/19 from review.coreboot.org on 5243/17, 5242/17 and 5239/19 from review.coreboot.org
- (see ./resources/libreboot/patch/gitdiff and ./getcb) - (see ./resources/libreboot/patch/gitdiff and ./getcb)
- Documentation: added information about building flashrom using - Documentation: added information about building flashprog using
'builddeps-flashrom' script. 'builddeps-flashprog' script.
- Re-created resources/libreboot/config/x60config - Re-created resources/libreboot/config/x60config
- Re-created resources/libreboot/config/t60config - Re-created resources/libreboot/config/t60config
- Added 'x60tconfig' in resources/libreboot/config (because X60 - Added 'x60tconfig' in resources/libreboot/config (because X60
@ -81,7 +81,7 @@ Revisions for r20140711 (1st beta) (11th July 2014)
- Added 'getmt86' script for getting the memtest86+ version used, - Added 'getmt86' script for getting the memtest86+ version used,
and patching it. and patching it.
- Added 'getbucts' script for getting the bucts version used. - Added 'getbucts' script for getting the bucts version used.
- Added 'getflashrom' script for getting the flashrom version used, - Added 'getflashprog' script for getting the flashprog version used,
and patching it and patching it
- Added 'getall' script which runs all of the other 'get' scripts. - Added 'getall' script which runs all of the other 'get' scripts.
- Add instructions to the 'build' script to prepare - Add instructions to the 'build' script to prepare
@ -100,32 +100,32 @@ Revisions for r20140711 (1st beta) (11th July 2014)
libreboot\_src after running 'getall'. libreboot\_src after running 'getall'.
- Annotated the 'builddeb' script, to say what each set of - Annotated the 'builddeb' script, to say what each set of
dependencies are for. dependencies are for.
- Separated bucts/flashrom builddeb sections into separate scripts: - Separated bucts/flashprog builddeb sections into separate scripts:
builddeb-flashrom, builddeb-bucts. builddeb-flashprog, builddeb-bucts.
- Documentation: Updated relevant parts based on the above. - Documentation: Updated relevant parts based on the above.
- Added instructions to 'build' script for including builddeb-bucts - Added instructions to 'build' script for including builddeb-bucts
and builddeb-flashrom in libreboot\_bin and builddeb-flashprog in libreboot\_bin
- Updated flashrom checkout (r1822 2014-06-16) from SVN - Updated flashprog checkout (r1822 2014-06-16) from SVN
(http://flashrom.org/Downloads). (http://flashprog.org/Downloads).
- Updated flashing instructions in docs/ for new commands needed - Updated flashing instructions in docs/ for new commands needed
(Macronix chip on X60/T60) (Macronix chip on X60/T60)
- For X60/T60 (flashrom): Patched - For X60/T60 (flashprog): Patched
flashchips.c\_lenovobios\_macronix and flashchips.c\_lenovobios\_macronix and
flashchips.c\_lenovobios\_sst executables for SST/macronix flashchips.c\_lenovobios\_sst executables for SST/macronix
(included in resources/flashrom/patch) (included in resources/flashprog/patch)
- Updated builddeps to build flashrom\_lenovobios\_sst and - Updated builddeps to build flashprog\_lenovobios\_sst and
flashrom\_lenovobios\_macronix, for X60/T60 users with Lenovo flashprog\_lenovobios\_macronix, for X60/T60 users with Lenovo
BIOS BIOS
- moved the flashrom build instructions from 'builddeps' and put - moved the flashprog build instructions from 'builddeps' and put
them in 'builddeps-flashrom', excecuting that from them in 'builddeps-flashprog', excecuting that from
'builddeps'. 'builddeps'.
- Added builddeps-flashrom to libreboot\_bin.tar.gz - Added builddeps-flashprog to libreboot\_bin.tar.gz
- flashrom: added patched flashchips.c to resources/flashrom/patch - flashprog: added patched flashchips.c to resources/flashprog/patch
(automatically use correct macronix chip on libreboot, without using (automatically use correct macronix chip on libreboot, without using
'-c' switch) '-c' switch)
- removed 'MX25L1605' and 'MX25L1605A/MX25L1606E' entries in - removed 'MX25L1605' and 'MX25L1605A/MX25L1606E' entries in
flashchips.c for the patched version of flashchips.c flashchips.c for the patched version of flashchips.c
- added instructions to 'builddeps-flashrom' to automatically - added instructions to 'builddeps-flashprog' to automatically
use this modified flashchips.c in the default build use this modified flashchips.c in the default build
- Added builddeb to libreboot\_bin.tar.gz - Added builddeb to libreboot\_bin.tar.gz
- Moved 'bucts' build instructions from builddeps to builddeps-bucts - Moved 'bucts' build instructions from builddeps to builddeps-bucts
@ -139,15 +139,15 @@ Revisions for r20140711 (1st beta) (11th July 2014)
in libreboot\_bin in libreboot\_bin
- Documentation: Add tutorial for flashing while Lenovo BIOS is - Documentation: Add tutorial for flashing while Lenovo BIOS is
running (on X60/T60) running (on X60/T60)
- Added 'flash' script (make sure to run builddeps-flashrom first) - Added 'flash' script (make sure to run builddeps-flashprog first)
which (while libreboot is already running) can use flashrom to flash which (while libreboot is already running) can use flashprog to flash
a ROM a ROM
- eg: "sudo ./flash bin/x60/coreboot\_serial\_ukdvorak.rom" - eg: "sudo ./flash bin/x60/coreboot\_serial\_ukdvorak.rom"
equivalent to "sudo ./flashrom/flashrom -p internal -w equivalent to "sudo ./flashprog/flashprog -p internal -w
bin/x60/coreboot\_uk\_dvorak.rom" bin/x60/coreboot\_uk\_dvorak.rom"
- updated 'build' script to include the 'flash' script in - updated 'build' script to include the 'flash' script in
libreboot\_bin.tar.gz libreboot\_bin.tar.gz
- Documentation: replaced default flashrom tutorial to recommend the - Documentation: replaced default flashprog tutorial to recommend the
'flash' script instead. 'flash' script instead.
- Re-add cbfstool source code back into libreboot\_bin.tar.gz, as - Re-add cbfstool source code back into libreboot\_bin.tar.gz, as
cbfstool\_standalone cbfstool\_standalone
@ -208,7 +208,7 @@ Revisions for r20140711 (1st beta) (11th July 2014)
'builddeps-memtest86', link from 'builddeps' 'builddeps-memtest86', link from 'builddeps'
- Link to 'builddeps-memtest86' in final stage of 'getmt86' - Link to 'builddeps-memtest86' in final stage of 'getmt86'
- made 'build' script put resources/ directory in libreboot\_bin, to - made 'build' script put resources/ directory in libreboot\_bin, to
make builddeps-flashrom work in libreboot\_bin make builddeps-flashprog work in libreboot\_bin
- Removed instructions for building source code in the 'get' script - Removed instructions for building source code in the 'get' script
(they don't really belong there) (they don't really belong there)
- Added libfuse-dev and liblzma-dev to the list of GRUB dependencies - Added libfuse-dev and liblzma-dev to the list of GRUB dependencies

View File

@ -19,8 +19,8 @@ Revisions for r20140729 (4th beta) (29th July 2014)
- Removed .git and .gitignore from bucts directory - Removed .git and .gitignore from bucts directory
(libreboot\_src); not needed. Removing them reduces the size of (libreboot\_src); not needed. Removing them reduces the size of
the archive. bucts development should be upstream. the archive. bucts development should be upstream.
- Removed .svn from flashrom directory (libreboot\_src); not - Removed .svn from flashprog directory (libreboot\_src); not
needed. Removing it reduces the size of the archive. flashrom needed. Removing it reduces the size of the archive. flashprog
development should be upstream. development should be upstream.
- Added ROMs with Qwerty (Italian) layout in GRUB - Added ROMs with Qwerty (Italian) layout in GRUB
(libreboot\*itqwerty.rom) (libreboot\*itqwerty.rom)

View File

@ -6,7 +6,7 @@ Revisions for r20140903 (6th beta) (3rd September 2014)
------------------------------------------------------- -------------------------------------------------------
- Added modified builddeb\* scripts for Arch-based distros: - Added modified builddeb\* scripts for Arch-based distros:
buildpac, buildpac-flashrom, buildpac-bucts (courtesy of Noah buildpac, buildpac-flashprog, buildpac-bucts (courtesy of Noah
Vesely) Vesely)
- Documentation: added information showing how to enable or disable - Documentation: added information showing how to enable or disable
bluetooth on the X60 bluetooth on the X60
@ -54,7 +54,7 @@ Revisions for r20140903 (6th beta) (3rd September 2014)
- Updated GRUB to new version from August 14th, 2014. - Updated GRUB to new version from August 14th, 2014.
- Unified all grub configurations for all systems to a single grub.cfg - Unified all grub configurations for all systems to a single grub.cfg
under resources/grub/config/ under resources/grub/config/
- Updated flashrom to new version from August 20th, 2014 - Updated flashprog to new version from August 20th, 2014
- Added getseabios and builddeps-seabios (builddeps and getall were - Added getseabios and builddeps-seabios (builddeps and getall were
also updated) also updated)
- Added instructions to 'buildrom-withgrub' to include - Added instructions to 'buildrom-withgrub' to include
@ -99,15 +99,15 @@ Revisions for r20140903 (6th beta) (3rd September 2014)
gcry\_tiger gcry\_whirlpool~~ gcry\_tiger gcry\_whirlpool~~
- Added GNUtoo's list of GRUB modules (includes all of the gcry\_\* - Added GNUtoo's list of GRUB modules (includes all of the gcry\_\*
modules above), cryptomount should be working now. modules above), cryptomount should be working now.
- Removed builddeb-bucts and builddeb-flashrom, merged them with - Removed builddeb-bucts and builddeb-flashprog, merged them with
builddeb ( updated accordingly) builddeb ( updated accordingly)
- Removed buildpac-bucts and buildpac-flashrom, merged them with - Removed buildpac-bucts and buildpac-flashprog, merged them with
buildpac ( updated accordingly) buildpac ( updated accordingly)
- Documentation: removed all parts talking about build dependencies, - Documentation: removed all parts talking about build dependencies,
replaced them with links to \#build\_dependencies replaced them with links to \#build\_dependencies
- Documentation: emphasized more strongly on the documentation, the - Documentation: emphasized more strongly on the documentation, the
need to re-build bucts and/or flashrom before flashing a ROM image. need to re-build bucts and/or flashprog before flashing a ROM image.
- build-release: flashrom, nvramtool, cbfstool and bucts are no longer - build-release: flashprog, nvramtool, cbfstool and bucts are no longer
provided pre-compiled in binary archives, and are now in source form provided pre-compiled in binary archives, and are now in source form
only. (to maximize distro compatibility). only. (to maximize distro compatibility).
- 'build' script: replaced grub.elf assembly instructons, it is now - 'build' script: replaced grub.elf assembly instructons, it is now

View File

@ -46,7 +46,7 @@ Changes for this release (latest changes first, earliest changes last)
- grub.cfg: ISOLINUX parsing is now done on all USB partitions. - grub.cfg: ISOLINUX parsing is now done on all USB partitions.
- grub.cfg: Automatically switched to /boot/grub/libreboot\_grub.cfg - grub.cfg: Automatically switched to /boot/grub/libreboot\_grub.cfg
on a partition, if it exists. on a partition, if it exists.
- libreboot\_bin: added static ARM binaries for flashrom, cbfstool, - libreboot\_bin: added static ARM binaries for flashprog, cbfstool,
ich9gen and ich9deblob (tested on beaglebone black). ich9gen and ich9deblob (tested on beaglebone black).
- Flashrom: removed redundant Macronix flashchip definitions (for X200 - Flashrom: removed redundant Macronix flashchip definitions (for X200
owners). owners).
@ -66,8 +66,8 @@ Changes for this release (latest changes first, earliest changes last)
- buildrom-withgrub: disabled creation of \*txtmode\*.rom for X200 - buildrom-withgrub: disabled creation of \*txtmode\*.rom for X200
(only framebuffer graphics work) (only framebuffer graphics work)
- Updated SeaBIOS (again) - Updated SeaBIOS (again)
- docs/install/\#flashrom\_x200: improve instructions - docs/install/\#flashprog\_x200: improve instructions
- Updated flashrom (again) - patches updated - Updated flashprog (again) - patches updated
- Updated GRUB (again) - Updated GRUB (again)
- Updated coreboot (again) - Updated coreboot (again)
- build-release: not all files were copied to libreboot\_src. fix - build-release: not all files were copied to libreboot\_src. fix
@ -87,7 +87,7 @@ Changes for this release (latest changes first, earliest changes last)
- cleandeps: clean i945-pwm utility - cleandeps: clean i945-pwm utility
- scripts (all): fix typos - scripts (all): fix typos
- Documentation: general cleanup. - Documentation: general cleanup.
- builddeps-flashrom: reduce build commands to a single for loop - builddeps-flashprog: reduce build commands to a single for loop
- scripts (all): replace unnecessary rm -Rf with rm -f - scripts (all): replace unnecessary rm -Rf with rm -f
- docs/release.html: add lenovo g505s to the list of candidates - docs/release.html: add lenovo g505s to the list of candidates
- .gitignore: add libreboot\_bin.tar.xz and libreboot\_src.tar.xz - .gitignore: add libreboot\_bin.tar.xz and libreboot\_src.tar.xz
@ -98,7 +98,7 @@ Changes for this release (latest changes first, earliest changes last)
work now) work now)
- Update SeaBIOS - Update SeaBIOS
- x60flashfrom5 (new), for X60 users upgrading from 5th/early release - x60flashfrom5 (new), for X60 users upgrading from 5th/early release
- Update flashrom - Update flashprog
- Update GRUB - Update GRUB
- Updated coreboot-libre - Updated coreboot-libre
- i945: permanently set tft\_brightness to 0xff (fixes bug on X60 - i945: permanently set tft\_brightness to 0xff (fixes bug on X60
@ -142,7 +142,7 @@ Changes for this release (latest changes first, earliest changes last)
RAM/storage/wifi) and have too many usability issues for the RAM/storage/wifi) and have too many usability issues for the
libreboot project. libreboot project.
- docs/linux/grub\_cbfs.html Major cleanup. Usability improvements. - docs/linux/grub\_cbfs.html Major cleanup. Usability improvements.
- flash (flashrom script): remove boardmismatch=force - flash (flashprog script): remove boardmismatch=force
- This was put there before for users upgrading from libreboot r5 - This was put there before for users upgrading from libreboot r5
to r6, but also allows the user to flash the wrong image. For to r6, but also allows the user to flash the wrong image. For
example, the user could flash a T60 image on an X60, thus example, the user could flash a T60 image on an X60, thus

View File

@ -53,9 +53,9 @@ Machines supported in this release:
Changes for this release, relative to r20150208 (earliest changes last, recent changes first) Changes for this release, relative to r20150208 (earliest changes last, recent changes first)
--------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------
- Add a whitelist entry to board\_enable.c in flashrom, for the - Add a whitelist entry to board\_enable.c in flashprog, for the
ThinkPad R400, T400 and T500 ThinkPad R400, T400 and T500
- Updated flashrom (to SVN revision 1889) - Updated flashprog (to SVN revision 1889)
- X200 whitelist patch removed (merged upstream) - X200 whitelist patch removed (merged upstream)
- X200 whitelist modified to include X200S and X200 Tablet - X200 whitelist modified to include X200S and X200 Tablet
- libreboot\_util: don't include cmos layout files (not needed - libreboot\_util: don't include cmos layout files (not needed
@ -215,5 +215,5 @@ Changes for this release, relative to r20150208 (earliest changes last, recent c
- build-release: Separate ROM images into individual archives - build-release: Separate ROM images into individual archives
- build-release: rename libreboot\_bin to libreboot\_util - build-release: rename libreboot\_bin to libreboot\_util
- **New board:** ThinkPad R400 support added to libreboot. - **New board:** ThinkPad R400 support added to libreboot.
- bbb\_setup.html: tell user to use libreboot's own flashrom - bbb\_setup.html: tell user to use libreboot's own flashprog

View File

@ -40,7 +40,7 @@ Work done since the 20211122 release:
additional improvements made by Leah Rowe) additional improvements made by Leah Rowe)
* GM45/ICH9M laptops: Disable PECI in coreboot, to work around a microcode bug * GM45/ICH9M laptops: Disable PECI in coreboot, to work around a microcode bug
causing SpeedStep (and possibly other CPU features) to fail. causing SpeedStep (and possibly other CPU features) to fail.
* Do not treat warnings as errors when building flashrom (fixes building on * Do not treat warnings as errors when building flashprog (fixes building on
newer versions of GCC). newer versions of GCC).
* Macbook2,1: 16MB configurations now available (you must first upgrade the * Macbook2,1: 16MB configurations now available (you must first upgrade the
SPI flash) SPI flash)
@ -57,7 +57,7 @@ Work done since the 20211122 release:
* Scripts in lbmk: improved help output, courtesy of Denis 'GNUtoo' Carikli. * Scripts in lbmk: improved help output, courtesy of Denis 'GNUtoo' Carikli.
* scripts: process git versions when lbmk is a worktree or submodule. Courtesy * scripts: process git versions when lbmk is a worktree or submodule. Courtesy
John Doe (cool guy) John Doe (cool guy)
* Updated to newer flashrom, in the build system * Updated to newer flashprog, in the build system
* Perform silentoldconfig in seabios before full make. This fixes a race * Perform silentoldconfig in seabios before full make. This fixes a race
condition when rebuilding SeaBIOS with a high CPU count, resulting in failure condition when rebuilding SeaBIOS with a high CPU count, resulting in failure
with the error message (fix courtesy of John Doe): with the error message (fix courtesy of John Doe):

View File

@ -357,7 +357,7 @@ would simply merge)
| * cba24e8 fix txtmode config for t440p | * cba24e8 fix txtmode config for t440p
| * 55d6503 changed build system for new blobutil | * 55d6503 changed build system for new blobutil
| * 1462a3c move all blobs scripts to one directory | * 1462a3c move all blobs scripts to one directory
* | 84a9d53 update flashrom * | 84a9d53 update flashprog
* | cda2d70 reset nvmutils to known good revision * | cda2d70 reset nvmutils to known good revision
* | 65b62c0 exit if can't download nvmutils * | 65b62c0 exit if can't download nvmutils
* | 12c9fd2 coreboot: set me_state=Disabled on all boards * | 12c9fd2 coreboot: set me_state=Disabled on all boards

View File

@ -179,7 +179,7 @@ follows:
* 59540530 - nuke p2b_ls/p3b_f boards (2 days ago) <Leah Rowe> * 59540530 - nuke p2b_ls/p3b_f boards (2 days ago) <Leah Rowe>
* ebd9ec96 - debian/ubuntu dependencies scripts: add gettext (3 days ago) <Leah Rowe> * ebd9ec96 - debian/ubuntu dependencies scripts: add gettext (3 days ago) <Leah Rowe>
* f9e20b8a - util/nvmutil: optimise rhex() further (13 days ago) <Leah Rowe> * f9e20b8a - util/nvmutil: optimise rhex() further (13 days ago) <Leah Rowe>
* f04855c2 - fix flashrom download error (13 days ago) <Leah Rowe> * f04855c2 - fix flashprog download error (13 days ago) <Leah Rowe>
* e2945f02 - payload/grub: force terminal_output to console (2 weeks ago) <Leah Rowe> * e2945f02 - payload/grub: force terminal_output to console (2 weeks ago) <Leah Rowe>
* 909d3b31 - grub.cfg: set default timeout to 5 seconds (2 weeks ago) <Leah Rowe> * 909d3b31 - grub.cfg: set default timeout to 5 seconds (2 weeks ago) <Leah Rowe>
* 544737c8 - scripts: build cbutils, not specific utils (2 weeks ago) <Leah Rowe> * 544737c8 - scripts: build cbutils, not specific utils (2 weeks ago) <Leah Rowe>

View File

@ -137,7 +137,7 @@ In addition to coreboot firmware, the Libreboot build system (lbmk) can now
build *serprog* firmware, specifically `pico-serprog` and `stm32-vserprog`, on build *serprog* firmware, specifically `pico-serprog` and `stm32-vserprog`, on
all devices that these projects support. all devices that these projects support.
The *serprog* protocol is supported by flashrom, to provide SPI flashing. It The *serprog* protocol is supported by flashprog, to provide SPI flashing. It
can be used to set up an external SPI flasher, for [flashing Libreboot can be used to set up an external SPI flasher, for [flashing Libreboot
externally](../docs/install/spi.md). externally](../docs/install/spi.md).
@ -572,12 +572,12 @@ The log is as follows, relative to Libreboot 20230625:
* c7e764a3 update/release: confirm vdir path on exit * c7e764a3 update/release: confirm vdir path on exit
* 1c8b2114 update/release: copy crossgcc to archive * 1c8b2114 update/release: copy crossgcc to archive
* 54a05fc1 always re-generate .git in lbmk * 54a05fc1 always re-generate .git in lbmk
* 52c9416b update flashrom revision * 52c9416b update flashprog revision
* af1c1e10 add backup git repo for flashrom * af1c1e10 add backup git repo for flashprog
* 18364822 Revert "config/git: don't download flashrom" * 18364822 Revert "config/git: don't download flashprog"
* ac442808 config/git: add more backup repos * ac442808 config/git: add more backup repos
* 75980052 git/config: don't use github on main repos * 75980052 git/config: don't use github on main repos
* bf4ea810 config/git: don't download flashrom * bf4ea810 config/git: don't download flashprog
* da3044e7 git/config stm32-vserprog: don't fetch libopencm3 * da3044e7 git/config stm32-vserprog: don't fetch libopencm3
* 782371a5 update/release: delete *all* .git and .gitmodules * 782371a5 update/release: delete *all* .git and .gitmodules
* 743a425c include/git: fix already-exists download message * 743a425c include/git: fix already-exists download message

View File

@ -160,7 +160,7 @@ changes first):
courtesy of Leah Rowe. courtesy of Leah Rowe.
* **NEW BOARD:** HP 8300 CMT mainboard, added by Riku Viitanen, who worked * **NEW BOARD:** HP 8300 CMT mainboard, added by Riku Viitanen, who worked
on it with a tester in the IRC channel. on it with a tester in the IRC channel.
* Fixed implicit typecasting bug on flashrom 1.2 source code, thus preventing * Fixed implicit typecasting bug on flashprog 1.2 source code, thus preventing
a build issue (tested on Debian 12.2). Patch courtesy of Leah Rowe. a build issue (tested on Debian 12.2). Patch courtesy of Leah Rowe.
* `script/build/roms`: Rename `check_target` to `configure_target` * `script/build/roms`: Rename `check_target` to `configure_target`
and `prepare_target` to `configure_dependencies`, for increased code clarity. and `prepare_target` to `configure_dependencies`, for increased code clarity.
@ -337,7 +337,7 @@ changes first):
script was making improper use of subshells, leading to a zero exit, when script was making improper use of subshells, leading to a zero exit, when
it should have exited with non-zero status in such situations. Patch/fix it should have exited with non-zero status in such situations. Patch/fix
courtesy of Leah Rowe. courtesy of Leah Rowe.
* Bumped flashrom revision back to version 1.2, because the 1.4 RC we were * Bumped flashprog revision back to version 1.2, because the 1.4 RC we were
importing has issues (also, Nico Huber's flashprog will probably be used importing has issues (also, Nico Huber's flashprog will probably be used
in future releases of Libreboot). Patch courtesy of Leah Rowe. in future releases of Libreboot). Patch courtesy of Leah Rowe.
* Debian dependencies config: Fixed the freetype dependency, as tested on * Debian dependencies config: Fixed the freetype dependency, as tested on
@ -450,7 +450,7 @@ Exact git log, relative to 20231106:
| * 74147ea4 Add HP 8300 CMT port | * 74147ea4 Add HP 8300 CMT port
|/ |/
* 0aca6332 lbmk scripts: shorter code lines * 0aca6332 lbmk scripts: shorter code lines
* 575332f2 fix flashrom build error (implicit enum typecast) * 575332f2 fix flashprog build error (implicit enum typecast)
* b4ab3057 lbmk scripts: general code cleanup * b4ab3057 lbmk scripts: general code cleanup
* 38a7aa31 build/roms: rename two functions for clarity * 38a7aa31 build/roms: rename two functions for clarity
* 746d9cad build: remove test command * 746d9cad build: remove test command
@ -554,7 +554,7 @@ Exact git log, relative to 20231106:
|\ |\
| * 50bfe1ca fix void dependencies typo | * 50bfe1ca fix void dependencies typo
|/ |/
* 4e00ac00 revert flashrom back to version 1.2 * 4e00ac00 revert flashprog back to version 1.2
* 83c8248f dependencies/debian: fix libfreetype-dev * 83c8248f dependencies/debian: fix libfreetype-dev
* 39aad578 grub: re-add fat/nt file system modules * 39aad578 grub: re-add fat/nt file system modules
* 47ef411e Bump GRUB revision to 8 November 2023 revision * 47ef411e Bump GRUB revision to 8 November 2023 revision

View File

@ -2,6 +2,9 @@
% Leah Rowe % Leah Rowe
% 7 July 2023 % 7 July 2023
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
Introduction Introduction
============ ============
@ -115,7 +118,7 @@ do not have to disassemble the machine, but *two* flashes would be needed:
Under this configuration, we would still have the reality where some people Under this configuration, we would still have the reality where some people
don't read documentation, but if they don't read documentation, they will don't read documentation, but if they don't read documentation, they will
then just run flashrom on ROM images as-is, and it won't work. This will cause then just run flashprog on ROM images as-is, and it won't work. This will cause
one of three possible scenarios: one of three possible scenarios:
* They don't bother updating, and therefore avoid bricking their machine * They don't bother updating, and therefore avoid bricking their machine

View File

@ -3,6 +3,9 @@ title: Jobs that need doing
x-toc-enable: true x-toc-enable: true
... ...
NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog)
now, as of 27 January 2024, which is a fork of flashrom.
This page contains a curated list of tasks that are to be worked on, or tasks This page contains a curated list of tasks that are to be worked on, or tasks
that are being worked on. This is intended to complement that are being worked on. This is intended to complement
the [issue pages](https://codeberg.org/libreboot/lbmk/issues/). the [issue pages](https://codeberg.org/libreboot/lbmk/issues/).
@ -1659,7 +1662,7 @@ example:
But oh, what's this? We already know that the trees script can handle multiple But oh, what's this? We already know that the trees script can handle multiple
projects. For instance: projects. For instance:
./update trees -z flashrom pico-serprog grub seabios ./update trees -z flashprog pico-serprog grub seabios
Then it would output for all of those. It just goes in a loop. Then it would output for all of those. It just goes in a loop.