SMBIOS/SCONFIG: Allow devtree-defined Type 41 entries
Introduce the `smbios_dev_info` devicetree keyword to specify the instance ID and RefDes (Reference Designation) of onboard devices. Example syntax: device pci 1c.0 on # PCIe Port #1 device pci 00.0 on smbios_dev_info 6 end end device pci 1c.1 on # PCIe Port #2 device pci 00.0 on smbios_dev_info 42 "PCIe-PCI Time Machine" end end The `SMBIOS_TYPE41_PROVIDED_BY_DEVTREE` Kconfig option enables using this syntax to control the generated Type 41 entries. When this option is enabled, Type 41 entries are only autogenerated for devices with a defined instance ID. This avoids having to keep track of which instance IDs have been used for every device class. Using `smbios_dev_info` when `SMBIOS_TYPE41_PROVIDED_BY_DEVTREE` is not enabled will result in a build-time error, as the syntax is meaningless in this case. This is done with preprocessor guards around the Type 41 members in `struct device` and the code which uses the guarded members. Although the preprocessor usage isn't particularly elegant, adjusting the devicetree syntax and/or grammar depending on a Kconfig option is probably even worse. Change-Id: Iecca9ada6ee1000674cb5dd7afd5c309d8e1a64b Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/57370 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
This commit is contained in:
committed by
Patrick Georgi
parent
bb03e763de
commit
437da71d0a
@@ -1,4 +1,4 @@
|
||||
/* A Bison parser, made by GNU Bison 3.7.6. */
|
||||
/* A Bison parser, made by GNU Bison 3.8.1. */
|
||||
|
||||
/* Bison interface for Yacc-like parsers in C
|
||||
|
||||
@@ -35,8 +35,8 @@
|
||||
especially those whose name start with YY_ or yy_. They are
|
||||
private implementation details that can be changed or removed. */
|
||||
|
||||
#ifndef YY_YY_HOME_ICON_COREBOOT_UTIL_SCONFIG_SCONFIG_TAB_H_SHIPPED_INCLUDED
|
||||
# define YY_YY_HOME_ICON_COREBOOT_UTIL_SCONFIG_SCONFIG_TAB_H_SHIPPED_INCLUDED
|
||||
#ifndef YY_YY_HOME_USUARIO_COREBOOT_UTIL_SCONFIG_SCONFIG_TAB_H_SHIPPED_INCLUDED
|
||||
# define YY_YY_HOME_USUARIO_COREBOOT_UTIL_SCONFIG_SCONFIG_TAB_H_SHIPPED_INCLUDED
|
||||
/* Debug traces. */
|
||||
#ifndef YYDEBUG
|
||||
# define YYDEBUG 0
|
||||
@@ -79,23 +79,24 @@ extern int yydebug;
|
||||
IRQ = 280, /* IRQ */
|
||||
DRQ = 281, /* DRQ */
|
||||
SLOT_DESC = 282, /* SLOT_DESC */
|
||||
IO = 283, /* IO */
|
||||
NUMBER = 284, /* NUMBER */
|
||||
SUBSYSTEMID = 285, /* SUBSYSTEMID */
|
||||
INHERIT = 286, /* INHERIT */
|
||||
IOAPIC_IRQ = 287, /* IOAPIC_IRQ */
|
||||
IOAPIC = 288, /* IOAPIC */
|
||||
PCIINT = 289, /* PCIINT */
|
||||
GENERIC = 290, /* GENERIC */
|
||||
SPI = 291, /* SPI */
|
||||
USB = 292, /* USB */
|
||||
MMIO = 293, /* MMIO */
|
||||
GPIO = 294, /* GPIO */
|
||||
FW_CONFIG_TABLE = 295, /* FW_CONFIG_TABLE */
|
||||
FW_CONFIG_FIELD = 296, /* FW_CONFIG_FIELD */
|
||||
FW_CONFIG_OPTION = 297, /* FW_CONFIG_OPTION */
|
||||
FW_CONFIG_PROBE = 298, /* FW_CONFIG_PROBE */
|
||||
PIPE = 299 /* PIPE */
|
||||
SMBIOS_DEV_INFO = 283, /* SMBIOS_DEV_INFO */
|
||||
IO = 284, /* IO */
|
||||
NUMBER = 285, /* NUMBER */
|
||||
SUBSYSTEMID = 286, /* SUBSYSTEMID */
|
||||
INHERIT = 287, /* INHERIT */
|
||||
IOAPIC_IRQ = 288, /* IOAPIC_IRQ */
|
||||
IOAPIC = 289, /* IOAPIC */
|
||||
PCIINT = 290, /* PCIINT */
|
||||
GENERIC = 291, /* GENERIC */
|
||||
SPI = 292, /* SPI */
|
||||
USB = 293, /* USB */
|
||||
MMIO = 294, /* MMIO */
|
||||
GPIO = 295, /* GPIO */
|
||||
FW_CONFIG_TABLE = 296, /* FW_CONFIG_TABLE */
|
||||
FW_CONFIG_FIELD = 297, /* FW_CONFIG_FIELD */
|
||||
FW_CONFIG_OPTION = 298, /* FW_CONFIG_OPTION */
|
||||
FW_CONFIG_PROBE = 299, /* FW_CONFIG_PROBE */
|
||||
PIPE = 300 /* PIPE */
|
||||
};
|
||||
typedef enum yytokentype yytoken_kind_t;
|
||||
#endif
|
||||
@@ -120,6 +121,8 @@ typedef union YYSTYPE YYSTYPE;
|
||||
|
||||
extern YYSTYPE yylval;
|
||||
|
||||
|
||||
int yyparse (void);
|
||||
|
||||
#endif /* !YY_YY_HOME_ICON_COREBOOT_UTIL_SCONFIG_SCONFIG_TAB_H_SHIPPED_INCLUDED */
|
||||
|
||||
#endif /* !YY_YY_HOME_USUARIO_COREBOOT_UTIL_SCONFIG_SCONFIG_TAB_H_SHIPPED_INCLUDED */
|
||||
|
Reference in New Issue
Block a user