Doca Bf4 Deployment
NVIDIAOfficialCreated by NVIDIA
- Skill
- Workflow
- Cloud and DevOps
- Apache-2.0
- Medium risk
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill guides operators through the day-1 platform bring-up of BlueField-4 (BF4) DPUs via the BMC. It covers installing the BlueField/DOCA bundle ISO, performing PLDM platform-firmware updates, and deploying Grace Ubuntu images with optional cloud-init. The skill emphasizes safety by requiring all mutating hardware operations—such as firmware burns, ISO reflashes, and power cycles—to be governed by the doca-hardware-safety skill, ensuring maintenance windows and rollback plans are in place.
What it does
- Guides UEFI HTTP Boot, PXE, and Redfish Virtual Media installation methods.
- Manages PLDM platform-firmware updates via Redfish UpdateService and pldmtool.
- Supports Grace Ubuntu image installation with cloud-init configuration.
- Provides diagnostic workflows for common bring-up issues like boot loops or firmware task failures.
- Enforces strict safety protocols for all irreversible hardware-mutating operations.
- Routes non-BF4 or application-level requests to appropriate specialized skills.
When to use it
- When performing initial day-1 bring-up of a new BlueField-4 DPU.
- When updating platform firmware on a BlueField-4 via the BMC.
- When troubleshooting failed ISO boots, firmware task hangs, or virtual media attachment issues.
- When configuring a Grace Ubuntu environment with cloud-init via Redfish.
Advantages
- Ensures consistent, documented procedures for complex hardware bring-up.
- Integrates safety checks to prevent bricking or corruption during firmware updates.
- Provides a clear taxonomy for diagnosing and resolving deployment errors.
- Maintains a clean separation between platform bring-up and application deployment.
Usage examples
- “I have a brand-new BlueField-4 and need to install the DOCA bundle ISO onto it. What are my options?”
- The agent provides a comparison of UEFI HTTP Boot, PXE, and Redfish Virtual Media, guiding the user to the appropriate task workflow based on their infrastructure.
- “I pushed a firmware bundle through Redfish and the Task just sits at Running. Is it stuck?”
- The agent initiates the debug workflow, checking the firmware-Task layer and advising on whether to wait or intervene, while enforcing safety rules against blind re-pushes.
- “My BlueField-4 keeps re-entering the installer every time it resets. Why?”
- The agent identifies a potential boot-loop caused by attached virtual media and provides instructions to detach the media to allow the system to boot into the installed OS.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/nvidia/doca-bf4-deployment/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip doca-bf4-deployment.zip -d .agents/skills
Documentation by NVIDIA
DOCA BlueField-4 (BF4) deployment
Examples
"I have a BlueField-4 and a BMC — how do I bring Grace up?" — BMC-driven day-1, not the BF3 RShim/BFB path. Do not invent credentials or skip media detach.
"PLDM update finished but the NIC firmware did not move." — treat it as a firmware-Task / activation failure, not a second burn by default.
BlueField-3 or any other generation is not this skill. Name
doca-bf3-deployment and stop; do not read further or run commands.
Preparing a BlueField-4 host (answer from here)
Platform: confirm it is BlueField-4 and that the BMC is reachable out of band; compare the Redfish firmware inventory with the release notes' targets.
Version alignment: run the
doca-versionfour-source chain on the host. Fixing any mismatch changes hardware state and followsdoca-hardware-safety.Safest first smoke test: read-only
doca_caps --list-devs, then one shipped sample perdoca-bare-metal-deployment. No firmware, mode or reset change before that is green.Say it in the answer: every mutating step (PLDM firmware burn, ISO reflash, power cycle, BMC reset) is routed through
doca-hardware-safety: pre-flight inventory, out-of-band access, maintenance window, rollback, then apply and verify.
Instructions
Follow Loading order below. Open the tasks companion for BMC bring-up and recover. Open the capabilities companion for the three install methods and the BF4 safety overlay. Do not open every companion file.
⚠️ WARNING — irreversible hardware operations. This skill guides operators through potentially destructive, irreversible BlueField-4 hardware operations: PLDM firmware burns, ISO reflashes, power cycles, and BMC factory resets. These can brick firmware, corrupt boot media, or cause production outages. Do not proceed without a maintenance window and a tested rollback plan. Every mutating step is governed by
doca-hardware-safety/SKILL.md, which MUST be loaded alongside this skill before any destructive action.Before executing any mutating step — PLDM firmware burn, ISO reflash, power cycle, or BMC factory reset — the agent MUST show the exact command and its blast radius (which device, what becomes unavailable, whether it is reversible) and obtain the user's explicit confirmation for that specific action. Never chain destructive steps or run them speculatively as a side effect of another task.
Where to start: This skill is the bundle's deliberate in-bundle
home for day-1 platform bring-up of a BlueField-4 DPU via the
BMC — getting a powered-but-bare BF4 to "Grace OS installed,
firmware at the target level, ready to deploy a workload." It is the
upstream of the two application-deployment skills
(doca-container-deployment/SKILL.md
and
doca-bare-metal-deployment/SKILL.md):
those skills assume a working BlueField; this skill is how the
BlueField-4 GETS to working. If the user has a fresh BF4 and wants to
install the OS or update firmware, open the tasks companion and
start at ## configure. If the question is
what bring-up methods even exist and what is the contract for each,
start at the capabilities companion.
How to use this skill. Read this file, then search the companion file
for the ## <name> heading the question needs and read that whole section.
Answer completely from it, quoting only its symbols and commands. Do not
browse docs; use the entry points in doca-public-knowledge-map. Give
environment checks as commands for the user's DOCA host. For out-of-scope
requests, name the skill that owns them and stop.
Scope note — BF4 day-1 is in scope. The bundle's
AGENTS.md ## Non-goals(bundleAGENTS.md#non-goals-questions-the-agent-should-recognize-and-refuse-politely) item 7 lists the BlueField BSP / BFB / RShim / TMFIFO layer and the BlueField BMC software as externally-productized. BlueField-4 day-1 bring-up via the BMC is in scope for this skill because day-1 has no other home in the bundle. The carve-out is narrow: this skill teaches the documented BMC-driven install and firmware-update FLOWS (the CLASS), routing every mutating step throughdoca-hardware-safety/SKILL.mdfor the change-application meta-policy. It does NOT redefine that meta-policy, and it does NOT cover BF3 (route todoca-bf3-deployment), application launch, or library APIs.
When to load this skill
Load this skill when the user is doing hands-on day-1 bring-up of a BlueField-4 via the BMC, or asking a cross-cutting BF4-bring-up question that is not specific to a later application-deployment step. Concretely:
Installing the BlueField/DOCA bundle ISO onto the DPU (Grace) for the first time, and choosing between the install methods — UEFI HTTP Boot, PXE Boot, Redfish Virtual Media, or the DOCA Management Service install path.
Running the PLDM firmware-update flow across the BMC, NIC firmware and the other platform components the PLDM package lists: pushing the
.fwpkgbundle through the Redfish UpdateService multipart endpoint, monitoring the returned Task, verifying pending images withpldmtool, and activating with a power cycle.Installing a Grace Ubuntu image (with optional cloud-init via a CIDATA-labelled config ISO) through Redfish Virtual Media, with either local hosting on the BMC eMMC or remote hosting on an HTTPS server.
Reaching the DPU's OOB serial console (BMC SSH plus
obmc-console-client) to watch the installer or UEFI menus.Diagnosing a bring-up that is misbehaving — the ISO will not boot, virtual media will not attach, a firmware Task hangs or reports an Exception, a pending image never activates, cloud-init is ignored, or the DPU is stuck in a boot loop because media was never detached.
Cross-cutting questions: "HTTP Boot or Redfish Virtual Media — which do I use, and when do I actually need PXE?", "how do I know the firmware update actually took effect?", "the ISO landed but the NIC firmware update sub-step seems to have failed — what now?".
Do not load this skill for BF3 bring-up (route to
doca-bf3-deployment); for running an application on an
already-working BlueField (route to
doca-container-deployment/SKILL.md
or
doca-bare-metal-deployment/SKILL.md);
for env preparation on the installed Grace OS such as hugepages /
pkg-config / devlink (use doca-setup/SKILL.md); for
the cross-cutting hardware-change meta-policy (route to
doca-hardware-safety/SKILL.md); or for
fleet-scale orchestrated provisioning (route via
doca-public-knowledge-map/SKILL.md).
What this skill provides
This is a thin loader. Substantive material lives in two companion files:
the capabilities companion — the BF4 day-1 bring-up contract: the three OS install methods (UEFI HTTP Boot, PXE Boot, Redfish Virtual Media) and the Grace-Ubuntu-plus-cloud-init Virtual Media path; the PLDM firmware-update surface across the platform firmware components; the version-compatibility overlay on
doca-version/SKILL.md(the install and firmware targets come from the public release notes, never from memory); the bring-up error taxonomy (boot-source -> virtual-media-attach -> firmware-Task -> activation -> cloud-init -> boot-loop); the observability surface (the OOB console, the Redfish Task resource, the Redfish FirmwareInventory,pldmtoolGetFwParams, and the installed-build checkcat /etc/mlnx-release); and the safety policy (an overlay ondoca-hardware-safety/SKILL.md: every PLDM burn / ISO reflash / power cycle / BMC factory reset is a MUTATING hardware op; never print a real password; always detach virtual media to avoid boot loops; only public hosts for any NVIDIA URL).the tasks companion — step-by-step workflows for the in-scope bring-up verbs:
configure,build(routing stub),modify(routing stub),run(the three install methods plus the PLDM firmware-update flow plus the Grace-Ubuntu cloud-init path, as###sub-anchors),test(the post-install / post-update verification sweep),debug(the layered bring-up diagnosis), and theDeferred task verbsblock routing BF3 / application-launch / library-API / env-prep / hardware-meta-policy / fleet questions out to their owning skills.
The skill assumes a BlueField-4 target where:
the BMC is reachable out-of-band and the operator has BMC credentials ({bmc-user} / {bmc-password}) they supply — never invented here,
the bundle ISO (and any Grace Ubuntu image / cloud-init config ISO) is downloaded from the public NVIDIA download surface and hosted at {iso-uri},
the operator has read the target firmware and OS versions from the public BlueField/DOCA release notes.
It does not cover installing DOCA tooling on the host — that path goes
through doca-setup/SKILL.md — and it does not cover
running a workload once Grace is up — those paths go through the two
application-deployment skills.
Loading order
Read this skill first to confirm the user's question is in scope (BF4 day-1 bring-up via the BMC; NOT BF3, NOT application launch, NOT a library-API question, NOT the hardware-change meta-policy itself).
For the bring-up contract (the three install methods, the Grace-Ubuntu cloud-init path, the PLDM firmware-update surface, the version overlay, the bring-up error taxonomy, the observability surface, and the BF4 safety overlay), see the capabilities companion.
For step-by-step workflows —
configure,build(routing stub),modify(routing stub),run(with the three install methods, the PLDM flow, and the Grace-Ubuntu cloud-init path as###sub-anchors),test,debug, plus theDeferred task verbsblock — see the tasks companion.Load
doca-hardware-safety/SKILL.mdALONGSIDE whenever the question reaches a mutating step (PLDM firmware burn, ISO reflash, power cycle, BMC factory reset).
Related skills
doca-bf3-deployment/SKILL.md— BF3 RShim/BFB day-1.doca-hardware-safety/SKILL.md— PLDM, reflash, power cycle.doca-bare-metal-deployment/SKILL.md— launch after Grace is up.doca-container-deployment/SKILL.md— service container after Grace is up.doca-setup/SKILL.md— env prep on the installed Grace OS.doca-version/SKILL.md— four-way version match.doca-public-knowledge-map/SKILL.md— public docs and release notes.
Files
- ATTRIBUTION.mdAdded by AutoGineer915 B
- BENCHMARK.md9.9 KiB
- CAPABILITIES.md17.0 KiB
- LICENSELicence file added by AutoGineer11.2 KiB
- SKILL.md12.0 KiB
- TASKS.md21.0 KiB
- evals/evals.json2.4 KiB
- references/details.md7.0 KiB
- skill-card.md4.7 KiB
- skill.oms.sig5.1 KiB
TASKS.md
DOCA BlueField-4 deployment — Tasks
Where to start: The executable bring-up path is configure -> run -> test -> debug. The build and modify anchors below
are routing stubs reached only when the user asks those questions —
they are not steps in BF4 day-1 bring-up. There is no application
artifact to build or sample to modify in a platform bring-up; those
questions live in the application-deployment skills and
doca-programming-guide/SKILL.md. This
skill owns getting a bare BlueField-4 to a Grace OS installed and
firmware at the target level, driven from the BMC. The ## test verb
is the post-install / post-update verification sweep.
These verbs cover the in-scope BF4-bring-up workflows for an external
operator standing up a new BlueField-4 through its BMC. Every step
assumes the operator has consulted the live public BlueField/DOCA
documentation and release notes (reachable through
doca-public-knowledge-map ## Public documentation entry points (doca-public-knowledge-map/SKILL.md#public-documentation-entry-points))
and the Redfish / PLDM / UEFI standards; this file prescribes the
order and what to look up where, not a copy-paste runbook. Every
MUTATING step (PLDM burn, ISO reflash, power cycle, BMC factory reset)
loads doca-hardware-safety/SKILL.md
ALONGSIDE.
configure
Preparing to bring up the BlueField-4 and confirming every precondition BEFORE any boot, transfer, or burn.
Confirm out-of-band BMC reachability. The whole flow is driven from the BMC. Confirm BMC SSH works ({bmc-user} / {bmc-password}, supplied by the operator — never invented), and that the DPU's OOB serial console is reachable via
obmc-console-client. Without an OOB path the bar for proceeding is "stop, establish OOB first" perdoca-hardware-safety ## Out-of-band access classes(doca-hardware-safety/CAPABILITIES.md#out-of-band-access-classes).Host the ISO. Download the BlueField/DOCA bundle ISO (and, for the Grace-Ubuntu path, the Grace Ubuntu image and any cloud-init config ISO) from the public NVIDIA download surface, and host it at {iso-uri} on your own HTTP/HTTPS server. For a remote HTTPS source used by Redfish Virtual Media, confirm the BMC can reach it and trusts its certificate. If trust cannot be verified, stop before transfer; do not improvise certificate-install commands.
Pick the install method. Per the install-method table in
CAPABILITIES.md ## Capabilities and modes: UEFI HTTP Boot (no DHCP/TFTP needed), PXE Boot (when you already have DHCP+TFTP or need a custombf.cfg), Redfish Virtual Media (fully out-of-band; needs Virtual Media support in the installed BMC firmware), or the DOCA Management Service install path (DOCA 3.5+, ISO and/or PLDM through the DPU BMC). For Virtual Media, confirm support from the BMC's Redfish inventory first; if it cannot be confirmed, choose UEFI HTTP Boot or PXE when one fits, and if Virtual Media is mandatory, stop and escalate rather than assuming support. The choice feeds## run. If local BMC-eMMC Virtual Media is selected, confirm the payload fits the BMC storage before transfer.Capture the target versions. Read the target bundle-ISO build, NIC firmware level, and platform component versions from the public BlueField/DOCA release notes (route via
doca-public-knowledge-map/SKILL.md). Do NOT quote a pre-release firmware version from memory; record the release-notes targets as the verification baseline used in## test.Plan the rollback and the maintenance window. Every burn / reflash / power cycle is MUTATING. Capture the pre-change state (current FirmwareInventory, current
/etc/mlnx-releaseif Grace is already up), agree a maintenance window, and confirm the OOB path survives a failed change — all perdoca-hardware-safety ## modify(doca-hardware-safety/TASKS.md#modify), loaded ALONGSIDE.Select optional branches explicitly. Decide from the public release notes whether this bring-up requires the
### pldm-firmware-updatebranch, and decide whether the target is the### grace-ubuntu-cloud-initbranch. Do not infer either branch from hardware generation alone.Resolve action inputs. Before entering any mutating sub-step, confirm that every placeholder required by that action has a concrete, operator-supplied or live-discovered value. Stop before an upload, attach, burn, reset, or power cycle if any required credential, URI, image, EID, or task ID is unresolved.
build
BF4 platform bring-up has no application artifact to build. The binaries, service containers, and DOCA libraries a workload uses are not built here.
If the user is asking how to build a DOCA-linked binary or a service to deploy once Grace is up, route to
doca-programming-guide ## build(doca-programming-guide/TASKS.md#build), then todoca-bare-metal-deployment/SKILL.mdordoca-container-deployment/SKILL.mdto deploy it.If the user is asking how to assemble the bundle ISO or the firmware
.fwpkgthemselves, that is NVIDIA-internal release engineering — out of scope. The operator downloads the published artifacts from the public NVIDIA download surface.The H2 stays so the verb order is intact; the answer is there is no build step in platform bring-up — you download published artifacts and install them.
modify
BF4 platform bring-up has no "modify a sample program" workflow. The bring-up analog of "modify" is re-walking the bring-up after a change, and any change to firmware configuration leaves this verb:
A firmware-config change is a hardware-state change. Adjusting NV-config / mode toggles (e.g. via
mlxconfig set) or burning new firmware is MUTATING and is owned bydoca-hardware-safety ## modify(doca-hardware-safety/TASKS.md#modify); this skill does not redefine that discipline. Control returns to## configureonce the change is complete and verified.A re-install or re-flash is a fresh bring-up. Re-pointing the boot path at a new ISO, or re-pushing a
.fwpkg, re-opens the verification sweep — re-walk## runthen## test.A change to the cloud-init seed is a fresh Grace-Ubuntu install. Editing the CIDATA seed means re-attaching the seed and re-installing; re-walk
### grace-ubuntu-cloud-init.Modifying a workload's source belongs elsewhere. Source changes to a DOCA application route to
doca-programming-guide ## modify(doca-programming-guide/TASKS.md#modify); they are not a platform-bring-up concern.The H2 stays for verb-order parity; the substantive routing is above.
run
Bringing the BlueField-4 up: install the bundle ISO onto Grace via the
chosen method, update platform firmware via PLDM when required, and
(optionally) install a Grace Ubuntu image with cloud-init. Each
sub-anchor below is one documented flow. Reach the OOB console via BMC
SSH + obmc-console-client before starting any of them, and load
doca-hardware-safety/SKILL.md ALONGSIDE.
The bundle-ISO methods and the Grace-Ubuntu path are alternative OS
targets selected in ## configure; run one OS-install
path. The PLDM firmware-update branch may accompany either when the
release notes require it.
Before each mutating upload, attach, burn, reset, or power cycle,
show that exact action and blast radius and obtain confirmation for
that specific action. After confirmation, resume only the sub-step
that triggered the gate; one confirmation never authorizes later
mutations.
method-a-uefi-http-boot
OS install without PXE / DHCP / TFTP.
Host the bundle ISO at {iso-uri} on your HTTP server.
Reach the DPU OOB console via BMC SSH +
obmc-console-client.Reboot Grace and enter UEFI.
In the UEFI setup, set the HTTP boot URI of the OOB network device to {iso-uri} and save.
Boot the UEFI HTTP entry to start the installer.
Watch the install on the OOB console; then do the shared post-install in
### post-install.
method-b-pxe
Use when you already have PXE infrastructure or need a custom bf.cfg.
Stand up / confirm a PXE server: DHCP + TFTP + the ISO.
Reach the DPU OOB console via BMC SSH +
obmc-console-client.In Boot Manager, set next boot to the OOB IPv4 net device.
Select the installer entry for the ISO and boot it.
Watch the install on the OOB console; then do
### post-install.
method-c-redfish-virtual-media
Fully out-of-band; needs Virtual Media support in the installed BMC firmware. No physical access.
If uploading to local BMC eMMC, confirm the payload fits the BMC storage; otherwise stop and use remote hosting. Then show the exact upload and blast radius, obtain confirmation for this upload, and use the Redfish SimpleUpdate API.
Attach it via Redfish VirtualMedia; Grace then sees USB mass-storage devices. Confirm the media reports
"Inserted": true.Set BootSourceOverride to USB (Once / UEFI).
Reset Grace; monitor via
obmc-console-client.Do
### post-install, and detach the media when done.
pldm-firmware-update
Update the BMC, NIC firmware and the other platform components the
PLDM package lists, via PLDM over Redfish. Every
step here is MUTATING — doca-hardware-safety is loaded ALONGSIDE.
NIC firmware from the host (only when explicitly required). Use the host-side
flintpath only when the public release notes for the selected bundle explicitly require it; otherwise skip this step rather than guessing. When required, program from the host and power cycle. Route each mutation throughdoca-hardware-safety ## modify(doca-hardware-safety/TASKS.md#modify).Push the bundle. Upload the
.fwpkg({fw-image}) via a Redfish multipartPOSTto the UpdateService update-multipart endpoint.Monitor the Task. Poll the returned Task ({task-id}):
TaskStateRunning -> Completed,PercentCompleteto 100; aMessagesException or a non-Completed terminal state is failure (drop to## debuglayer 3). Use the Task's documented retry/timeout guidance when present. Otherwise, classify it as stalled whenTaskState,PercentComplete, andMessagesare unchanged across two consecutive observations at an operator-approved polling interval; approval means an explicit interval value for this Task. Those are the only two observations permitted. If no interval is approved, do not poll: stop withconfirmation_required, ask the operator to approve an interval, and remain stopped until one is supplied. In either case there is no open-ended polling loop.Verify pending images.
pldmtool fw_update GetFwParams -m {eid}and compareActiveComponentVersionStringagainstPendingComponentVersionStringper component — Pending differs from Active before activation.Activate. Show the exact power-cycle action and blast radius and obtain separate confirmation (e.g.
ipmitool power cycle); re-run GetFwParams and confirm Active now equals the release-notes target. Do not add a BMC factory reset as a generic "clean state" step; perform one only when a version-matched public recovery procedure explicitly requires it and the operator requests and separately confirms that exact reset.
grace-ubuntu-cloud-init
Install a Grace Ubuntu image (optionally seeded by cloud-init) via Redfish Virtual Media.
Prepare the cloud-init seed (optional). Build the seed as an ISO with volume label
CIDATA.Choose hosting and preflight it. Local — calculate the image plus seed size before transfer and proceed only when it fits the BMC eMMC. Remote — host on an HTTPS server the BMC can reach and whose certificate it trusts.
Transfer + attach. For each action, show the exact transfer or attach and blast radius and obtain action-specific confirmation; then transfer via Redfish SimpleUpdate and attach via Redfish VirtualMedia. Confirm
"Inserted": truefor both the image and the seed.Boot. Show and separately confirm the boot-state change and reset with their blast radii. Set BootSourceOverride to USB and reset Grace, OR manually pick the OpenBMC Virtual Media Device from the UEFI Boot Manager.
Verify + detach. Verify the installed OS build from Grace, verify the expected cloud-init user/key/hostname when a seed was supplied, and cross-check component versions via Redfish FirmwareInventory. Then eject / detach and confirm
"Inserted": false. Never eject mid-install.
post-install
Shared across every OS-install method:
First login with the image's documented default credentials, then immediately change them.
Set a strong root password.
Validate the installed build with
cat /etc/mlnx-release.Detach all virtual media (Method C / Grace-Ubuntu) to avoid a boot loop; confirm
"Inserted": false.Hand off to
## testfor the full verification sweep.
test
BF4 bring-up has no compile-and-unit-test workflow — verification is
operational against the BMC and Grace. ## test is the sweep run
after every install or firmware change; skipping it after a change
is the failure mode this verb replaces.
Run each check that applies to the path performed. A PLDM-only update requires checks 2, 3, and 6; OS, Virtual Media, and cloud-init checks apply only when those paths were performed.
OS install took (OS-install paths only).
cat /etc/mlnx-releaseon Grace reports the release-notes target build string, and the OOB console shows a clean boot to a login prompt. Default credentials have been changed.Firmware update took. The Redfish Task reported
TaskStateCompleted withPercentComplete100 and no Exception; after the activation power cycle,pldmtool fw_update GetFwParams -m {eid}shows Active equal to the target (Pending cleared) for every updated component.Versions match the release notes. The Redfish FirmwareInventory per-component versions equal the targets captured in
## configurestep 4 — not an assumed value. Compare it withpldmtool GetFwParamsfrom step 2; if they disagree, re-query both sources once. If they still disagree, stop and escalate to the operator with both values, the OOB-console evidence, and the bring-up snapshot for manual adjudication; do not choose one or declare success.Virtual media detached (Virtual Media paths only). Any Virtual Media resource reports
"Inserted": false, and Grace does not re-enter the installer on a subsequent reset (no boot loop).Cloud-init applied (Grace-Ubuntu path only). The customization from the CIDATA seed (user, SSH key, hostname) is present on the booted Grace OS.
Capture the bring-up snapshot. Record which method was used, the install build string, the per-component firmware versions, and the OOB-console / Task evidence — the artifact that lets a later debug session skip rediscovery and is the rollback baseline.
If any check fails, drop to ## debug at the matching
layer; do not declare the bring-up complete on a single green signal.
debug
Layered diagnosis. Walk the layers in this order; do not skip down
without clearing the layer above. This is the single source for each
layer's symptoms, evidence and correction; CAPABILITIES.md ## Error taxonomy only lists the layers.
Boot-source layer. ISO never starts: UEFI HTTP Boot cannot fetch the Boot URI, the PXE menu never appears, or the Virtual Media device is absent from the Boot Manager. Confirm {iso-uri} is reachable from the OOB network and serves the ISO; confirm the HTTP boot entry belongs to the OOB network device; (Method C) confirm the media was attached before the reset. Evidence: the OOB console via
obmc-console-client.Virtual-media-attach layer. InsertMedia fails or
"Inserted": false; Grace sees no USB mass-storage device. Check the BMC firmware supports Redfish Virtual Media; confirm the SimpleUpdate transfer completed (Method C local) or that the remote HTTPS source is reachable from the BMC and its certificate is trusted; confirm the local payload fits the BMC storage.Firmware-Task layer. The multipart
POSTwas accepted but the Task stays Running, ends with an Exception, or stallsPercentComplete. Read the TaskMessages; verify the.fwpkgis the correct, uncorrupted bundle and targets present components; do NOT re-push or power-cycle blindly. If the Task remains stalled, capture the complete Task resource andMessages, stop this workflow, and escalate with the bring-up snapshot and OOB-console evidence. Any recovery that re-burns, resets, or power-cycles MUST be planned throughdoca-hardware-safetyand separately confirmed by the operator — a stalled firmware Task is HIGH-STAKES perCAPABILITIES.md ## Safety policy.Activation layer.
pldmtool fw_update GetFwParams -m {eid}still shows Pending differing from Active after the Task completed: identify that the component needs a power cycle, but do not treat it as a non-mutating debug correction. Stop this sweep, route the exact power cycle throughdoca-hardware-safety, obtain separate operator confirmation, and resume at## testonly after the approved action.Cloud-init layer (Grace-Ubuntu). The OS installed but the cloud-init seed did not apply: confirm the seed ISO volume label is exactly
CIDATAand that both the image and the seed were attached.Boot-loop layer. Grace re-enters the installer / Virtual Media on every reset: the install media was never detached. Detach all virtual media, confirm
"Inserted": false, and clear / re-point the boot override. This is the most common day-1 self-inflicted loop.
For any cross-cutting host-side issue on the machine that talks to the
BF4 (kernel, drivers, PCIe link state), drop to
doca-debug TASKS.md ## debug (doca-debug/TASKS.md#debug). For any
mutating recovery action (re-burn, reflash, factory reset), route to
doca-hardware-safety/SKILL.md.
Debug-loop bound. Walk the six-layer sweep once, apply at most one
evidence-backed, non-mutating correction: the exact failed observed
value must map to an explicit read-only/configuration remedy written
in that same numbered layer above; no inferred or cross-layer remedy
qualifies. Then re-run
## test.
If the same layer remains non-green, STOP and escalate with the bring-up
snapshot, Task resource and Messages, pldmtool output, and OOB-console
capture. Do not start another sweep or improvise a mutating recovery.
The activation-layer power cycle is a separately confirmed mutating
recovery, does not consume this non-mutating correction, and resumes at
## test rather than continuing the debug sweep. If that single
post-action test is not green, stop and escalate; do not re-enter
debug or request another power cycle.
Deferred task verbs
BlueField-3 (BF3) bring-up — out of scope here. This skill is BlueField-4-specific (Grace, the dpu-bmc Redfish surface, the BF4 install methods). Route to
doca-bf3-deployment.Running an application on an already-working BlueField — out of scope. A DOCA service container routes to
doca-container-deployment/SKILL.md; a DOCA-linked binary launched directly routes todoca-bare-metal-deployment/SKILL.md. This skill hands off once Grace is installed and firmware is at the target level.Library-API questions (constructing a DOCA-Flow pipe, an RDMA queue pair, interpreting a
DOCA_ERROR_*code) — out of scope. Route to the matchinglibs/<library>skill viadoca-public-knowledge-map ## Library- and module-specific guides(doca-public-knowledge-map/SKILL.md#library--and-module-specific-guides).Env preparation on the installed Grace OS (hugepages,
PKG_CONFIG_PATH/LD_LIBRARY_PATH, devlink mode, representor visibility) — out of scope here. Route todoca-setup ## configure(doca-setup/TASKS.md#configure); this skill stops at "Grace installed, firmware at target."The hardware-change meta-policy itself (preflight, OOB-console discipline, maintenance window, rollback for any PLDM burn / ISO reflash / power cycle / BMC factory reset) — owned by
doca-hardware-safety ## modify(doca-hardware-safety/TASKS.md#modify). This skill always loads it ALONGSIDE and adds only the BF4 sequencing; it never redefines the meta-policy.Fleet-scale / orchestrated DPU provisioning (DOCA Platform Framework, NVIDIA Network Operator) — out of scope per the bundle's non-goals. Route via
doca-public-knowledge-map ## Externally-productized DOCA software(doca-public-knowledge-map/SKILL.md#externally-productized-doca-software--not-in-this-bundle-but-here-is-where-to-route).
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
The author says: No DOCA install is required to read this skill; it teaches the documented BlueField-4 BMC-driven bring-up flows (UEFI HTTP Boot, PXE, Redfish Virtual Media, PLDM firmware update). Executing the steps requires a BlueField-4 with an out-of-band-reachable BMC, a host or HTTP/HTTPS server to host the bundle ISO, and the target versions from the public BlueField/DOCA release notes. The validation steps require a live DOCA install.
Security
What our scanner noticed· Medium risk
- Large base64-encoded blobs
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- NVIDIA
- Publisher
- NVIDIA (Official)
- Source
- NVIDIA/skills · skills/doca-bf4-deployment · commit fce3cca
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE-APACHE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by NVIDIA or NVIDIA.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download doca-bf4-deployment.zip