sconfig: Add a new generic device type
Add support for a basic generic device in the devicetree to bind to a
device that does not have a specific bus, but may need to be described
in tables for the operating system. For instance some chips may have
various GPIO connections that need described but do not fall under any
other device.
In order to support this export the basic 'scan_static_bus()' that can
be used in a device_operations->scan_bus() method to scan for the generic
devices.
It has been possible to get a semi-generic device by using a fake PNP
device, but that isn't really appropriate for many devices.
Also Re-generate the shipped files for sconfig. Use flex 2.6.0 to avoid
everything being rewritten. Clean up the local paths that leak into the
generated configs.
Change-Id: If45a5b18825bdb2cf1e4ba4297ee426cbd1678e3
Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: https://review.coreboot.org/14789
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Leroy P Leahy <leroy.p.leahy@intel.com>
diff --git a/util/sconfig/sconfig.tab.c_shipped b/util/sconfig/sconfig.tab.c_shipped
index cef198e..bca06a0 100644
--- a/util/sconfig/sconfig.tab.c_shipped
+++ b/util/sconfig/sconfig.tab.c_shipped
@@ -148,7 +148,8 @@
INHERIT = 280,
IOAPIC_IRQ = 281,
IOAPIC = 282,
- PCIINT = 283
+ PCIINT = 283,
+ GENERIC = 284
};
#endif
@@ -425,7 +426,7 @@
#define YYLAST 39
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 29
+#define YYNTOKENS 30
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 13
/* YYNRULES -- Number of rules. */
@@ -436,7 +437,7 @@
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 283
+#define YYMAXUTOK 284
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -473,7 +474,7 @@
2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28
+ 25, 26, 27, 28, 29
};
#if YYDEBUG
@@ -494,9 +495,10 @@
"$end", "error", "$undefined", "CHIP", "DEVICE", "REGISTER", "BOOL",
"BUS", "RESOURCE", "END", "EQUALS", "HEX", "STRING", "PCI", "PNP", "I2C",
"APIC", "CPU_CLUSTER", "CPU", "DOMAIN", "IRQ", "DRQ", "IO", "NUMBER",
- "SUBSYSTEMID", "INHERIT", "IOAPIC_IRQ", "IOAPIC", "PCIINT", "$accept",
- "devtree", "$@1", "chipchildren", "devicechildren", "chip", "@2",
- "device", "@3", "resource", "registers", "subsystemid", "ioapic_irq", YY_NULLPTR
+ "SUBSYSTEMID", "INHERIT", "IOAPIC_IRQ", "IOAPIC", "PCIINT", "GENERIC",
+ "$accept", "devtree", "$@1", "chipchildren", "devicechildren", "chip",
+ "@2", "device", "@3", "resource", "registers", "subsystemid",
+ "ioapic_irq", YY_NULLPTR
};
#endif
@@ -507,7 +509,7 @@
{
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 282, 283
+ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284
};
# endif
@@ -581,19 +583,19 @@
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 30, 31, 0, 3, 34, 12, 35, 32, 4,
- 5, 9, 34, 36, 39, 7, 12, 23, 10, 6,
- 12, 37, 33, 8, 9, 24, 26, 34, 36, 38,
- 40, 41, 23, 23, 23, 10, 23, 28, 23, 25,
+ 0, 31, 32, 0, 3, 35, 12, 36, 33, 4,
+ 5, 9, 35, 37, 40, 7, 12, 23, 10, 6,
+ 12, 38, 34, 8, 9, 24, 26, 35, 37, 39,
+ 41, 42, 23, 23, 23, 10, 23, 28, 23, 25,
23
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 29, 31, 30, 32, 32, 32, 32, 33, 33,
- 33, 33, 33, 33, 35, 34, 37, 36, 38, 39,
- 40, 40, 41
+ 0, 30, 32, 31, 33, 33, 33, 33, 34, 34,
+ 34, 34, 34, 34, 36, 35, 38, 37, 39, 40,
+ 41, 41, 42
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */