xref: /aosp_15_r20/external/coreboot/src/lib/smbios_defaults.c (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <memory_info.h>
4 #include <smbios.h>
5 #include <stdint.h>
6 #include <stdio.h>
7 
8 /* this function will fill the corresponding locator */
smbios_fill_dimm_locator(const struct dimm_info * dimm,struct smbios_type17 * t)9 __weak void smbios_fill_dimm_locator(const struct dimm_info *dimm, struct smbios_type17 *t)
10 {
11 	char locator[40];
12 
13 	snprintf(locator, sizeof(locator), "Channel-%d-DIMM-%d",
14 		dimm->channel_num, dimm->dimm_num);
15 	t->device_locator = smbios_add_string(t->eos, locator);
16 
17 	snprintf(locator, sizeof(locator), "BANK %d", dimm->bank_locator);
18 	t->bank_locator = smbios_add_string(t->eos, locator);
19 }
20 
smbios_fill_dimm_asset_tag(const struct dimm_info * dimm,struct smbios_type17 * t)21 __weak void smbios_fill_dimm_asset_tag(const struct dimm_info *dimm, struct smbios_type17 *t)
22 {
23 	char buf[40];
24 
25 	snprintf(buf, sizeof(buf), "Channel-%d-DIMM-%d-AssetTag",
26 		dimm->channel_num, dimm->dimm_num);
27 	t->asset_tag = smbios_add_string(t->eos, buf);
28 }
29 
smbios_system_wakeup_type(void)30 __weak smbios_wakeup_type smbios_system_wakeup_type(void)
31 {
32 	return SMBIOS_WAKEUP_TYPE_RESERVED;
33 }
34 
smbios_mainboard_bios_version(void)35 __weak const char *smbios_mainboard_bios_version(void)
36 {
37 	return NULL;
38 }
39 
smbios_mainboard_serial_number(void)40 __weak const char *smbios_mainboard_serial_number(void)
41 {
42 	return CONFIG_MAINBOARD_SERIAL_NUMBER;
43 }
44 
smbios_mainboard_version(void)45 __weak const char *smbios_mainboard_version(void)
46 {
47 	return CONFIG_MAINBOARD_VERSION;
48 }
49 
smbios_mainboard_manufacturer(void)50 __weak const char *smbios_mainboard_manufacturer(void)
51 {
52 	return CONFIG_MAINBOARD_SMBIOS_MANUFACTURER;
53 }
54 
smbios_mainboard_product_name(void)55 __weak const char *smbios_mainboard_product_name(void)
56 {
57 	return CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME;
58 }
59 
smbios_mainboard_asset_tag(void)60 __weak const char *smbios_mainboard_asset_tag(void)
61 {
62 	return "";
63 }
64 
smbios_mainboard_feature_flags(void)65 __weak u8 smbios_mainboard_feature_flags(void)
66 {
67 	return 0;
68 }
69 
smbios_mainboard_location_in_chassis(void)70 __weak const char *smbios_mainboard_location_in_chassis(void)
71 {
72 	return "";
73 }
74 
smbios_mainboard_board_type(void)75 __weak smbios_board_type smbios_mainboard_board_type(void)
76 {
77 	return SMBIOS_BOARD_TYPE_MOTHERBOARD;
78 }
79 
smbios_ec_revision(uint8_t * ec_major_revision,uint8_t * ec_minor_revision)80 __weak void smbios_ec_revision(uint8_t *ec_major_revision, uint8_t *ec_minor_revision)
81 {
82 	*ec_major_revision = 0x0;
83 	*ec_minor_revision = 0x0;
84 }
85 
86 /*
87  * System Enclosure or Chassis Types as defined in SMBIOS specification.
88  * The default value is SMBIOS_ENCLOSURE_DESKTOP (0x03) but laptop,
89  * convertible, or tablet enclosure will be used if the appropriate
90  * system type is selected.
91  */
smbios_mainboard_enclosure_type(void)92 __weak smbios_enclosure_type smbios_mainboard_enclosure_type(void)
93 {
94 	if (CONFIG(SYSTEM_TYPE_LAPTOP))
95 		return SMBIOS_ENCLOSURE_LAPTOP;
96 	else if (CONFIG(SYSTEM_TYPE_TABLET))
97 		return SMBIOS_ENCLOSURE_TABLET;
98 	else if (CONFIG(SYSTEM_TYPE_CONVERTIBLE))
99 		return SMBIOS_ENCLOSURE_CONVERTIBLE;
100 	else if (CONFIG(SYSTEM_TYPE_DETACHABLE))
101 		return SMBIOS_ENCLOSURE_DETACHABLE;
102 	else
103 		return SMBIOS_ENCLOSURE_DESKTOP;
104 }
105 
smbios_system_serial_number(void)106 __weak const char *smbios_system_serial_number(void)
107 {
108 	return smbios_mainboard_serial_number();
109 }
110 
smbios_system_version(void)111 __weak const char *smbios_system_version(void)
112 {
113 	return smbios_mainboard_version();
114 }
115 
smbios_system_manufacturer(void)116 __weak const char *smbios_system_manufacturer(void)
117 {
118 	return smbios_mainboard_manufacturer();
119 }
120 
smbios_system_product_name(void)121 __weak const char *smbios_system_product_name(void)
122 {
123 	return smbios_mainboard_product_name();
124 }
125 
smbios_system_set_uuid(u8 * uuid)126 __weak void smbios_system_set_uuid(u8 *uuid)
127 {
128 	/* leave all zero */
129 }
130 
smbios_cpu_get_max_speed_mhz(void)131 __weak unsigned int smbios_cpu_get_max_speed_mhz(void)
132 {
133 	return 0; /* Unknown */
134 }
135 
smbios_cpu_get_current_speed_mhz(void)136 __weak unsigned int smbios_cpu_get_current_speed_mhz(void)
137 {
138 	return 0; /* Unknown */
139 }
140 
smbios_system_sku(void)141 __weak const char *smbios_system_sku(void)
142 {
143 	return "";
144 }
145 
smbios_chassis_version(void)146 __weak const char *smbios_chassis_version(void)
147 {
148 	return "";
149 }
150 
smbios_chassis_serial_number(void)151 __weak const char *smbios_chassis_serial_number(void)
152 {
153 	return "";
154 }
155 
smbios_processor_serial_number(void)156 __weak const char *smbios_processor_serial_number(void)
157 {
158 	return "";
159 }
160 
smbios_chassis_power_cords(void)161 __weak u8 smbios_chassis_power_cords(void)
162 {
163 	return 1;
164 }
165