arch/x86/smbios.c: Split out weak functions
The `smbios.c` file is rather long. To improve navigability, place weak function definitions on a separate compilation unit. Change-Id: Idd2a4ba52b6b23aad8fd63e66ffa747d49ea713d Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/44023 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
This commit is contained in:
parent
9630ced250
commit
bea5ce7a4b
|
@ -255,6 +255,7 @@ ramstage-$(CONFIG_GENERATE_MP_TABLE) += mpspec.c
|
||||||
ramstage-$(CONFIG_GENERATE_PIRQ_TABLE) += pirq_routing.c
|
ramstage-$(CONFIG_GENERATE_PIRQ_TABLE) += pirq_routing.c
|
||||||
ramstage-y += rdrand.c
|
ramstage-y += rdrand.c
|
||||||
ramstage-$(CONFIG_GENERATE_SMBIOS_TABLES) += smbios.c
|
ramstage-$(CONFIG_GENERATE_SMBIOS_TABLES) += smbios.c
|
||||||
|
ramstage-$(CONFIG_GENERATE_SMBIOS_TABLES) += smbios_defaults.c
|
||||||
ramstage-y += tables.c
|
ramstage-y += tables.c
|
||||||
ramstage-$(CONFIG_COOP_MULTITASKING) += thread.c
|
ramstage-$(CONFIG_COOP_MULTITASKING) += thread.c
|
||||||
ramstage-$(CONFIG_COOP_MULTITASKING) += thread_switch.S
|
ramstage-$(CONFIG_COOP_MULTITASKING) += thread_switch.S
|
||||||
|
|
|
@ -205,18 +205,6 @@ void smbios_fill_dimm_manufacturer_from_id(uint16_t mod_id, struct smbios_type17
|
||||||
t->manufacturer = smbios_add_string(t->eos, string_buffer);
|
t->manufacturer = smbios_add_string(t->eos, string_buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* this function will fill the corresponding locator */
|
|
||||||
__weak void smbios_fill_dimm_locator(const struct dimm_info *dimm, struct smbios_type17 *t)
|
|
||||||
{
|
|
||||||
char locator[40];
|
|
||||||
|
|
||||||
snprintf(locator, sizeof(locator), "Channel-%d-DIMM-%d",
|
|
||||||
dimm->channel_num, dimm->dimm_num);
|
|
||||||
t->device_locator = smbios_add_string(t->eos, locator);
|
|
||||||
|
|
||||||
snprintf(locator, sizeof(locator), "BANK %d", dimm->bank_locator);
|
|
||||||
t->bank_locator = smbios_add_string(t->eos, locator);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void trim_trailing_whitespace(char *buffer, size_t buffer_size)
|
static void trim_trailing_whitespace(char *buffer, size_t buffer_size)
|
||||||
{
|
{
|
||||||
|
@ -404,11 +392,6 @@ static const char *get_bios_version(void)
|
||||||
return coreboot_version;
|
return coreboot_version;
|
||||||
}
|
}
|
||||||
|
|
||||||
__weak const char *smbios_mainboard_bios_version(void)
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int smbios_write_type0(unsigned long *current, int handle)
|
static int smbios_write_type0(unsigned long *current, int handle)
|
||||||
{
|
{
|
||||||
struct smbios_type0 *t = (struct smbios_type0 *)*current;
|
struct smbios_type0 *t = (struct smbios_type0 *)*current;
|
||||||
|
@ -458,121 +441,6 @@ static int smbios_write_type0(unsigned long *current, int handle)
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
__weak const char *smbios_mainboard_serial_number(void)
|
|
||||||
{
|
|
||||||
return CONFIG_MAINBOARD_SERIAL_NUMBER;
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak const char *smbios_mainboard_version(void)
|
|
||||||
{
|
|
||||||
return CONFIG_MAINBOARD_VERSION;
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak const char *smbios_mainboard_manufacturer(void)
|
|
||||||
{
|
|
||||||
return CONFIG_MAINBOARD_SMBIOS_MANUFACTURER;
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak const char *smbios_mainboard_product_name(void)
|
|
||||||
{
|
|
||||||
return CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME;
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak const char *smbios_mainboard_asset_tag(void)
|
|
||||||
{
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak u8 smbios_mainboard_feature_flags(void)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak const char *smbios_mainboard_location_in_chassis(void)
|
|
||||||
{
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak smbios_board_type smbios_mainboard_board_type(void)
|
|
||||||
{
|
|
||||||
return SMBIOS_BOARD_TYPE_UNKNOWN;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* System Enclosure or Chassis Types as defined in SMBIOS specification.
|
|
||||||
* The default value is SMBIOS_ENCLOSURE_DESKTOP (0x03) but laptop,
|
|
||||||
* convertible, or tablet enclosure will be used if the appropriate
|
|
||||||
* system type is selected.
|
|
||||||
*/
|
|
||||||
__weak smbios_enclosure_type smbios_mainboard_enclosure_type(void)
|
|
||||||
{
|
|
||||||
if (CONFIG(SYSTEM_TYPE_LAPTOP))
|
|
||||||
return SMBIOS_ENCLOSURE_LAPTOP;
|
|
||||||
else if (CONFIG(SYSTEM_TYPE_TABLET))
|
|
||||||
return SMBIOS_ENCLOSURE_TABLET;
|
|
||||||
else if (CONFIG(SYSTEM_TYPE_CONVERTIBLE))
|
|
||||||
return SMBIOS_ENCLOSURE_CONVERTIBLE;
|
|
||||||
else if (CONFIG(SYSTEM_TYPE_DETACHABLE))
|
|
||||||
return SMBIOS_ENCLOSURE_DETACHABLE;
|
|
||||||
else
|
|
||||||
return SMBIOS_ENCLOSURE_DESKTOP;
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak const char *smbios_system_serial_number(void)
|
|
||||||
{
|
|
||||||
return smbios_mainboard_serial_number();
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak const char *smbios_system_version(void)
|
|
||||||
{
|
|
||||||
return smbios_mainboard_version();
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak const char *smbios_system_manufacturer(void)
|
|
||||||
{
|
|
||||||
return smbios_mainboard_manufacturer();
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak const char *smbios_system_product_name(void)
|
|
||||||
{
|
|
||||||
return smbios_mainboard_product_name();
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak void smbios_system_set_uuid(u8 *uuid)
|
|
||||||
{
|
|
||||||
/* leave all zero */
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak unsigned int smbios_cpu_get_max_speed_mhz(void)
|
|
||||||
{
|
|
||||||
return 0; /* Unknown */
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak unsigned int smbios_cpu_get_current_speed_mhz(void)
|
|
||||||
{
|
|
||||||
return 0; /* Unknown */
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak const char *smbios_system_sku(void)
|
|
||||||
{
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak const char *smbios_chassis_version(void)
|
|
||||||
{
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak const char *smbios_chassis_serial_number(void)
|
|
||||||
{
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak const char *smbios_processor_serial_number(void)
|
|
||||||
{
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
static int get_socket_type(void)
|
static int get_socket_type(void)
|
||||||
{
|
{
|
||||||
if (CONFIG(CPU_INTEL_SLOT_1))
|
if (CONFIG(CPU_INTEL_SLOT_1))
|
||||||
|
|
|
@ -0,0 +1,139 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include <memory_info.h>
|
||||||
|
#include <smbios.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
/* this function will fill the corresponding locator */
|
||||||
|
__weak void smbios_fill_dimm_locator(const struct dimm_info *dimm, struct smbios_type17 *t)
|
||||||
|
{
|
||||||
|
char locator[40];
|
||||||
|
|
||||||
|
snprintf(locator, sizeof(locator), "Channel-%d-DIMM-%d",
|
||||||
|
dimm->channel_num, dimm->dimm_num);
|
||||||
|
t->device_locator = smbios_add_string(t->eos, locator);
|
||||||
|
|
||||||
|
snprintf(locator, sizeof(locator), "BANK %d", dimm->bank_locator);
|
||||||
|
t->bank_locator = smbios_add_string(t->eos, locator);
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak const char *smbios_mainboard_bios_version(void)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak const char *smbios_mainboard_serial_number(void)
|
||||||
|
{
|
||||||
|
return CONFIG_MAINBOARD_SERIAL_NUMBER;
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak const char *smbios_mainboard_version(void)
|
||||||
|
{
|
||||||
|
return CONFIG_MAINBOARD_VERSION;
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak const char *smbios_mainboard_manufacturer(void)
|
||||||
|
{
|
||||||
|
return CONFIG_MAINBOARD_SMBIOS_MANUFACTURER;
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak const char *smbios_mainboard_product_name(void)
|
||||||
|
{
|
||||||
|
return CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME;
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak const char *smbios_mainboard_asset_tag(void)
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak u8 smbios_mainboard_feature_flags(void)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak const char *smbios_mainboard_location_in_chassis(void)
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak smbios_board_type smbios_mainboard_board_type(void)
|
||||||
|
{
|
||||||
|
return SMBIOS_BOARD_TYPE_UNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* System Enclosure or Chassis Types as defined in SMBIOS specification.
|
||||||
|
* The default value is SMBIOS_ENCLOSURE_DESKTOP (0x03) but laptop,
|
||||||
|
* convertible, or tablet enclosure will be used if the appropriate
|
||||||
|
* system type is selected.
|
||||||
|
*/
|
||||||
|
__weak smbios_enclosure_type smbios_mainboard_enclosure_type(void)
|
||||||
|
{
|
||||||
|
if (CONFIG(SYSTEM_TYPE_LAPTOP))
|
||||||
|
return SMBIOS_ENCLOSURE_LAPTOP;
|
||||||
|
else if (CONFIG(SYSTEM_TYPE_TABLET))
|
||||||
|
return SMBIOS_ENCLOSURE_TABLET;
|
||||||
|
else if (CONFIG(SYSTEM_TYPE_CONVERTIBLE))
|
||||||
|
return SMBIOS_ENCLOSURE_CONVERTIBLE;
|
||||||
|
else if (CONFIG(SYSTEM_TYPE_DETACHABLE))
|
||||||
|
return SMBIOS_ENCLOSURE_DETACHABLE;
|
||||||
|
else
|
||||||
|
return SMBIOS_ENCLOSURE_DESKTOP;
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak const char *smbios_system_serial_number(void)
|
||||||
|
{
|
||||||
|
return smbios_mainboard_serial_number();
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak const char *smbios_system_version(void)
|
||||||
|
{
|
||||||
|
return smbios_mainboard_version();
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak const char *smbios_system_manufacturer(void)
|
||||||
|
{
|
||||||
|
return smbios_mainboard_manufacturer();
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak const char *smbios_system_product_name(void)
|
||||||
|
{
|
||||||
|
return smbios_mainboard_product_name();
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak void smbios_system_set_uuid(u8 *uuid)
|
||||||
|
{
|
||||||
|
/* leave all zero */
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak unsigned int smbios_cpu_get_max_speed_mhz(void)
|
||||||
|
{
|
||||||
|
return 0; /* Unknown */
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak unsigned int smbios_cpu_get_current_speed_mhz(void)
|
||||||
|
{
|
||||||
|
return 0; /* Unknown */
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak const char *smbios_system_sku(void)
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak const char *smbios_chassis_version(void)
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak const char *smbios_chassis_serial_number(void)
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
__weak const char *smbios_processor_serial_number(void)
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
Loading…
Reference in New Issue