RDKDEV-1414 Add RDK Firmware Update Manager Documentation - #250
Open
gourivarma3 wants to merge 1 commit into
Open
RDKDEV-1414 Add RDK Firmware Update Manager Documentation#250gourivarma3 wants to merge 1 commit into
gourivarma3 wants to merge 1 commit into
Conversation
Author
|
I have read the CLA Document and I hereby sign the CLA |
satya200
requested changes
Jul 13, 2026
satya200
left a comment
Contributor
There was a problem hiding this comment.
Please rebase the branch and take a look into openspec folder. you will find all the documents. If anything miss please update in the same folder
Add comprehensive documentation for the RDK Firmware Update Manager, detailing its architecture, features, and operational workflows.
gourivarma3
force-pushed
the
feature/RDKDEV-1414
branch
from
July 29, 2026 06:11
e62e8ad to
794a123
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new, comprehensive docs/README.md describing the RDK Firmware Update Manager daemon and its client library, including architecture diagrams, module breakdown, IPC flows, and configuration details.
Changes:
- Introduces a detailed component overview (architecture, threading model, state flow, and call flows) with Mermaid diagrams.
- Documents internal modules and integration points (D-Bus, IARM, XConf/CDN, flash HAL).
- Adds configuration and runtime persistence details (RFC parameters, cache/status files, systemd dependencies).
Comments suppressed due to low confidence (4)
docs/README.md:60
- This bullet says the service is registered on the system bus under
org.rdkfwupdater.Interface, but the well-known bus name isorg.rdkfwupdater.Serviceand the interface isorg.rdkfwupdater.Interface(seesrc/dbus/rdkv_dbus_server.h). Consider documenting service name + object path + interface to avoid confusion.
- **D-Bus Service Interface**: A GDBus-based service is registered on the system bus under `org.rdkfwupdater.Interface`. It exposes methods (`RegisterProcess`, `UnregisterProcess`, `CheckForUpdate`, `DownloadFirmware`, `UpdateFirmware`) and emits signals (`CheckForUpdateComplete`, `DownloadProgress`, `UpdateProgress`) for asynchronous operation results.
docs/README.md:153
- The synchronization description is inaccurate/misleading: the XConf cache is protected via GLib
G_LOCK(xconf_data_cache)(not aGMutexnamedg_xconf_data_cache), andmutuex_dwnl_state/app_mode_statusarepthread_mutex_t(seesrc/rdkFwupdateMgr.c/src/rdkv_main.c). Also,GHashTabledoesn’t provide “built-in reference counting” for entries; it’s just used as a container with destroy callbacks.
- **Synchronization**: `GMutex` protects the global XConf data cache (`g_xconf_data_cache`), the XConf in-progress status (`xconf_comm_status`), the download state (`mutuex_dwnl_state`), and the application mode state (`app_mode_status`). `GHashTable` with GLib's built-in reference counting is used for client registration tracking.
docs/README.md:204
- In this sequence diagram the daemon is shown registering
org.rdkfwupdater.Interface, but the name owned on the bus isorg.rdkfwupdater.Service(the interface isorg.rdkfwupdater.Interface). Aligning the diagram with the actual D-Bus naming avoids confusion when tracing name ownership.
Daemon->>DBus: Register org.rdkfwupdater.Interface
DBus-->>Daemon: Name acquired
docs/README.md:258
- This call flow says
org.rdkfwupdater.Interfaceis acquired, but the well-known name acquired isorg.rdkfwupdater.Service(seeBUS_NAMEinsrc/dbus/rdkv_dbus_server.h). The interface is exposed under that service name.
Daemon->>DBus: register_dbus_service()
DBus-->>Daemon: org.rdkfwupdater.Interface acquired
Daemon->>Daemon: g_main_loop_run()
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+46
to
+48
| Apps -->|"librdkFwupdateMgr API"| FwLib | ||
| FwLib -->|"D-Bus (system bus)\norg.rdkfwupdater.Interface"| FwMgr | ||
| FwMgr -->|"HTTP POST"| XConf |
|
|
||
| subgraph CoreOps ["Core Operations"] | ||
| Upgrade["rdkv_upgrade.c\nDownload orchestration\nDirect / CodeBig paths"] | ||
| Flash["flash.c\nflaşhImage() → librdksw_flash.so\nPCI / PDRI / Peripheral"] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Added comprehensive documentation for the RDK Firmware Update Manager, detailing its architecture, features, and operational workflows.