blob: 8b62ebba14704024ef8dba3da7d3ae498fb7b9a8 [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>
6#include <string.h>
7
8/* this function will fill the corresponding locator */
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
Tim Chu31b42092020-12-23 19:15:21 -080021__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
Tim Chu13ab1d72021-10-19 01:45:12 +000030__weak smbios_wakeup_type smbios_system_wakeup_type(void)
31{
32 return SMBIOS_WAKEUP_TYPE_RESERVED;
33}
34
Angel Ponsbea5ce72020-07-29 18:40:00 +020035__weak const char *smbios_mainboard_bios_version(void)
36{
37 return NULL;
38}
39
40__weak const char *smbios_mainboard_serial_number(void)
41{
42 return CONFIG_MAINBOARD_SERIAL_NUMBER;
43}
44
45__weak const char *smbios_mainboard_version(void)
46{
47 return CONFIG_MAINBOARD_VERSION;
48}
49
50__weak const char *smbios_mainboard_manufacturer(void)
51{
52 return CONFIG_MAINBOARD_SMBIOS_MANUFACTURER;
53}
54
55__weak const char *smbios_mainboard_product_name(void)
56{
57 return CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME;
58}
59
60__weak const char *smbios_mainboard_asset_tag(void)
61{
62 return "";
63}
64
65__weak u8 smbios_mainboard_feature_flags(void)
66{
67 return 0;
68}
69
70__weak const char *smbios_mainboard_location_in_chassis(void)
71{
72 return "";
73}
74
75__weak smbios_board_type smbios_mainboard_board_type(void)
76{
Angel Ponsd37cfb72021-01-31 15:33:17 +010077 return SMBIOS_BOARD_TYPE_MOTHERBOARD;
Angel Ponsbea5ce72020-07-29 18:40:00 +020078}
79
Tim Chuf2f53c42020-09-07 02:30:19 -070080__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
Angel Ponsbea5ce72020-07-29 18:40:00 +020086/*
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 */
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
106__weak const char *smbios_system_serial_number(void)
107{
108 return smbios_mainboard_serial_number();
109}
110
111__weak const char *smbios_system_version(void)
112{
113 return smbios_mainboard_version();
114}
115
116__weak const char *smbios_system_manufacturer(void)
117{
118 return smbios_mainboard_manufacturer();
119}
120
121__weak const char *smbios_system_product_name(void)
122{
123 return smbios_mainboard_product_name();
124}
125
126__weak void smbios_system_set_uuid(u8 *uuid)
127{
128 /* leave all zero */
129}
130
131__weak unsigned int smbios_cpu_get_max_speed_mhz(void)
132{
133 return 0; /* Unknown */
134}
135
136__weak unsigned int smbios_cpu_get_current_speed_mhz(void)
137{
138 return 0; /* Unknown */
139}
140
141__weak const char *smbios_system_sku(void)
142{
143 return "";
144}
145
146__weak const char *smbios_chassis_version(void)
147{
148 return "";
149}
150
151__weak const char *smbios_chassis_serial_number(void)
152{
153 return "";
154}
155
156__weak const char *smbios_processor_serial_number(void)
157{
158 return "";
159}
JingleHsuWiwynn4330b962021-01-28 09:13:42 +0800160
161__weak u8 smbios_chassis_power_cords(void)
162{
163 return 1;
164}