Skip to content

RDKDEV-1414 Add RDK Firmware Update Manager Documentation - #250

Open
gourivarma3 wants to merge 1 commit into
rdkcentral:developfrom
gourivarma3:feature/RDKDEV-1414
Open

RDKDEV-1414 Add RDK Firmware Update Manager Documentation#250
gourivarma3 wants to merge 1 commit into
rdkcentral:developfrom
gourivarma3:feature/RDKDEV-1414

Conversation

@gourivarma3

Copy link
Copy Markdown

Added comprehensive documentation for the RDK Firmware Update Manager, detailing its architecture, features, and operational workflows.

@gourivarma3
gourivarma3 requested a review from a team as a code owner June 3, 2026 09:43
@gourivarma3 gourivarma3 changed the title Added README.md for RDK Firmware Update Manager RDKDEV-1414 Add RDK Firmware Update Manager Documentation Jun 3, 2026
@gourivarma3

Copy link
Copy Markdown
Author

I have read the CLA Document and I hereby sign the CLA

@satya200 satya200 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
gourivarma3 force-pushed the feature/RDKDEV-1414 branch from e62e8ad to 794a123 Compare July 29, 2026 06:11
Copilot AI review requested due to automatic review settings July 29, 2026 06:11

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 is org.rdkfwupdater.Service and the interface is org.rdkfwupdater.Interface (see src/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 a GMutex named g_xconf_data_cache), and mutuex_dwnl_state / app_mode_status are pthread_mutex_t (see src/rdkFwupdateMgr.c / src/rdkv_main.c). Also, GHashTable doesn’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 is org.rdkfwupdater.Service (the interface is org.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.Interface is acquired, but the well-known name acquired is org.rdkfwupdater.Service (see BUS_NAME in src/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 thread docs/README.md
Comment on lines +46 to +48
Apps -->|"librdkFwupdateMgr API"| FwLib
FwLib -->|"D-Bus (system bus)\norg.rdkfwupdater.Interface"| FwMgr
FwMgr -->|"HTTP POST"| XConf
Comment thread docs/README.md

subgraph CoreOps ["Core Operations"]
Upgrade["rdkv_upgrade.c\nDownload orchestration\nDirect / CodeBig paths"]
Flash["flash.c\nflaşhImage() → librdksw_flash.so\nPCI / PDRI / Peripheral"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants