Firmware Update via Base Address Register Mapping
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


