Firmware Update via Base Address Register Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Updating firmware for programmable integrated circuits (ICs) in large computing environments, such as data centers and cloud computing, is impractical due to the manual nature of existing methods, which require matching specific versions of electronic design automation (EDA) applications and drivers with the programmable ICs, and can be cumbersome with multiple versions of accelerator cards and firmware.

Innovation Solution

A method and system that use a processor to determine the base address register of an accelerator card, map feature PROM and flash programmer circuits to local memory, read the programming mode, and provide firmware to the flash programmer circuit over a communication bus, allowing for firmware updates without requiring specific drivers or EDA applications, and enabling updates across multiple versions of programmable ICs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If manual firmware updating methods are used (JTAG cable connection or EDA application), then firmware can be updated, but the process becomes impractical and time-consuming in large-scale computing environments with numerous programmable ICs

Engineering Contradiction:
Improvefirmware update throughputVSAvoidfirmware update time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system enables self-service firmware updates by allowing the host system to automatically detect accelerator cards, retrieve appropriate firmware versions, and perform updates through standard communication buses without requiring manual JTAG cable connections or specialized EDA software. The accelerator card itself participates in the update process by responding to host commands and receiving firmware directly.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The invention replaces the mechanical JTAG cable connection system with an electronic communication bus-based system. Instead of physically connecting cables to JTAG ports on each accelerator card, the system uses standard communication buses (such as PCIe) to transmit firmware and control signals electronically, eliminating the need for manual physical connections.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If specific versions of EDA applications and drivers are used to ensure compatibility with particular accelerator cards and firmware versions, then firmware updating can be performed, but the complexity of managing multiple versions across many computers increases significantly

Engineering Contradiction:
Improvefirmware update compatibilityVSAvoidsoftware version management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system achieves universality by designing a firmware update mechanism that works across different accelerator card models and firmware versions through a common interface. The host system can universally apply the same update procedure to various accelerator cards without requiring model-specific EDA applications or drivers, as the communication bus provides a standardized pathway for all updates.

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

Solution Approach 2:

The communication bus acts as an intermediary between the host system and accelerator cards, mediating the firmware update process. Instead of requiring direct interaction between EDA software and specific hardware versions, the communication bus translates and standardizes interactions, allowing the host system to manage updates uniformly across diverse accelerator card configurations.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If manual firmware updating procedures are employed, then firmware can be updated on individual accelerator cards, but the ease of operation deteriorates when dealing with large numbers of accelerator cards across multiple computers

Engineering Contradiction:
Improvefirmware update simplicityVSAvoidfirmware update efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system enables self-service firmware updates by allowing the host system to automatically detect accelerator cards, retrieve appropriate firmware versions, and perform updates through standard communication buses without requiring manual JTAG cable connections or specialized EDA software. The accelerator card itself participates in the update process by responding to host commands and receiving firmware directly.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The invention replaces the mechanical JTAG cable connection system with an electronic communication bus-based system. Instead of physically connecting cables to JTAG ports on each accelerator card, the system uses standard communication buses (such as PCIe) to transmit firmware and control signals electronically, eliminating the need for manual physical connections.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS10922068B1Updating firmware for programmable integrated circuits in computing environments
Publication Date: 2021.02.16 XILINX INC
  • US10922068B1 patent drawing
  • US10922068B1 patent drawing
  • US10922068B1 patent drawing

AI summary

Updating firmware in an programmable integrated circuit (IC) includes determining, using a processor of a computer, a base address register (BAR) of an accelerator card from a device data file, wherein the accelerator card includes a programmable IC and is connected to the computer via a communication bus, mapping, using the processor, a feature PROM and a flash programmer circuit of the programmable IC to local memory of the computer using the BAR, and reading, over the communication bus, the feature PROM on the programmable IC to determine a programming mode for programming an external flash memory coupled to the flash programmer circuit. Based on the programming mode and using the processor, firmware is provided to the flash programmer circuit on the programmable IC via the communication bus. The flash programmer circuit is configured to program the firmware into the external flash memory.