coreboot/src/lib
Subrata Banik 6de8b42482 arch/x86: Refactor the SMBIOS type 17 write function
List of changes:
1. Create Module Type macros as per Memory Type
(i.e. DDR2/DDR3/DDR4/DDR5/LPDDR4/LPDDR5) and fix compilation
issue due to renaming of existing macros due to scoping the Memory
Type.
2. Use dedicated Memory Type and Module type for `Form Factor`
and `TypeDetail` conversion using `get_spd_info()` function.
3. Create a new API (convert_form_factor_to_module_type()) for
`Form Factor` to 'Module type' conversion as per `Memory Type`.
4. Add new argument as `Memory Type` to
smbios_form_factor_to_spd_mod_type() so that it can internally
call convert_form_factor_to_module_type() for `Module Type`
conversion.
5. Update `test_smbios_form_factor_to_spd_mod_type()` to
accommodate different memory types.
6. Skip fixed module type to form factor conversion using DDR2 SPD4
specification (inside dimm_info_fill()).

Refer to datasheet SPD4.1.2.M-1 for LPDDRx and SPD4.1.2.L-3 for DDRx.

BUG=b:194659789
TEST=Refer to dmidecode -t 17 output as below:
Without this code change:

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: 2048 MB
        Form Factor: Unknown
        ....

With this code change:

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: 2048 MB
        Form Factor: Row Of Chips
        ....

Change-Id: Ia337ac8f50b61ae78d86a07c7a86aa9c248bad50
Signed-off-by: Subrata Banik <subrata.banik@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/56628
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jakub Czapiga <jacz@semihalf.com>
Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
2021-11-11 09:10:10 +00:00
..
gnat
asan.c lib/asan.c: Update SPDX license 2021-02-01 08:53:22 +00:00
b64_decode.c
bmp_logo.c drivers/intel/fsp1_1,fsp2_0: Refactor logo display 2021-02-09 07:52:31 +00:00
boot_device.c
bootblock.c security/tpm: Add option to init TPM in bootblock 2021-05-06 08:26:41 +00:00
bootmem.c
bootmode.c
bootsplash.c
cb.ads
cbfs.c lib/cbfs: Add cbfs_preload() 2021-11-04 17:10:31 +00:00
cbmem_common.c
cbmem_console.c cbmem: Introduce "early" init hooks for console 2021-05-27 23:30:42 +00:00
cbmem_stage_cache.c
compute_ip_checksum.c
coreboot_table.c coreboot tables: Add type-c port info to coreboot table 2021-10-04 17:12:48 +00:00
crc_byte.c
decompressor.c decompressor: Add CBFS_VERIFICATION support 2021-04-06 07:49:15 +00:00
delay.c
device_tree.c src/acpi to src/lib: Fix spelling errors 2021-10-05 18:06:39 +00:00
dimm_info_util.c arch/x86: Refactor the SMBIOS type 17 write function 2021-11-11 09:10:10 +00:00
dp_aux.c google/trogdor: Add backlight support for Parade ps8640 2021-11-02 08:17:21 +00:00
edid.c src/acpi to src/lib: Fix spelling errors 2021-10-05 18:06:39 +00:00
edid_fill_fb.c lib/edid_fill_fb: Relax bits_per_pixel constraint 2021-01-24 11:18:23 +00:00
espi_debug.c lib/espi_debug: Add espi_show_slave_peripheral_channel_configuration 2021-04-23 21:20:26 +00:00
ext_stage_cache.c
fallback_boot.c
fit.c
fit_payload.c cbfs: Remove prog_locate() for payloads (SELF and FIT) 2021-03-17 00:13:53 +00:00
fmap.c src/lib/fmap.c: use le*toh() functions where needed 2021-10-27 14:55:51 +00:00
fw_config.c src/lib: Add FW_CONFIG_SOURCE_VPD 2021-11-08 14:48:05 +00:00
gcc.c
gcov-glue.c
gcov-io.c
gcov-io.h
gcov-iov.h
gpio.c
halt.c
hardwaremain.c lib/hardwaremain: change type of "complete" element in boot_state struct 2021-10-04 15:58:32 +00:00
hexdump.c lib/hexdump: remove hexdump32 and use hexdump instead 2021-05-27 15:41:15 +00:00
hexstrtobin.c
hw-time-timer.adb
imd.c
imd_cbmem.c
jpeg.c
jpeg.h
Kconfig Rename ECAM-specific MMCONF Kconfigs 2021-11-10 17:24:16 +00:00
Kconfig.cbfs_verification decompressor: Add CBFS_VERIFICATION support 2021-04-06 07:49:15 +00:00
libgcc.c
libgcov.c
list.c lib/list: Add list_append 2021-11-03 08:29:16 +00:00
lzma.c
lzmadecode.c
lzmadecode.h
Makefile.inc lib: Add list.c to all stages 2021-11-04 10:35:48 +00:00
malloc.c lib: Add obvious definition for calloc 2021-04-06 06:50:38 +00:00
memchr.c
memcmp.c
memcpy.c
memmove.c
memrange.c
memset.c
metadata_hash.c src: Drop "This file is part of the coreboot project" lines 2021-05-10 15:07:33 +00:00
nhlt.c src/acpi to src/lib: Fix spelling errors 2021-10-05 18:06:39 +00:00
primitive_memtest.c
prog_loaders.c lib/prog_loaders: Add payload_preload 2021-07-19 02:42:43 +00:00
prog_ops.c
program.ld cbmem: Introduce "early" init hooks for console 2021-05-27 23:30:42 +00:00
ramdetect.c
ramtest.c src: Remove useless comments in "includes" lines 2021-02-04 10:18:49 +00:00
reg_script.c
region_file.c src/acpi to src/lib: Fix spelling errors 2021-10-05 18:06:39 +00:00
reset.c
rmodule.c cbfs: Make mdata argument to cbfs_allocator_t const 2021-04-05 22:59:02 +00:00
rmodule.ld
romstage_handoff.c ACPI S3: Replace stashed acpi_slp_typ value 2021-01-23 20:19:47 +00:00
rtc.c lib/rtc: Add sanity check for time and date 2021-05-30 20:24:13 +00:00
selfboot.c selfboot: Add support for selfload in romstage 2021-07-02 00:47:23 +00:00
spd_bin.c spd_bin: Replace get_spd_cbfs_rdev() with spd_cbfs_map() 2021-03-17 08:10:35 +00:00
spd_cache.c
stack.c
string.c
thread.c lib/thread: Start stopwatch after printk 2021-11-10 21:17:28 +00:00
timer.c
timer_queue.c
timestamp.c
ubsan.c
uuid.c
version.c
wrdd.c