Skip to content

Releases: meta/openbmc

flashy-0ec2208

Choose a tag to compare

@github-actions github-actions released this 16 Sep 22:15
nexthopbmc: flashy: register nexthopbmc platform (#285)

Summary:
# Description

Add nexthopbmc to the flashy BMC-lite platform list, the flash procedure mappings (FlashCp) and platform_build_names so flashy recognizes and flashes nexthopbmc images.
# Motivation

nexthopbmc targets should be able to be flashed with the flashy tool.

Pull Request resolved: https://github.com/facebook/openbmc/pull/285

Test Plan:
Do an image upgrade:
```
./scripts/run_flashy_remote.sh \
      --host nexthopbmc-oob \
      --device mtd:flash0 \
      --imagepath /srv/tftp/sync/flash-nexthopbmc
Running a remote upgrade on 'nexthopbmc-oob'  with image '/srv/tftp/sync/flash-nexthopbmc'
Continue (y/n)?y
path-to-flashy not provided, building flashy...
Making installation directories on OpenBMC...
Copying flashy...
Copying image...
Copying upgrade script...
Running upgrade...
Getting buildname of device
Buildname: nexthopbmc
<snip>
2026/09/08 07:07:10 Fetching image data for offset: 33554432, size: 13238
2026/09/08 07:07:10 Flashing image data for offset: 33554432, size: 13238
2026/09/08 07:07:11 Finished flashing image '/run/upgrade/image' on to flash device '/dev/mtd5'
2026/09/08 07:07:11 Verifying copy on flash device '/dev/mtd5' with image file '/run/upgrade/image'
2026/09/08 07:07:16 Finished verifying copy on flash device '/dev/mtd5' with image file '/run/upgrade/image'
2026/09/08 07:07:16 FlashCp succeeded
2026/09/08 07:07:16 Finished: flashy
Flashing succeeded. It is safe to reboot this system. Flashing complete, rebooting the device...
Connection to nexthopbmc-oob closed by remote host.
```

Flashy go tests pass:
```
nate@builder:~/bmc/nh-openbmc/tools/flashy$ go test 2026/09/08 14:35:18 Running command
'/home/nate/bmc/nh-openbmc/tools/flashy/scripts/calculate_test_coverage.sh' with 30s timeout
2026/09/08 14:35:19 stdout: 93.9
2026/09/08 14:35:19 Command
'/home/nate/bmc/nh-openbmc/tools/flashy/scripts/calculate_test_coverage.sh' exited with code 0 after 915.914042ms
PASS
ok      github.com/facebook/openbmc/tools/flashy        0.918s
```

Reviewed By: joancaneus

Differential Revision: D119173908

Pulled By: ezeob002

fbshipit-source-id: 8b60924bdfb1d67800a49455fc2782cf06111c6e

flashy-caa4ca2

Choose a tag to compare

@github-actions github-actions released this 04 Sep 20:27
ventura2a7: Add facebook/configerator_platforms_update.sh run changes

Summary:
Add the changes for facebook/configerator_platforms_update.sh to
sync ventura2a7 platforms.json changes to openbmc repo.

Test Plan: CIT passes.

Reviewed By: jamesatha

Differential Revision: D118828486

fbshipit-source-id: 76a0849229a5bc81e7d2f6db0da0389090863b71

flashy-41815de

Choose a tag to compare

@github-actions github-actions released this 01 Sep 15:05
flashy: sort machines

Summary: As titled.

Test Plan: flashy builds

Reviewed By: amithash

Differential Revision: D100399625

fbshipit-source-id: 581afdd5854017cf93a0461f2c2ce9b98b4f43b2

flashy-a1713b0

Choose a tag to compare

@github-actions github-actions released this 18 Aug 17:25
relax the free RAM floor to 30M on wedge100

Summary:
See S697061 for context, 30_ensure_enough_free_ram requires 45M free before an upgrade. Recent wedge100 releases cannot
meet that outside a short window after boot, so the step exits 42 and the caller
reboots the device.

Test Plan:
Unit tests

  cd tools/flashy && ./scripts/run_unit_tests.sh
  162/162 unit tests passed

Build `openbmc.utils.flashy` ephemeral, pin it in ooberaser code
```
 diff --git a/fbcode/openbmc/erase/core/erase.py b/fbcode/openbmc/erase/core/erase.py
 --- a/fbcode/openbmc/erase/core/erase.py
+++ b/fbcode/openbmc/erase/core/erase.py
@@ -1046,6 +1046,10 @@
         self._logger.info("Preparing to run Flashy checks")
         flashy = Flashy(self._openbmc, self._logger)

+        # XXX LOCAL TESTING ONLY - DO NOT COMMIT
+        # Pin the flashy fbpkg instead of resolving openbmc.utils.flashy:DEFAULT
+        flashy.FBPKG_TAG = "fd431e7"
+
         # Get the current push image to flash to the device post-wipe
         image = obmc_versions.get_fbpkg_version(self.build_name)
         self._logger.info(f"Downloading {image} to flash to the device")
```

Run ooberaser locally using https://wiki.internalmeta.com/wiki/OpenBMC/OOBEraser_(aka_OpenBMC_Eraser)/Developer_Guide targeting a device running openbmc.image.wedge100:v2026.09.0:
```
 ./ooberaser --host rsw012-oob.p007.f01.prn6 --skip-wipe-certs --force --wait --tier local
```

While flashy is running, created a dummy file so mem free stayed on 30M on average, ensure flashy/wipe job succeeds

Differential Revision: D116460585

fbshipit-source-id: cd806016bab633340e9e4684fbeb0788319bac03

flashy-b48006b

Choose a tag to compare

@github-actions github-actions released this 03 Aug 20:59
Sync platforms.thrift from configerator

Summary: Brings in support for rainiera7

Test Plan: All builds

Reviewed By: wangx6f

Differential Revision: D114380488

fbshipit-source-id: e2ba590ce9fc1daef8b59e55591764e87afb2177

flashy-86bde84

Choose a tag to compare

@github-actions github-actions released this 30 Jul 11:17
Sync platforms.thrift to openbmc repo

Summary:
Sync platforms.thrift to OpenBMC

Needed to generate flash-procedure mapping so yosemite5a7 maps to FlashCp

Test Plan:
Generated with
```
$ facebook/configerator_platforms_update.sh
```

Reviewed By: ryazwinski

Differential Revision: D113231071

fbshipit-source-id: 51695eb3dbc1e836b27ebcfcdca84e998ca8902a

flashy-849f885

Choose a tag to compare

@github-actions github-actions released this 30 Jul 11:23
handle flashy validation for yosemite5a7/AST2700

Summary:
Currently any attempt to run oobgrader against a ysoemite5a7 device is failing as it cannot verify the image in flashy checks and remediations

Let's add a fix to the whole image for the U-Boot version string (step 40) and adding the a7's 4088 KB manifest offset to the candidate list (step 41)

Test Plan:
```
$oobgrader --host rtptest6715-oob.snc8.facebook.com --fbpkg-tag openbmc.image.yosemite5a7:v2026.27.1 --flashy-tag 5d49d87 --wait
```
Created job: https://fburl.com/scuba/openbmc_upgrades/b81b19sc

BMC successfully upgraded:
```
$ ssh root@rtptest6715-oob.snc8.facebook.com
Last login: Mon Jul 27 12:11:30 2026 from 2401:db00:eef0:1120:3520:0:a804:7c6
root@bmc:~# cat /etc/issue
OpenBMC Release yosemite5a7-v2026.27.1

```

Reviewed By: amithash, ryazwinski, williamspatrick

Differential Revision: D112993974

fbshipit-source-id: cba093b85dcef6961ed8bafe4528846e9f27c87f

flashy-ceaf69c

Choose a tag to compare

@github-actions github-actions released this 28 May 22:42
log persist motd reset outcome

Summary:
flashCpAndValidate unconditionally removes /run/mnt-persist/etc-data/motd
after flashing to drop the LF OpenBMC overlayfs persist file, but the
return value from RemoveFile was discarded. When the removal fails for
any reason (read-only fs, EIO, persist mount missing post-flash) there
is no trace of it in the flashy log, which makes stale post-upgrade
motd banners untraceable from oobgrader output alone.

Add a small switch around the removal:
- success logs that the persist motd was reset
- ENOENT stays silent (expected on non-LF or unmodified motd)
- any other error is logged with the path and underlying error

No behavior change beyond logging; the function still returns the
flashcp error unchanged so the existing TestFlashCpAndValidate
"succeeded, with remove failure" case continues to pass.

Test Plan:
cd tools/flashy && go test ./...
All packages PASS, including lib/flash.

Reviewed By: Prabha-Veerubhotla

Differential Revision: D106693971

fbshipit-source-id: 4dd26fd2942c58569ef519cc575c30f35aedc51a

flashy-9e80437

Choose a tag to compare

@github-actions github-actions released this 26 May 20:41
regen flash_procedure_mappings.go for sanmiguel

Summary:
Regenerate tools/flashy/flash_procedure/flash_procedure_mappings.go
after sanmiguel flipped has_fbpkg=true in platforms.json (D106118329,
synced via 807a2a10703 "Sync platforms.thrift").

Without this, flashy aborts with
  {Err: unknown platform 'sanmiguel' - no flash procedure found}
and never writes the image. The wrapper then treats the failure as
ExitSafeToReboot and reboots into the unchanged old image, so any
post-flash CIT runs against stale firmware. Observed on
conveyor/openbmcfb sanmiguel runs starting 2026-05-26.

Sanmiguel is non-vboot and LF OpenBMC, so it lands on flash.FlashCp,
matching all other LF OpenBMC platforms (harma, minerva, yosemite4/5,
catalina, ventura, ventura2, bletchley, anacapa, clemente,
santabarbara, rainiera6).

Generated by facebook/sandcastle/gen_flash_procedure_mapping.sh.

Test Plan:
- cd facebook/sandcastle && bash gen_flash_procedure_mapping.sh
  - git diff: only one new line "sanmiguel: flash.FlashCp," added.
  - cd tools/flashy && go fmt ./... clean.

Reviewed By: waffle2k

Differential Revision: D106399150

fbshipit-source-id: 8bf25f0ab9c58b7a812013646f51482f435d12e3

flashy-1ca91dc

Choose a tag to compare

@github-actions github-actions released this 11 May 18:50
Sync platforms.thrift

Summary: Bring in rainiera6 and sanmiguel

Test Plan: #DoItLive

Reviewed By: ifel

Differential Revision: D104452087

fbshipit-source-id: d0f92faff1f281083d95fb5ae69e56702814470b