Firmware Debugger for Device Driver Identification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Information handling systems face challenges in identifying device drivers, especially third-party drivers, which can lead to difficulties in debugging and troubleshooting due to unknown attributes and lack of symbols, resulting in inefficiencies for testers and IT personnel.

Innovation Solution

A debugger tool is integrated into the information handling system firmware to detect processor exceptions, determine the address of memory media associated with exceptions, and search for device driver identification within address spaces using ASCII characters or Efi Component Name2 Protocol, providing identification information even if symbols are not available.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If device drivers are loaded in memory medium without symbols, then device driver functionality is provided, but identification of device drivers becomes difficult

Engineering Contradiction:
Improvedebugging efficiencyVSAvoiddevice driver identification information
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The system performs preliminary actions by determining device driver address spaces before an exception occurs or before debugging is needed. The debugger tool pre-identifies and stores the address spaces of loaded device drivers in memory, so that when an exception occurs, the identification process can quickly map the exception address to the corresponding device driver without needing to scan all memory at debugging time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism - a protocol buffer or data structure that stores the mapping between device driver names and their address spaces. This intermediary table acts as a mediator between the raw memory addresses and the human-readable device driver identifiers, enabling efficient lookup and identification without requiring symbols or manual decoding.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If manual decoding of memory addresses is performed, then device driver identification can be achieved, but time consumption increases

Engineering Contradiction:
Improvedevice driver identification accuracyVSAvoidtroubleshooting time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system pre-determines and stores device driver address spaces in a lookup table before troubleshooting is needed. When an exception occurs, the debugger tool immediately queries this pre-prepared table using the exception address, eliminating the need for time-consuming manual decoding while maintaining accurate device driver identification.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a copy or representation of the device driver address space mapping in a structured format (protocol buffer) that can be quickly queried. Instead of analyzing raw memory contents during troubleshooting, the system uses this copied structural representation to rapidly identify the device driver associated with an exception address.

Inventive Principle:
Principle #26Copying

3Productivity

If device driver identification is not automated, then system complexity is reduced, but debugging efficiency decreases

Engineering Contradiction:
Improvedebugging efficiencyVSAvoiddebugger tool complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The debugger tool is designed with multi-functionality, integrating exception handling, address space determination, device driver identification, and information output capabilities into a single unified tool. This universal debugger automatically performs device driver identification as part of its exception handling function, improving debugging efficiency without requiring separate manual processes.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system implements self-service automation where the debugger tool automatically determines device driver address spaces, queries the identification information from the protocol buffer, and outputs the results without requiring manual intervention. The tool serves itself by autonomously completing the identification process, reducing the need for manual decoding while managing the complexity through automation.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10621112B2System and method of identifying a device driver
Publication Date: 2020.04.14 DELL PROD LP
  • US10621112B2 patent drawing
  • US10621112B2 patent drawing
  • US10621112B2 patent drawing

AI summary

In one or more embodiments, one or more systems, methods, and processes determine an address of a memory medium of an information handling system associated with an exception; determine respective address spaces of the device drivers loaded in the memory medium; determine an address space of address spaces that includes the address associated with the exception; determine a device driver of the device drivers based at least on the address space; query the device driver for an identification of the device driver; determine if the device driver provides the identification of the device driver; if the device driver provides the identification of the device driver, output the identification of the device driver and exception information associated with the exception; and if the device driver does not provide the identification of the device driver, search for identification information of the device driver within the address space.