lib/version: Move board identification strings

These strings are now only expanded in lib/identity.c.

This improves ccache hit rates slightly, as one built object file
lib/version.o is used for all variants of a board. Also one built
object file lib/identity.o can become a ccache hit for successive
builds of a variant, while the commit hash changes.

Change-Id: Ia7d5454d95c8698ab1c1744e63ea4c04d615bb3b
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/74449
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
Kyösti Mälkki 2022-12-15 22:12:10 +02:00 committed by Felix Held
parent 5cabc29013
commit a9dd3c3fae
9 changed files with 30 additions and 25 deletions

View File

@ -5,8 +5,6 @@
#include <device/pci.h>
#include <reset.h>
const char mainboard_name[] = CONFIG_MAINBOARD_VENDOR " " CONFIG_MAINBOARD_PART_NUMBER;
void enable_static_device(struct device *dev)
{
if (dev->chip_ops && dev->chip_ops->enable_dev)

View File

@ -174,8 +174,6 @@ extern DEVTREE_CONST struct device * DEVTREE_CONST all_devices;
extern struct resource *free_resources;
extern struct bus *free_links;
extern const char mainboard_name[];
/* Generic device interface functions */
struct device *alloc_dev(struct bus *parent, struct device_path *path);
void dev_initialize_chips(void);

11
src/include/identity.h Normal file
View File

@ -0,0 +1,11 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef IDENTITY_H
#define IDENTITY_H
/* Motherboard Information */
extern const char mainboard_name[];
extern const char mainboard_vendor[];
extern const char mainboard_part_number[];
#endif /* IDENTITY_H */

View File

@ -3,10 +3,6 @@
#ifndef VERSION_H
#define VERSION_H
/* Motherboard Information */
extern const char mainboard_vendor[];
extern const char mainboard_part_number[];
/* coreboot Version */
extern const char coreboot_version[];
extern const char coreboot_extra_version[];

View File

@ -229,12 +229,8 @@ ifeq ($(CONFIG_DEBUG_SMI),y)
smm-$(CONFIG_CONSOLE_CBMEM) += cbmem_console.c
endif
bootblock-y += version.c
romstage-y += version.c
ramstage-y += version.c
smm-y += version.c
verstage-y += version.c
postcar-y += version.c
all-y += identity.c version.c
smm-y += identity.c version.c
$(call src-to-obj,bootblock,$(dir)/version.c) : $(obj)/build.h
$(call src-to-obj,romstage,$(dir)/version.c) : $(obj)/build.h

View File

@ -4,12 +4,12 @@
#include <arch/cbconfig.h>
#include <console/console.h>
#include <console/uart.h>
#include <identity.h>
#include <ip_checksum.h>
#include <boot/coreboot_tables.h>
#include <boot/tables.h>
#include <boot_device.h>
#include <string.h>
#include <version.h>
#include <boardid.h>
#include <device/device.h>
#include <drivers/tpm/tpm_ppi.h>
@ -23,6 +23,7 @@
#include <spi_flash.h>
#include <smmstore.h>
#include <types.h>
#include <version.h>
#if CONFIG(USE_OPTION_TABLE)
#include <option_table.h>

14
src/lib/identity.c Normal file
View File

@ -0,0 +1,14 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <identity.h>
#ifndef CONFIG_MAINBOARD_VENDOR
#error CONFIG_MAINBOARD_VENDOR not defined
#endif
#ifndef CONFIG_MAINBOARD_PART_NUMBER
#error CONFIG_MAINBOARD_PART_NUMBER not defined
#endif
const char mainboard_vendor[] = CONFIG_MAINBOARD_VENDOR;
const char mainboard_part_number[] = CONFIG_MAINBOARD_PART_NUMBER;
const char mainboard_name[] = CONFIG_MAINBOARD_VENDOR " " CONFIG_MAINBOARD_PART_NUMBER;

View File

@ -3,13 +3,6 @@
#include <version.h>
#include <build.h>
#ifndef CONFIG_MAINBOARD_VENDOR
#error CONFIG_MAINBOARD_VENDOR not defined
#endif
#ifndef CONFIG_MAINBOARD_PART_NUMBER
#error CONFIG_MAINBOARD_PART_NUMBER not defined
#endif
#ifndef COREBOOT_VERSION
#error COREBOOT_VERSION not defined
#endif
@ -25,9 +18,6 @@
#define COREBOOT_EXTRA_VERSION ""
#endif
const char mainboard_vendor[] = CONFIG_MAINBOARD_VENDOR;
const char mainboard_part_number[] = CONFIG_MAINBOARD_PART_NUMBER;
const char coreboot_version[] = COREBOOT_VERSION;
const char coreboot_extra_version[] = COREBOOT_EXTRA_VERSION;
const char coreboot_build[] = COREBOOT_BUILD;

View File

@ -1965,6 +1965,7 @@ static void generate_outputc(FILE *f, const char *static_header)
fprintf(f, "#include <device/device.h>\n");
fprintf(f, "#include <device/pci.h>\n");
fprintf(f, "#include <fw_config.h>\n");
fprintf(f, "#include <identity.h>\n");
fprintf(f, "#include <%s>\n", static_header);
emit_chip_headers(f, chip_header.next);
emit_identifiers(f, "struct device_operations", device_operations);