SPD Table Loading via GPIO Jumper Settings
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computer systems face inefficiencies and increased costs due to the need for multiple serial presence detect (SPD) tables for various memory configurations, requiring complex and costly methods to determine which SPD table to load during boot-up.
Innovation Solution
Utilizing general-purpose input/output (GPIO) pins as memory configuration flags, where jumper settings across these pins indicate the memory configuration, allowing the firmware to determine and load the appropriate SPD table from a plurality of stored tables in non-volatile random access memory (NVRAM).
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If multiple SPD tables are stored for different memory configurations, then memory configuration accuracy is improved, but device complexity and manufacturing cost increase
Solution Approach 1:
The single SPD table is segmented into multiple version-specific SPD tables (first version SPD table and second version SPD table) stored at different memory locations. The firmware segments the lookup process by first determining system version through GPIO pin states, then selecting the appropriate version-specific SPD table. This segmentation allows accurate memory configuration for different system versions while maintaining a structured, manageable firmware architecture.
Solution Approach 2:
The system performs preliminary version detection by checking GPIO pin states before loading the SPD table. The firmware preliminarily determines which version of the computer system is present, then uses this information to select the appropriate SPD table version. This preliminary action prevents the need for complex runtime detection and ensures the correct SPD table is loaded from the start.
2Measurement precision
If multiple SPD tables are stored for different memory configurations, then memory configuration accuracy is improved, but manufacturing cost increases
Solution Approach 1:
The firmware is designed with universal functionality to support multiple system versions through a single codebase. The same firmware image can serve both first version and second version computer systems by detecting GPIO pin states and automatically selecting the appropriate version-specific SPD table. This universality eliminates the need for separate firmware images for different versions, reducing manufacturing complexity and cost while maintaining accurate memory configuration support.
Solution Approach 2:
The system uses GPIO pin state parameters as indicators to differentiate between system versions. By changing the electrical state (high/low) of specific GPIO pins during manufacturing, the system can indicate which version it is without requiring hardware changes. This parameter-based version identification simplifies manufacturing processes and reduces costs compared to physical hardware differentiation.
3Ease of manufacture
If GPIO pins are used as memory configuration flags, then ease of manufacture is improved, but device complexity increases
Solution Approach 1:
The GPIO pins are configured to automatically indicate system version information through their electrical states without requiring external intervention or complex configuration. The firmware simply reads the GPIO pin states and uses them to determine the appropriate SPD table version. This self-service approach simplifies manufacturing (as the GPIO configuration is straightforward) while the firmware logic efficiently handles the version detection and SPD table selection.
Data Source
AI summary
Technologies are disclosed herein for configuring a system memory of a computer system by determining which, of a plurality, of serial presence detect (SPD) tables to utilize, based at least in part on settings of one or more GPIO pins. The computer system may be available with variations of the configuration of system memory. The SPD tables corresponding to each of the different configurations of the system memory may be stored on the computer system, such as on an NVRAM of the computer system. After identifying the appropriate SPD table, a processor may load the SPD table to a memory reference code of the computer system. In some cases, the state GPIO pins indicating the system memory configuration is set at the time of manufacture of the computer system.


