soc/intel/pantherlake: Populate and pass DRAM info for SMBIOS
commitbc8cc460550364c16ae00b00e19fd8c033ec175c
authorSubrata Banik <subratabanik@google.com>
Mon, 28 Oct 2024 20:41:56 +0000 (29 02:11 +0530)
committerSubrata Banik <subratabanik@google.com>
Wed, 30 Oct 2024 07:22:23 +0000 (30 07:22 +0000)
treeed56e4b04be7c8b46720b0dfd7b08e2434b40622
parent59bf7dd62fa121f6d98143a93dd48f745e404165
soc/intel/pantherlake: Populate and pass DRAM info for SMBIOS

This patch implements the `save_dimm_info()` API to populate and pass
DRAM-related information to the next stage. This information
is used to generate the SMBIOS memory table, providing details about
installed DIMMs.

This addresses the issue where SMBIOS lacked detailed DIMM information.

Verified that `dmidecode` correctly dumps the DIMM information from the
SMBIOS table after this change.

BUG=b:376103463
TEST=Built and booted successfully. Verified DIMM info in SMBIOS using
`dmidecode`.

> dmidecode -t 17

```
Getting SMBIOS data from sysfs.
SMBIOS 3.0 present.

Handle 0x000B, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x000A
        Error Information Handle: Not Provided
        Total Width: 16 bits
        Data Width: 16 bits
        Size: 2 GB
        Form Factor: Row Of Chips
        Set: None
        Locator: Channel-0-DIMM-0
        Bank Locator: BANK 0
        Type: LPDDR5
        Type Detail: Unknown Synchronous
        Speed: 6400 MT/s
        Manufacturer: Hynix
        Serial Number: 00000000
        Asset Tag: Channel-0-DIMM-0-AssetTag
        Part Number: H58G56BK7BX068
        Rank: 1
        Configured Memory Speed: 6400 MT/s
        Minimum Voltage: 0.5 V
        Maximum Voltage: 0.5 V
        Configured Voltage: 0.5 V
...
...

Handle 0x0012, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x000A
        Error Information Handle: Not Provided
        Total Width: 16 bits
        Data Width: 16 bits
        Size: 2 GB
        Form Factor: Row Of Chips
        Set: None
        Locator: Channel-3-DIMM-0
        Bank Locator: BANK 0
        Type: LPDDR5
        Type Detail: Unknown Synchronous
        Speed: 6400 MT/s
        Manufacturer: Hynix
        Serial Number: 00000000
        Asset Tag: Channel-3-DIMM-0-AssetTag
        Part Number: H58G56BK7BX068
        Rank: 1
        Configured Memory Speed: 6400 MT/s
        Minimum Voltage: 0.5 V
        Maximum Voltage: 0.5 V
        Configured Voltage: 0.5 V
```

Change-Id: I3b942610272de401589ee0463de9cd0985974774
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84903
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Pranava Y N <pranavayn@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
src/soc/intel/pantherlake/romstage/romstage.c