blob: 4d8883f3cd43e5f9b29e73c327250f88c82109c2 [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
21__weak const char *smbios_mainboard_bios_version(void)
22{
23 return NULL;
24}
25
26__weak const char *smbios_mainboard_serial_number(void)
27{
28 return CONFIG_MAINBOARD_SERIAL_NUMBER;
29}
30
31__weak const char *smbios_mainboard_version(void)
32{
33 return CONFIG_MAINBOARD_VERSION;
34}
35
36__weak const char *smbios_mainboard_manufacturer(void)
37{
38 return CONFIG_MAINBOARD_SMBIOS_MANUFACTURER;
39}
40
41__weak const char *smbios_mainboard_product_name(void)
42{
43 return CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME;
44}
45
46__weak const char *smbios_mainboard_asset_tag(void)
47{
48 return "";
49}
50
51__weak u8 smbios_mainboard_feature_flags(void)
52{
53 return 0;
54}
55
56__weak const char *smbios_mainboard_location_in_chassis(void)
57{
58 return "";
59}
60
61__weak smbios_board_type smbios_mainboard_board_type(void)
62{
63 return SMBIOS_BOARD_TYPE_UNKNOWN;
64}
65
Tim Chuf2f53c42020-09-07 02:30:19 -070066__weak void smbios_ec_revision(uint8_t *ec_major_revision, uint8_t *ec_minor_revision)
67{
68 *ec_major_revision = 0x0;
69 *ec_minor_revision = 0x0;
70}
71
Angel Ponsbea5ce72020-07-29 18:40:00 +020072/*
73 * System Enclosure or Chassis Types as defined in SMBIOS specification.
74 * The default value is SMBIOS_ENCLOSURE_DESKTOP (0x03) but laptop,
75 * convertible, or tablet enclosure will be used if the appropriate
76 * system type is selected.
77 */
78__weak smbios_enclosure_type smbios_mainboard_enclosure_type(void)
79{
80 if (CONFIG(SYSTEM_TYPE_LAPTOP))
81 return SMBIOS_ENCLOSURE_LAPTOP;
82 else if (CONFIG(SYSTEM_TYPE_TABLET))
83 return SMBIOS_ENCLOSURE_TABLET;
84 else if (CONFIG(SYSTEM_TYPE_CONVERTIBLE))
85 return SMBIOS_ENCLOSURE_CONVERTIBLE;
86 else if (CONFIG(SYSTEM_TYPE_DETACHABLE))
87 return SMBIOS_ENCLOSURE_DETACHABLE;
88 else
89 return SMBIOS_ENCLOSURE_DESKTOP;
90}
91
92__weak const char *smbios_system_serial_number(void)
93{
94 return smbios_mainboard_serial_number();
95}
96
97__weak const char *smbios_system_version(void)
98{
99 return smbios_mainboard_version();
100}
101
102__weak const char *smbios_system_manufacturer(void)
103{
104 return smbios_mainboard_manufacturer();
105}
106
107__weak const char *smbios_system_product_name(void)
108{
109 return smbios_mainboard_product_name();
110}
111
112__weak void smbios_system_set_uuid(u8 *uuid)
113{
114 /* leave all zero */
115}
116
117__weak unsigned int smbios_cpu_get_max_speed_mhz(void)
118{
119 return 0; /* Unknown */
120}
121
122__weak unsigned int smbios_cpu_get_current_speed_mhz(void)
123{
124 return 0; /* Unknown */
125}
126
127__weak const char *smbios_system_sku(void)
128{
129 return "";
130}
131
132__weak const char *smbios_chassis_version(void)
133{
134 return "";
135}
136
137__weak const char *smbios_chassis_serial_number(void)
138{
139 return "";
140}
141
142__weak const char *smbios_processor_serial_number(void)
143{
144 return "";
145}