BMC Runtime Debug Code Download via Remote File System
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In the embedded world, reproducing firmware errors in BMCs is challenging due to time-critical code interacting with various system components and environmental conditions, making it difficult to debug issues without altering the existing firmware image or environment.
Innovation Solution
A system and method that allows a BMC to request and execute remote debug and diagnostic code via a network, enabling on-site debugging without interrupting the BMC's operation, using a remote file system like NFS or CIFS to load and execute debug modules, and generate fixed code to update the firmware.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of repair
If debug code is downloaded and executed in the BMC volatile memory, then on-site debugging capability is enabled without altering the firmware image, but the BMC device complexity increases due to remote file system mounting and code execution mechanisms
Solution Approach 1:
The patent introduces a remote file system (NFS or CIFS) as an intermediary between the BMC and the debug code storage. The BMC mounts the remote file system and executes debug code downloaded from it, allowing on-site debugging without modifying the firmware image. This intermediary mechanism enables debugging capability while keeping the core firmware intact.
Solution Approach 2:
The patent segments the debugging functionality into separate downloadable code modules rather than embedding them in the firmware. The BMC can selectively download and execute only the necessary debug code from the remote file system, enabling debugging without altering the permanent firmware image stored in non-volatile memory.
2Reliability
If the BMC mounts a remote file system to access debug code, then non-intrusive debugging is achieved, but the loss of time increases due to network download and mounting operations
Solution Approach 1:
The patent implements preliminary action by pre-configuring the BMC with the capability to mount remote file systems (NFS or CIFS) and download debug code. The debugging environment is prepared in advance on remote systems, so when debugging is needed, the BMC can quickly mount the file system and download the required code without extensive setup time.
Solution Approach 2:
The BMC performs self-service by automatically mounting the remote file system, downloading the debug code, and executing it without requiring external intervention. The system autonomously handles the debugging setup process, reducing the time loss associated with manual configuration and deployment.
3Measurement precision
If debug code is executed in the BMC volatile memory, then error tracking in the actual environment is enabled, but the device complexity increases due to code loading and execution mechanisms
Solution Approach 1:
The patent uses copying by downloading a copy of the debug code from the remote file system to the BMC's volatile memory for execution. The original firmware image remains unchanged in non-volatile memory, while the copied debug code runs in volatile memory, enabling error tracking in the actual deployment environment without modifying the permanent firmware.
Data Source
AI summary
A system includes a baseboard management controller (BMC) and a remote computing device communicatively connected to the BMC via a network. The BMC includes a processor, a volatile memory, and a non-volatile memory storing a firmware. The remote computing device includes first and second computer executable code. The firmware, when executed at the processor, is configured to: in response to a debug command, request, receive, and execute the first computer executable code. The first computer executable code, when executed at the processor, is configured to mount a remote file system to the BMC corresponding to the second computer executable code, such that the second computer executable code is accessible to the BMC, retrieve the second computer executable code, and execute the second computer executable code at the BMC to perform an on-site debug process without interrupting operation of the firmware.


