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