diff --git a/doc/smart-switch/pmon/smartswitch-pmon.md b/doc/smart-switch/pmon/smartswitch-pmon.md
index b26e5d021be..b9bbbb29d3d 100644
--- a/doc/smart-switch/pmon/smartswitch-pmon.md
+++ b/doc/smart-switch/pmon/smartswitch-pmon.md
@@ -8,6 +8,7 @@
| 0.4 | 06/06/2024 | Ramesh Raghupathy | Added schema for DPU health-info and called out phase:1 and phase:2 activities for DPU health-info. Added key suffix to module reboot-cause to avoid key conflicts |
| 0.5 | 04/30/2025 | Gagan Punathil Ellath | Added Post Startup and Pre shutdown sections for DPU |
| 0.6 | 06/12/2025 | Gagan Punathil Ellath | DPU State Management Implementation |
+| 0.7 | 06/11/2026 | Charles Tsai | Updated DPU reboot-cause and midplane-down reason |
## Definitions / Abbreviations
@@ -614,9 +615,10 @@ The smartswitch needs to know the reboot cause for the NPU and the DPUs.
```
#### DPU Reboot Cause
* The smartswitch needs to know the reboot cause for all the DPUs.
-* The NPU hardware should be capable of providing the DPU reboot-cause even when the DPUs are dead.
+* The reboot-cause can be captured by the platforms at the appropriate time. The reboot-cause should be reported only when the midplane of DPU transitions to online by calling the `get_reboot_cause` API.
+* Each DPU SONiC publishes a `boot_id` (a fresh UUID generated per boot from `/proc/sys/kernel/random/boot_id`) into its `DPU_STATE` entry in CHASSIS_STATE_DB. The NPU chassisd compares the reported `boot_id` against the last `boot_id` it persisted; when they differ, the NPU chassisd calls `get_reboot_cause()`, writes a history record containing the cause and the `boot_id`, and then refreshes the `REBOOT_CAUSE` entries in CHASSIS_STATE_DB from those records. A changed `boot_id` can only become visible on the NPU once the DPU is reachable and able to write into the NPU's CHASSIS_STATE_DB, so the reported reboot-cause is naturally aligned with the midplane coming online.
* The get_reboot_cause will return the current reboot-cause of the module.
-* For persistent storage of the DPU reboot-cause and reboot-cause-history files use the existing mechanism and host storage path under "/host/reboot-cause/module/dpux".
+* Persistent DPU reboot-cause records are stored under `/host/reboot-cause/module/dpux/history/`, and each record includes the `boot_id`. The `previous-reboot-cause.json` symlink identifies the latest record and provides the persisted `boot_id` baseline. Unlike the NPU workflow, DPU capture does not use `module/dpux/reboot-cause.txt`.
* The storage and retrieval of the reboot-cause of the Switch and PDUs are shown in the sequence diagram
@@ -625,12 +627,9 @@ The smartswitch needs to know the reboot cause for the NPU and the DPUs.
* The switch boots up. Determines the NPU reboot cause.
* Processes the previously stored NPU and DPU reboot-cause files and history files.
* A maximum of ten reboot-cause history entries per dpu will be persisted just like the npu.
-* Updates the NPU reboot-cause into the StateDB and the DPU reboot-cause into the ChassisStateDB.
+* The reboot-cause service (`process-reboot-cause`) updates the NPU reboot-cause in StateDB and rebuilds the DPU `REBOOT_CAUSE|DPUx|