summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/device/Makefile.inc1
-rw-r--r--src/device/device_const.c4
-rw-r--r--src/device/device_util.c6
-rw-r--r--src/device/mdio.c16
-rw-r--r--src/include/device/device.h2
-rw-r--r--src/include/device/mdio.h17
-rw-r--r--src/include/device/path.h7
-rw-r--r--util/sconfig/lex.yy.c_shipped331
-rw-r--r--util/sconfig/main.c4
-rw-r--r--util/sconfig/sconfig.l1
-rw-r--r--util/sconfig/sconfig.tab.c_shipped197
-rw-r--r--util/sconfig/sconfig.tab.h_shipped19
-rw-r--r--util/sconfig/sconfig.y2
13 files changed, 336 insertions, 271 deletions
diff --git a/src/device/Makefile.inc b/src/device/Makefile.inc
index 28acd73879cb..3018ef9626a5 100644
--- a/src/device/Makefile.inc
+++ b/src/device/Makefile.inc
@@ -64,3 +64,4 @@ ramstage-y += resource_allocator_v4.c
ramstage-$(CONFIG_XHCI_UTILS) += xhci.c
ramstage-y += gpio.c
+ramstage-y += mdio.c
diff --git a/src/device/device_const.c b/src/device/device_const.c
index a40d0b05b9f9..a63a62934442 100644
--- a/src/device/device_const.c
+++ b/src/device/device_const.c
@@ -147,6 +147,10 @@ static int path_eq(const struct device_path *path1,
case DEVICE_PATH_GPIO:
equal = (path1->gpio.id == path2->gpio.id);
break;
+ case DEVICE_PATH_MDIO:
+ equal = (path1->mdio.addr == path2->mdio.addr);
+ break;
+
default:
printk(BIOS_ERR, "Unknown device type: %d\n", path1->type);
break;
diff --git a/src/device/device_util.c b/src/device/device_util.c
index 9beb2ce8e2e8..c5e03f20795f 100644
--- a/src/device/device_util.c
+++ b/src/device/device_util.c
@@ -135,6 +135,9 @@ u32 dev_path_encode(const struct device *dev)
case DEVICE_PATH_GPIO:
ret |= dev->path.gpio.id;
break;
+ case DEVICE_PATH_MDIO:
+ ret |= dev->path.mdio.addr;
+ break;
case DEVICE_PATH_NONE:
case DEVICE_PATH_MMIO: /* don't care */
default:
@@ -223,6 +226,9 @@ const char *dev_path(const struct device *dev)
case DEVICE_PATH_GPIO:
snprintf(buffer, sizeof(buffer), "GPIO: %d", dev->path.gpio.id);
break;
+ case DEVICE_PATH_MDIO:
+ snprintf(buffer, sizeof(buffer), "MDIO: %02x", dev->path.mdio.addr);
+ break;
default:
printk(BIOS_ERR, "Unknown device path type: %d\n",
dev->path.type);
diff --git a/src/device/mdio.c b/src/device/mdio.c
new file mode 100644
index 000000000000..9f560e6bdf98
--- /dev/null
+++ b/src/device/mdio.c
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <console/console.h>
+#include <device/device.h>
+#include <device/mdio.h>
+#include <stddef.h>
+
+const struct mdio_bus_operations *dev_get_mdio_ops(struct device *dev)
+{
+ if (!dev || !dev->ops || !dev->ops->ops_mdio) {
+ printk(BIOS_ERR, "Could not get MDIO operations.\n");
+ return NULL;
+ }
+
+ return dev->ops->ops_mdio;
+}
diff --git a/src/include/device/device.h b/src/include/device/device.h
index 0f9c39f17ef0..8b1dde1109fb 100644
--- a/src/include/device/device.h
+++ b/src/include/device/device.h
@@ -20,6 +20,7 @@ struct pnp_mode_ops;
struct spi_bus_operations;
struct usb_bus_operations;
struct gpio_operations;
+struct mdio_bus_operations;
/* Chip operations */
struct chip_operations {
@@ -67,6 +68,7 @@ struct device_operations {
const struct smbus_bus_operations *ops_smbus_bus;
const struct pnp_mode_ops *ops_pnp_mode;
const struct gpio_operations *ops_gpio;
+ const struct mdio_bus_operations *ops_mdio;
};
/**
diff --git a/src/include/device/mdio.h b/src/include/device/mdio.h
new file mode 100644
index 000000000000..39e60f582d38
--- /dev/null
+++ b/src/include/device/mdio.h
@@ -0,0 +1,17 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __DEVICE_MDIO_H__
+#define __DEVICE_MDIO_H__
+
+#include <device/device.h>
+#include <types.h>
+
+struct mdio_bus_operations {
+ uint16_t (*read)(struct device *dev, uint8_t phy_adr, uint8_t reg_adr);
+ void (*write)(struct device *dev, uint8_t phy_adr, uint8_t reg_adr, uint16_t data);
+};
+
+/* Helper for getting mdio operations from a device */
+const struct mdio_bus_operations *dev_get_mdio_ops(struct device *dev);
+
+#endif /* __DEVICE_MDIO_H__ */
diff --git a/src/include/device/path.h b/src/include/device/path.h
index 1be7e7299fb6..28c932ad8ec1 100644
--- a/src/include/device/path.h
+++ b/src/include/device/path.h
@@ -22,6 +22,7 @@ enum device_path_type {
DEVICE_PATH_USB,
DEVICE_PATH_MMIO,
DEVICE_PATH_GPIO,
+ DEVICE_PATH_MDIO,
/*
* When adding path types to this table, please also update the
@@ -46,6 +47,7 @@ enum device_path_type {
"DEVICE_PATH_USB", \
"DEVICE_PATH_MMIO", \
"DEVICE_PATH_GPIO", \
+ "DEVICE_PATH_MDIO", \
}
struct domain_path {
@@ -112,6 +114,10 @@ struct gpio_path {
unsigned int id;
};
+struct mdio_path {
+ unsigned int addr;
+};
+
struct device_path {
enum device_path_type type;
union {
@@ -129,6 +135,7 @@ struct device_path {
struct usb_path usb;
struct mmio_path mmio;
struct gpio_path gpio;
+ struct mdio_path mdio;
};
};
diff --git a/util/sconfig/lex.yy.c_shipped b/util/sconfig/lex.yy.c_shipped
index 3e2bb158c596..479366d3c3b6 100644
--- a/util/sconfig/lex.yy.c_shipped
+++ b/util/sconfig/lex.yy.c_shipped
@@ -349,8 +349,8 @@ static void yynoreturn yy_fatal_error ( const char* msg );
(yy_hold_char) = *yy_cp; \
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 51
-#define YY_END_OF_BUFFER 52
+#define YY_NUM_RULES 52
+#define YY_END_OF_BUFFER 53
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -358,31 +358,32 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static const flex_int16_t yy_accept[211] =
+static const flex_int16_t yy_accept[214] =
{ 0,
- 0, 0, 52, 50, 1, 3, 50, 50, 50, 45,
- 45, 42, 46, 50, 46, 46, 46, 46, 46, 50,
- 50, 50, 50, 50, 50, 50, 50, 50, 50, 43,
- 50, 1, 3, 50, 0, 50, 50, 0, 2, 45,
- 46, 50, 50, 50, 10, 50, 50, 46, 50, 50,
- 50, 50, 50, 50, 50, 50, 50, 50, 35, 50,
- 50, 50, 50, 50, 16, 50, 50, 50, 50, 50,
- 50, 50, 50, 50, 49, 49, 50, 0, 44, 50,
- 50, 50, 26, 50, 50, 34, 39, 50, 50, 50,
- 50, 50, 23, 50, 50, 33, 50, 50, 50, 17,
-
- 7, 50, 20, 22, 50, 9, 50, 50, 30, 50,
- 31, 8, 50, 0, 47, 50, 4, 50, 50, 50,
- 50, 50, 50, 32, 50, 50, 50, 50, 50, 29,
- 50, 50, 50, 50, 50, 48, 48, 6, 50, 50,
- 50, 13, 50, 50, 50, 50, 50, 24, 50, 50,
- 15, 50, 50, 50, 50, 5, 27, 50, 50, 18,
- 50, 21, 50, 14, 50, 50, 50, 50, 50, 28,
- 37, 50, 50, 50, 50, 50, 50, 50, 50, 50,
- 11, 50, 50, 50, 50, 12, 50, 19, 50, 50,
- 50, 50, 36, 50, 50, 50, 25, 50, 50, 38,
-
- 50, 50, 50, 50, 50, 50, 41, 50, 40, 0
+ 0, 0, 53, 51, 1, 3, 51, 51, 51, 46,
+ 46, 43, 47, 51, 47, 47, 47, 47, 47, 51,
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 44,
+ 51, 1, 3, 51, 0, 51, 51, 0, 2, 46,
+ 47, 51, 51, 51, 10, 51, 51, 47, 51, 51,
+ 51, 51, 51, 51, 51, 51, 51, 51, 36, 51,
+ 51, 51, 51, 51, 51, 16, 51, 51, 51, 51,
+ 51, 51, 51, 51, 51, 50, 50, 51, 0, 45,
+ 51, 51, 51, 26, 51, 51, 35, 40, 51, 51,
+ 51, 51, 51, 23, 51, 51, 34, 51, 51, 51,
+
+ 51, 17, 7, 51, 20, 22, 51, 9, 51, 51,
+ 30, 51, 31, 8, 51, 0, 48, 51, 4, 51,
+ 51, 51, 51, 51, 51, 32, 51, 51, 51, 51,
+ 51, 33, 29, 51, 51, 51, 51, 51, 49, 49,
+ 6, 51, 51, 51, 13, 51, 51, 51, 51, 51,
+ 24, 51, 51, 15, 51, 51, 51, 51, 5, 27,
+ 51, 51, 18, 51, 21, 51, 14, 51, 51, 51,
+ 51, 51, 28, 38, 51, 51, 51, 51, 51, 51,
+ 51, 51, 51, 11, 51, 51, 51, 51, 12, 51,
+ 19, 51, 51, 51, 51, 37, 51, 51, 51, 25,
+
+ 51, 51, 39, 51, 51, 51, 51, 51, 51, 42,
+ 51, 41, 0
} ;
static const YY_CHAR yy_ec[256] =
@@ -425,140 +426,140 @@ static const YY_CHAR yy_meta[41] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1
} ;
-static const flex_int16_t yy_base[218] =
+static const flex_int16_t yy_base[221] =
{ 0,
- 0, 0, 283, 0, 280, 284, 278, 39, 43, 40,
- 242, 0, 46, 265, 56, 60, 64, 67, 72, 56,
- 253, 74, 260, 39, 70, 59, 255, 77, 242, 0,
- 0, 272, 284, 108, 268, 112, 116, 269, 284, 0,
- 113, 116, 256, 245, 0, 244, 233, 122, 240, 235,
- 245, 243, 247, 234, 236, 240, 240, 234, 240, 225,
- 225, 226, 228, 230, 0, 106, 226, 220, 220, 119,
- 230, 222, 228, 87, 0, 284, 141, 240, 0, 233,
- 226, 212, 225, 215, 222, 0, 0, 212, 218, 215,
- 206, 214, 0, 212, 202, 0, 206, 210, 200, 0,
-
- 0, 203, 0, 0, 209, 0, 201, 200, 0, 191,
- 0, 0, 218, 217, 0, 188, 0, 201, 200, 193,
- 197, 187, 183, 0, 193, 181, 187, 192, 193, 0,
- 180, 187, 174, 177, 166, 0, 284, 0, 178, 182,
- 174, 0, 173, 175, 171, 173, 178, 0, 162, 167,
- 0, 160, 160, 159, 156, 0, 0, 168, 170, 0,
- 154, 171, 157, 0, 164, 168, 149, 149, 156, 0,
- 0, 155, 147, 146, 68, 156, 142, 152, 142, 134,
- 0, 151, 145, 130, 135, 0, 124, 0, 118, 124,
- 127, 119, 0, 134, 115, 128, 0, 122, 129, 0,
-
- 104, 106, 94, 78, 65, 37, 0, 31, 0, 284,
- 42, 158, 160, 162, 164, 166, 168
+ 0, 0, 286, 0, 283, 287, 281, 39, 43, 40,
+ 245, 0, 46, 268, 56, 60, 64, 67, 72, 56,
+ 256, 74, 263, 71, 77, 82, 258, 81, 245, 0,
+ 0, 275, 287, 110, 271, 115, 119, 272, 287, 0,
+ 116, 119, 259, 248, 0, 247, 236, 125, 243, 238,
+ 248, 246, 250, 237, 239, 243, 243, 237, 243, 228,
+ 228, 229, 231, 230, 232, 0, 109, 228, 222, 222,
+ 122, 232, 224, 230, 128, 0, 287, 145, 242, 0,
+ 235, 228, 214, 227, 217, 224, 0, 0, 214, 220,
+ 217, 208, 216, 0, 214, 204, 0, 208, 212, 202,
+
+ 201, 0, 0, 204, 0, 0, 210, 0, 202, 201,
+ 0, 192, 0, 0, 219, 218, 0, 189, 0, 202,
+ 201, 194, 198, 188, 184, 0, 194, 182, 188, 193,
+ 194, 0, 0, 181, 188, 175, 178, 167, 0, 287,
+ 0, 179, 183, 175, 0, 174, 176, 172, 174, 179,
+ 0, 163, 168, 0, 161, 161, 160, 157, 0, 0,
+ 169, 171, 0, 155, 172, 158, 0, 165, 169, 150,
+ 150, 157, 0, 0, 156, 148, 147, 23, 157, 143,
+ 153, 143, 135, 0, 139, 133, 131, 136, 0, 125,
+ 0, 119, 125, 128, 120, 0, 135, 101, 109, 0,
+
+ 94, 88, 0, 72, 74, 70, 66, 49, 37, 0,
+ 47, 0, 287, 49, 161, 163, 165, 167, 169, 171
} ;
-static const flex_int16_t yy_def[218] =
+static const flex_int16_t yy_def[221] =
{ 0,
- 210, 1, 210, 211, 210, 210, 211, 212, 213, 211,
- 10, 211, 10, 211, 10, 10, 10, 10, 10, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 210, 210, 212, 214, 215, 213, 216, 210, 10,
- 10, 10, 211, 211, 211, 211, 211, 10, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 210, 215, 217, 42, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
-
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 210, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 210, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
-
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 0,
- 210, 210, 210, 210, 210, 210, 210
+ 213, 1, 213, 214, 213, 213, 214, 215, 216, 214,
+ 10, 214, 10, 214, 10, 10, 10, 10, 10, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 213, 213, 215, 217, 218, 216, 219, 213, 10,
+ 10, 10, 214, 214, 214, 214, 214, 10, 214, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 213, 218, 220, 42,
+ 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
+
+ 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 213, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214, 214, 213,
+ 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
+
+ 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
+ 214, 214, 0, 213, 213, 213, 213, 213, 213, 213
} ;
-static const flex_int16_t yy_nxt[325] =
+static const flex_int16_t yy_nxt[328] =
{ 0,
4, 5, 6, 7, 8, 9, 10, 11, 10, 12,
13, 13, 14, 4, 4, 4, 15, 13, 16, 17,
18, 19, 20, 21, 22, 23, 24, 4, 25, 26,
4, 27, 28, 4, 29, 4, 4, 4, 4, 30,
- 35, 35, 31, 36, 38, 39, 40, 40, 40, 209,
- 41, 41, 41, 41, 41, 62, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 63, 41, 41, 41, 208,
- 41, 41, 41, 41, 41, 41, 54, 67, 41, 41,
- 41, 44, 57, 46, 48, 55, 68, 182, 45, 47,
- 69, 64, 49, 207, 51, 50, 52, 65, 206, 66,
-
- 183, 58, 59, 71, 111, 60, 72, 112, 53, 35,
- 35, 73, 75, 78, 78, 205, 31, 38, 39, 41,
- 41, 41, 79, 79, 79, 204, 79, 79, 41, 41,
- 41, 203, 79, 79, 79, 79, 79, 79, 101, 102,
- 106, 107, 78, 78, 202, 113, 201, 200, 199, 198,
- 197, 196, 195, 194, 193, 192, 191, 84, 34, 34,
- 37, 37, 35, 35, 77, 77, 38, 38, 78, 78,
- 190, 189, 188, 187, 186, 185, 184, 181, 180, 179,
- 178, 177, 176, 175, 174, 173, 172, 171, 170, 169,
- 168, 167, 166, 165, 164, 163, 162, 161, 160, 159,
-
- 158, 157, 156, 155, 154, 153, 152, 151, 150, 149,
- 148, 147, 146, 145, 144, 143, 142, 141, 140, 139,
- 138, 137, 136, 135, 134, 133, 132, 131, 130, 129,
- 128, 127, 126, 125, 124, 123, 122, 121, 120, 119,
- 118, 117, 116, 115, 114, 110, 109, 108, 105, 104,
- 103, 100, 99, 98, 97, 96, 95, 94, 93, 92,
- 91, 90, 89, 88, 87, 86, 85, 83, 82, 81,
- 80, 39, 76, 32, 74, 70, 61, 56, 43, 42,
- 33, 32, 210, 3, 210, 210, 210, 210, 210, 210,
- 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
-
- 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
- 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
- 210, 210, 210, 210
+ 35, 35, 185, 36, 38, 39, 40, 40, 40, 31,
+ 41, 41, 41, 41, 41, 186, 41, 41, 41, 41,
+ 41, 41, 41, 41, 41, 212, 41, 41, 41, 211,
+ 41, 41, 41, 41, 41, 41, 54, 210, 41, 41,
+ 41, 44, 57, 46, 48, 55, 209, 62, 45, 47,
+ 63, 208, 49, 207, 51, 50, 52, 64, 65, 206,
+
+ 68, 58, 59, 205, 66, 60, 67, 72, 53, 69,
+ 73, 35, 35, 70, 76, 74, 79, 79, 204, 31,
+ 38, 39, 41, 41, 41, 80, 80, 80, 203, 80,
+ 80, 41, 41, 41, 202, 80, 80, 80, 80, 80,
+ 80, 103, 104, 108, 109, 113, 79, 79, 114, 115,
+ 201, 200, 199, 198, 197, 196, 195, 194, 193, 192,
+ 85, 34, 34, 37, 37, 35, 35, 78, 78, 38,
+ 38, 79, 79, 191, 190, 189, 188, 187, 184, 183,
+ 182, 181, 180, 179, 178, 177, 176, 175, 174, 173,
+ 172, 171, 170, 169, 168, 167, 166, 165, 164, 163,
+
+ 162, 161, 160, 159, 158, 157, 156, 155, 154, 153,
+ 152, 151, 150, 149, 148, 147, 146, 145, 144, 143,
+ 142, 141, 140, 139, 138, 137, 136, 135, 134, 133,
+ 132, 131, 130, 129, 128, 127, 126, 125, 124, 123,
+ 122, 121, 120, 119, 118, 117, 116, 112, 111, 110,
+ 107, 106, 105, 102, 101, 100, 99, 98, 97, 96,
+ 95, 94, 93, 92, 91, 90, 89, 88, 87, 86,
+ 84, 83, 82, 81, 39, 77, 32, 75, 71, 61,
+ 56, 43, 42, 33, 32, 213, 3, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213
} ;
-static const flex_int16_t yy_chk[325] =
+static const flex_int16_t yy_chk[328] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 8, 8, 211, 8, 9, 9, 10, 10, 10, 208,
- 10, 10, 13, 13, 13, 24, 10, 10, 10, 10,
- 10, 10, 15, 15, 15, 24, 16, 16, 16, 206,
- 17, 17, 17, 18, 18, 18, 20, 26, 19, 19,
- 19, 15, 22, 16, 17, 20, 26, 175, 15, 16,
- 26, 25, 17, 205, 18, 17, 19, 25, 204, 25,
-
- 175, 22, 22, 28, 74, 22, 28, 74, 19, 34,
- 34, 28, 34, 36, 36, 203, 36, 37, 37, 41,
- 41, 41, 42, 42, 42, 202, 42, 42, 48, 48,
- 48, 201, 42, 42, 42, 42, 42, 42, 66, 66,
- 70, 70, 77, 77, 199, 77, 198, 196, 195, 194,
- 192, 191, 190, 189, 187, 185, 184, 48, 212, 212,
- 213, 213, 214, 214, 215, 215, 216, 216, 217, 217,
- 183, 182, 180, 179, 178, 177, 176, 174, 173, 172,
- 169, 168, 167, 166, 165, 163, 162, 161, 159, 158,
- 155, 154, 153, 152, 150, 149, 147, 146, 145, 144,
-
- 143, 141, 140, 139, 135, 134, 133, 132, 131, 129,
- 128, 127, 126, 125, 123, 122, 121, 120, 119, 118,
- 116, 114, 113, 110, 108, 107, 105, 102, 99, 98,
- 97, 95, 94, 92, 91, 90, 89, 88, 85, 84,
- 83, 82, 81, 80, 78, 73, 72, 71, 69, 68,
- 67, 64, 63, 62, 61, 60, 59, 58, 57, 56,
- 55, 54, 53, 52, 51, 50, 49, 47, 46, 44,
- 43, 38, 35, 32, 29, 27, 23, 21, 14, 11,
- 7, 5, 3, 210, 210, 210, 210, 210, 210, 210,
- 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
-
- 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
- 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
- 210, 210, 210, 210
+ 8, 8, 178, 8, 9, 9, 10, 10, 10, 214,
+ 10, 10, 13, 13, 13, 178, 10, 10, 10, 10,
+ 10, 10, 15, 15, 15, 211, 16, 16, 16, 209,
+ 17, 17, 17, 18, 18, 18, 20, 208, 19, 19,
+ 19, 15, 22, 16, 17, 20, 207, 24, 15, 16,
+ 24, 206, 17, 205, 18, 17, 19, 24, 25, 204,
+
+ 26, 22, 22, 202, 25, 22, 25, 28, 19, 26,
+ 28, 34, 34, 26, 34, 28, 36, 36, 201, 36,
+ 37, 37, 41, 41, 41, 42, 42, 42, 199, 42,
+ 42, 48, 48, 48, 198, 42, 42, 42, 42, 42,
+ 42, 67, 67, 71, 71, 75, 78, 78, 75, 78,
+ 197, 195, 194, 193, 192, 190, 188, 187, 186, 185,
+ 48, 215, 215, 216, 216, 217, 217, 218, 218, 219,
+ 219, 220, 220, 183, 182, 181, 180, 179, 177, 176,
+ 175, 172, 171, 170, 169, 168, 166, 165, 164, 162,
+ 161, 158, 157, 156, 155, 153, 152, 150, 149, 148,
+
+ 147, 146, 144, 143, 142, 138, 137, 136, 135, 134,
+ 131, 130, 129, 128, 127, 125, 124, 123, 122, 121,
+ 120, 118, 116, 115, 112, 110, 109, 107, 104, 101,
+ 100, 99, 98, 96, 95, 93, 92, 91, 90, 89,
+ 86, 85, 84, 83, 82, 81, 79, 74, 73, 72,
+ 70, 69, 68, 65, 64, 63, 62, 61, 60, 59,
+ 58, 57, 56, 55, 54, 53, 52, 51, 50, 49,
+ 47, 46, 44, 43, 38, 35, 32, 29, 27, 23,
+ 21, 14, 11, 7, 5, 3, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213
} ;
static yy_state_type yy_last_accepting_state;
@@ -823,13 +824,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 211 )
+ if ( yy_current_state >= 214 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
- while ( yy_base[yy_current_state] != 284 );
+ while ( yy_base[yy_current_state] != 287 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
@@ -985,51 +986,51 @@ YY_RULE_SETUP
YY_BREAK
case 33:
YY_RULE_SETUP
-{yylval.number=IRQ; return(RESOURCE);}
+{yylval.number=MDIO; return(BUS);}
YY_BREAK
case 34:
YY_RULE_SETUP
-{yylval.number=DRQ; return(RESOURCE);}
+{yylval.number=IRQ; return(RESOURCE);}
YY_BREAK
case 35:
YY_RULE_SETUP
-{yylval.number=IO; return(RESOURCE);}
+{yylval.number=DRQ; return(RESOURCE);}
YY_BREAK
case 36:
YY_RULE_SETUP
-{return(IOAPIC_IRQ);}
+{yylval.number=IO; return(RESOURCE);}
YY_BREAK
case 37:
YY_RULE_SETUP
-{return(INHERIT);}
+{return(IOAPIC_IRQ);}
YY_BREAK
case 38:
YY_RULE_SETUP
-{return(SUBSYSTEMID);}
+{return(INHERIT);}
YY_BREAK
case 39:
YY_RULE_SETUP
-{return(END);}
+{return(SUBSYSTEMID);}
YY_BREAK
case 40:
YY_RULE_SETUP
-{return(SLOT_DESC);}
+{return(END);}
YY_BREAK
case 41:
YY_RULE_SETUP
-{return(SMBIOS_DEV_INFO);}
+{return(SLOT_DESC);}
YY_BREAK
case 42:
YY_RULE_SETUP
-{return(EQUALS);}
+{return(SMBIOS_DEV_INFO);}
YY_BREAK
case 43:
YY_RULE_SETUP
-{return(PIPE);}
+{return(EQUALS);}
YY_BREAK
case 44:
YY_RULE_SETUP
-{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);}
+{return(PIPE);}
YY_BREAK
case 45:
YY_RULE_SETUP
@@ -1041,12 +1042,11 @@ YY_RULE_SETUP
YY_BREAK
case 47:
YY_RULE_SETUP
-{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(PCIINT);}
+{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);}
YY_BREAK
case 48:
-/* rule 48 can match eol */
YY_RULE_SETUP
-{yylval.string = malloc(yyleng-1); strncpy(yylval.string, yytext+1, yyleng-2); yylval.string[yyleng-2]='\0'; return(STRING);}
+{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(PCIINT);}
YY_BREAK
case 49:
/* rule 49 can match eol */
@@ -1054,11 +1054,16 @@ YY_RULE_SETUP
{yylval.string = malloc(yyleng-1); strncpy(yylval.string, yytext+1, yyleng-2); yylval.string[yyleng-2]='\0'; return(STRING);}
YY_BREAK
case 50:
+/* rule 50 can match eol */
YY_RULE_SETUP
-{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(STRING);}
+{yylval.string = malloc(yyleng-1); strncpy(yylval.string, yytext+1, yyleng-2); yylval.string[yyleng-2]='\0'; return(STRING);}
YY_BREAK
case 51:
YY_RULE_SETUP
+{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(STRING);}
+ YY_BREAK
+case 52:
+YY_RULE_SETUP
ECHO;
YY_BREAK
case YY_STATE_EOF(INITIAL):
@@ -1357,7 +1362,7 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 211 )
+ if ( yy_current_state >= 214 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -1385,11 +1390,11 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 211 )
+ if ( yy_current_state >= 214 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 210);
+ yy_is_jam = (yy_current_state == 213);
return yy_is_jam ? 0 : yy_current_state;
}
diff --git a/util/sconfig/main.c b/util/sconfig/main.c
index 0833d388e5a2..5069dc1f6c48 100644
--- a/util/sconfig/main.c
+++ b/util/sconfig/main.c
@@ -908,6 +908,10 @@ static struct device *new_device_with_path(struct bus *parent,
case GPIO:
new_d->path = ".type=DEVICE_PATH_GPIO,{.gpio={ .id = 0x%x }}";
break;
+
+ case MDIO:
+ new_d->path = ".type=DEVICE_PATH_MDIO,{.mdio={ .addr = 0x%x }}";
+ break;
}
return new_d;
diff --git a/util/sconfig/sconfig.l b/util/sconfig/sconfig.l
index 5ff144b44546..4b880cf78e23 100644
--- a/util/sconfig/sconfig.l
+++ b/util/sconfig/sconfig.l
@@ -40,6 +40,7 @@ mmio {yylval.number=MMIO; return(BUS);}
spi {yylval.number=SPI; return(BUS);}
usb {yylval.number=USB; return(BUS);}
gpio {yylval.number=GPIO; return(BUS);}
+mdio {yylval.number=MDIO; return(BUS);}
irq {yylval.number=IRQ; return(RESOURCE);}
drq {yylval.number=DRQ; return(RESOURCE);}
io {yylval.number=IO; return(RESOURCE);}
diff --git a/util/sconfig/sconfig.tab.c_shipped b/util/sconfig/sconfig.tab.c_shipped
index 3df31a721b9b..6bc0e02f7dd1 100644
--- a/util/sconfig/sconfig.tab.c_shipped
+++ b/util/sconfig/sconfig.tab.c_shipped
@@ -151,45 +151,46 @@ enum yysymbol_kind_t
YYSYMBOL_USB = 38, /* USB */
YYSYMBOL_MMIO = 39, /* MMIO */
YYSYMBOL_GPIO = 40, /* GPIO */
- YYSYMBOL_FW_CONFIG_TABLE = 41, /* FW_CONFIG_TABLE */
- YYSYMBOL_FW_CONFIG_FIELD = 42, /* FW_CONFIG_FIELD */
- YYSYMBOL_FW_CONFIG_OPTION = 43, /* FW_CONFIG_OPTION */
- YYSYMBOL_FW_CONFIG_PROBE = 44, /* FW_CONFIG_PROBE */
- YYSYMBOL_PIPE = 45, /* PIPE */
- YYSYMBOL_OPS = 46, /* OPS */
- YYSYMBOL_YYACCEPT = 47, /* $accept */
- YYSYMBOL_devtree = 48, /* devtree */
- YYSYMBOL_chipchild_nondev = 49, /* chipchild_nondev */
- YYSYMBOL_chipchild = 50, /* chipchild */
- YYSYMBOL_chipchildren = 51, /* chipchildren */
- YYSYMBOL_chipchildren_dev = 52, /* chipchildren_dev */
- YYSYMBOL_devicechildren = 53, /* devicechildren */
- YYSYMBOL_chip = 54, /* chip */
- YYSYMBOL_55_1 = 55, /* @1 */
- YYSYMBOL_device = 56, /* device */
- YYSYMBOL_57_2 = 57, /* @2 */
- YYSYMBOL_58_3 = 58, /* @3 */
- YYSYMBOL_alias = 59, /* alias */
- YYSYMBOL_status = 60, /* status */
- YYSYMBOL_resource = 61, /* resource */
- YYSYMBOL_reference = 62, /* reference */
- YYSYMBOL_registers = 63, /* registers */
- YYSYMBOL_subsystemid = 64, /* subsystemid */
- YYSYMBOL_ioapic_irq = 65, /* ioapic_irq */
- YYSYMBOL_smbios_slot_desc = 66, /* smbios_slot_desc */
- YYSYMBOL_smbios_dev_info = 67, /* smbios_dev_info */
- YYSYMBOL_fw_config_table = 68, /* fw_config_table */
- YYSYMBOL_fw_config_table_children = 69, /* fw_config_table_children */
- YYSYMBOL_fw_config_field_children = 70, /* fw_config_field_children */
- YYSYMBOL_fw_config_field_bits = 71, /* fw_config_field_bits */
- YYSYMBOL_fw_config_field_bits_repeating = 72, /* fw_config_field_bits_repeating */
- YYSYMBOL_fw_config_field = 73, /* fw_config_field */
- YYSYMBOL_74_4 = 74, /* $@4 */
- YYSYMBOL_75_5 = 75, /* $@5 */
- YYSYMBOL_76_6 = 76, /* $@6 */
- YYSYMBOL_fw_config_option = 77, /* fw_config_option */
- YYSYMBOL_fw_config_probe = 78, /* fw_config_probe */
- YYSYMBOL_ops = 79 /* ops */
+ YYSYMBOL_MDIO = 41, /* MDIO */
+ YYSYMBOL_FW_CONFIG_TABLE = 42, /* FW_CONFIG_TABLE */
+ YYSYMBOL_FW_CONFIG_FIELD = 43, /* FW_CONFIG_FIELD */
+ YYSYMBOL_FW_CONFIG_OPTION = 44, /* FW_CONFIG_OPTION */
+ YYSYMBOL_FW_CONFIG_PROBE = 45, /* FW_CONFIG_PROBE */
+ YYSYMBOL_PIPE = 46, /* PIPE */
+ YYSYMBOL_OPS = 47, /* OPS */
+ YYSYMBOL_YYACCEPT = 48, /* $accept */
+ YYSYMBOL_devtree = 49, /* devtree */
+ YYSYMBOL_chipchild_nondev = 50, /* chipchild_nondev */
+ YYSYMBOL_chipchild = 51, /* chipchild */
+ YYSYMBOL_chipchildren = 52, /* chipchildren */
+ YYSYMBOL_chipchildren_dev = 53, /* chipchildren_dev */
+ YYSYMBOL_devicechildren = 54, /* devicechildren */
+ YYSYMBOL_chip = 55, /* chip */
+ YYSYMBOL_56_1 = 56, /* @1 */
+ YYSYMBOL_device = 57, /* device */
+ YYSYMBOL_58_2 = 58, /* @2 */
+ YYSYMBOL_59_3 = 59, /* @3 */
+ YYSYMBOL_alias = 60, /* alias */
+ YYSYMBOL_status = 61, /* status */
+ YYSYMBOL_resource = 62, /* resource */
+ YYSYMBOL_reference = 63, /* reference */
+ YYSYMBOL_registers = 64, /* registers */
+ YYSYMBOL_subsystemid = 65, /* subsystemid */
+ YYSYMBOL_ioapic_irq = 66, /* ioapic_irq */
+ YYSYMBOL_smbios_slot_desc = 67, /* smbios_slot_desc */
+ YYSYMBOL_smbios_dev_info = 68, /* smbios_dev_info */
+ YYSYMBOL_fw_config_table = 69, /* fw_config_table */
+ YYSYMBOL_fw_config_table_children = 70, /* fw_config_table_children */
+ YYSYMBOL_fw_config_field_children = 71, /* fw_config_field_children */
+ YYSYMBOL_fw_config_field_bits = 72, /* fw_config_field_bits */
+ YYSYMBOL_fw_config_field_bits_repeating = 73, /* fw_config_field_bits_repeating */
+ YYSYMBOL_fw_config_field = 74, /* fw_config_field */
+ YYSYMBOL_75_4 = 75, /* $@4 */
+ YYSYMBOL_76_5 = 76, /* $@5 */
+ YYSYMBOL_77_6 = 77, /* $@6 */
+ YYSYMBOL_fw_config_option = 78, /* fw_config_option */
+ YYSYMBOL_fw_config_probe = 79, /* fw_config_probe */
+ YYSYMBOL_ops = 80 /* ops */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -517,10 +518,10 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 101
+#define YYLAST 109
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 47
+#define YYNTOKENS 48
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 33
/* YYNRULES -- Number of rules. */
@@ -529,7 +530,7 @@ union yyalloc
#define YYNSTATES 108
/* YYMAXUTOK -- Last valid token kind. */
-#define YYMAXUTOK 301
+#define YYMAXUTOK 302
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
@@ -573,7 +574,7 @@ static const yytype_int8 yytranslate[] =
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46
+ 45, 46, 47
};
#if YYDEBUG
@@ -608,7 +609,7 @@ static const char *const yytname[] =
"PNP", "I2C", "APIC", "CPU_CLUSTER", "CPU", "DOMAIN", "IRQ", "DRQ",
"SLOT_DESC", "SMBIOS_DEV_INFO", "IO", "NUMBER", "SUBSYSTEMID", "INHERIT",
"IOAPIC_IRQ", "IOAPIC", "PCIINT", "GENERIC", "SPI", "USB", "MMIO",
- "GPIO", "FW_CONFIG_TABLE", "FW_CONFIG_FIELD", "FW_CONFIG_OPTION",
+ "GPIO", "MDIO", "FW_CONFIG_TABLE", "FW_CONFIG_FIELD", "FW_CONFIG_OPTION",
"FW_CONFIG_PROBE", "PIPE", "OPS", "$accept", "devtree",
"chipchild_nondev", "chipchild", "chipchildren", "chipchildren_dev",
"devicechildren", "chip", "@1", "device", "@2", "@3", "alias", "status",
@@ -627,7 +628,7 @@ yysymbol_name (yysymbol_kind_t yysymbol)
}
#endif
-#define YYPACT_NINF (-57)
+#define YYPACT_NINF (-49)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
@@ -641,17 +642,17 @@ yysymbol_name (yysymbol_kind_t yysymbol)
STATE-NUM. */
static const yytype_int8 yypact[] =
{
- -57, 6, -57, 2, -57, -57, -57, -57, -12, 45,
- -57, 4, -57, 11, 5, 7, 45, -3, -57, -57,
- -57, -57, 21, 18, 25, 14, 34, -57, -57, 45,
- 27, 16, -57, 44, 53, 46, 47, -57, -57, -57,
- -57, -57, 32, -57, -7, -57, -57, -57, 49, 44,
- -57, -57, -6, 27, 16, -57, -57, 50, -57, -57,
- -57, -57, -57, -57, -2, 38, 0, -57, -57, -57,
- 39, -57, 54, 40, 42, 43, 57, 58, -57, -57,
- -57, -57, -57, -57, -57, -57, -57, -57, 12, 61,
- 60, 62, 48, 51, 63, -57, -57, 52, 64, -57,
- 56, 55, -57, -57, 66, -57, -57, -57
+ -49, 8, -49, 2, -49, -49, -49, -49, -4, 39,
+ -49, 3, -49, 5, 4, 12, 39, 16, -49, -49,
+ -49, -49, 11, 34, 23, 7, 47, -49, -49, 39,
+ 26, 13, -49, 6, 51, 41, 44, -49, -49, -49,
+ -49, -49, 32, -49, -12, -49, -49, -49, 46, 6,
+ -49, -49, -8, 26, 13, -49, -49, 50, -49, -49,
+ -49, -49, -49, -49, -7, 40, 0, -49, -49, -49,
+ 42, -49, 52, 43, 45, 48, 54, 57, -49, -49,
+ -49, -49, -49, -49, -49, -49, -49, -49, 21, 49,
+ 59, 60, 53, 55, 62, -49, -49, 56, 63, -49,
+ 61, 58, -49, -49, 64, -49, -49, -49
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -675,10 +676,10 @@ static const yytype_int8 yydefact[] =
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int8 yypgoto[] =
{
- -57, -57, 65, -57, -57, 68, 22, -1, -57, -28,
- -57, -57, -57, 41, -57, -57, -56, -57, -57, -57,
- -57, -57, -57, -21, 59, 37, -57, -57, -57, -57,
- -57, -57, -57
+ -49, -49, 65, -49, -49, 66, 17, -1, -49, -28,
+ -49, -49, -49, 36, -49, -49, -48, -49, -49, -49,
+ -49, -49, -49, -32, 67, 35, -49, -49, -49, -49,
+ -49, -49, -49
};
/* YYDEFGOTO[NTERM-NUM]. */
@@ -695,47 +696,47 @@ static const yytype_int8 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int8 yytable[] =
{
- 5, 39, 10, 3, 13, 14, 2, 56, 62, 3,
- 81, 28, 68, 70, 71, 3, 13, 14, 23, 7,
- 52, 22, 25, 24, 26, 70, 96, 72, 73, 35,
- 11, 74, 81, 75, 64, 33, 57, 57, 79, 72,
- 73, 57, 36, 74, 76, 75, 77, 4, 3, 13,
- 14, 30, 15, 45, 46, 34, 76, 40, 77, 48,
- 79, 42, 53, 50, 51, 78, 60, 65, 69, 89,
- 91, 90, 92, 93, 94, 95, 97, 98, 100, 99,
- 102, 104, 103, 107, 27, 106, 101, 78, 105, 88,
- 61, 63, 0, 0, 37, 0, 0, 0, 0, 0,
- 0, 54
+ 5, 39, 56, 3, 13, 14, 62, 68, 2, 52,
+ 10, 3, 23, 70, 71, 45, 46, 24, 81, 7,
+ 22, 25, 35, 64, 3, 13, 14, 72, 73, 26,
+ 28, 74, 57, 75, 70, 96, 57, 57, 79, 11,
+ 81, 30, 3, 13, 14, 76, 15, 77, 72, 73,
+ 4, 33, 74, 34, 75, 36, 40, 48, 50, 42,
+ 79, 51, 53, 60, 97, 78, 76, 65, 77, 90,
+ 69, 94, 89, 91, 95, 92, 98, 99, 93, 102,
+ 104, 107, 27, 100, 88, 61, 103, 78, 106, 63,
+ 101, 0, 0, 105, 37, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 54
};
static const yytype_int8 yycheck[] =
{
- 1, 29, 14, 3, 4, 5, 0, 14, 14, 3,
- 66, 14, 14, 13, 14, 3, 4, 5, 7, 17,
- 41, 17, 17, 12, 17, 13, 14, 27, 28, 15,
- 42, 31, 88, 33, 55, 17, 43, 43, 66, 27,
- 28, 43, 8, 31, 44, 33, 46, 41, 3, 4,
- 5, 30, 7, 9, 10, 30, 44, 30, 46, 6,
- 88, 45, 30, 17, 17, 66, 17, 17, 30, 30,
- 30, 17, 30, 30, 17, 17, 15, 17, 30, 17,
- 17, 17, 30, 17, 16, 30, 35, 88, 32, 67,
- 49, 54, -1, -1, 29, -1, -1, -1, -1, -1,
- -1, 42
+ 1, 29, 14, 3, 4, 5, 14, 14, 0, 41,
+ 14, 3, 7, 13, 14, 9, 10, 12, 66, 17,
+ 17, 17, 15, 55, 3, 4, 5, 27, 28, 17,
+ 14, 31, 44, 33, 13, 14, 44, 44, 66, 43,
+ 88, 30, 3, 4, 5, 45, 7, 47, 27, 28,
+ 42, 17, 31, 30, 33, 8, 30, 6, 17, 46,
+ 88, 17, 30, 17, 15, 66, 45, 17, 47, 17,
+ 30, 17, 30, 30, 17, 30, 17, 17, 30, 17,
+ 17, 17, 16, 30, 67, 49, 30, 88, 30, 54,
+ 35, -1, -1, 32, 29, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 42
};
/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
state STATE-NUM. */
static const yytype_int8 yystos[] =
{
- 0, 48, 0, 3, 41, 54, 68, 17, 69, 55,
- 14, 42, 73, 4, 5, 7, 49, 52, 54, 56,
- 62, 63, 17, 7, 12, 17, 17, 52, 14, 51,
- 30, 71, 76, 17, 30, 15, 8, 49, 50, 56,
- 30, 75, 45, 72, 70, 9, 10, 60, 6, 59,
- 17, 17, 70, 30, 71, 74, 14, 43, 77, 58,
- 17, 60, 14, 72, 70, 17, 53, 57, 14, 30,
- 13, 14, 27, 28, 31, 33, 44, 46, 54, 56,
- 61, 63, 64, 65, 66, 67, 78, 79, 53, 30,
+ 0, 49, 0, 3, 42, 55, 69, 17, 70, 56,
+ 14, 43, 74, 4, 5, 7, 50, 53, 55, 57,
+ 63, 64, 17, 7, 12, 17, 17, 53, 14, 52,
+ 30, 72, 77, 17, 30, 15, 8, 50, 51, 57,
+ 30, 76, 46, 73, 71, 9, 10, 61, 6, 60,
+ 17, 17, 71, 30, 72, 75, 14, 44, 78, 59,
+ 17, 61, 14, 73, 71, 17, 54, 58, 14, 30,
+ 13, 14, 27, 28, 31, 33, 45, 47, 55, 57,
+ 62, 64, 65, 66, 67, 68, 79, 80, 54, 30,
17, 30, 30, 30, 17, 17, 14, 15, 17, 17,
30, 35, 17, 30, 17, 32, 30, 17
};
@@ -743,13 +744,13 @@ static const yytype_int8 yystos[] =
/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
static const yytype_int8 yyr1[] =
{
- 0, 47, 48, 48, 48, 49, 49, 49, 50, 50,
- 51, 51, 52, 52, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 55, 54, 57, 56, 58,
- 56, 59, 59, 60, 60, 61, 62, 63, 64, 64,
- 65, 66, 66, 66, 67, 67, 68, 69, 69, 70,
- 70, 71, 72, 72, 74, 73, 75, 73, 76, 73,
- 77, 78, 79
+ 0, 48, 49, 49, 49, 50, 50, 50, 51, 51,
+ 52, 52, 53, 53, 54, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 56, 55, 58, 57, 59,
+ 57, 60, 60, 61, 61, 62, 63, 64, 65, 65,
+ 66, 67, 67, 67, 68, 68, 69, 70, 70, 71,
+ 71, 72, 73, 73, 75, 74, 76, 74, 77, 74,
+ 78, 79, 80
};
/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
diff --git a/util/sconfig/sconfig.tab.h_shipped b/util/sconfig/sconfig.tab.h_shipped
index a35b64bdb96b..6996a237eabd 100644
--- a/util/sconfig/sconfig.tab.h_shipped
+++ b/util/sconfig/sconfig.tab.h_shipped
@@ -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_WERNER_COREBOOT_UTIL_SCONFIG_SCONFIG_TAB_H_SHIPPED_INCLUDED
+# define YY_YY_HOME_WERNER_COREBOOT_UTIL_SCONFIG_SCONFIG_TAB_H_SHIPPED_INCLUDED
/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
@@ -92,12 +92,13 @@ extern int yydebug;
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 */
- OPS = 301 /* OPS */
+ MDIO = 296, /* MDIO */
+ FW_CONFIG_TABLE = 297, /* FW_CONFIG_TABLE */
+ FW_CONFIG_FIELD = 298, /* FW_CONFIG_FIELD */
+ FW_CONFIG_OPTION = 299, /* FW_CONFIG_OPTION */
+ FW_CONFIG_PROBE = 300, /* FW_CONFIG_PROBE */
+ PIPE = 301, /* PIPE */
+ OPS = 302 /* OPS */
};
typedef enum yytokentype yytoken_kind_t;
#endif
@@ -126,4 +127,4 @@ extern YYSTYPE yylval;
int yyparse (void);
-#endif /* !YY_YY_HOME_ICON_COREBOOT_UTIL_SCONFIG_SCONFIG_TAB_H_SHIPPED_INCLUDED */
+#endif /* !YY_YY_HOME_WERNER_COREBOOT_UTIL_SCONFIG_SCONFIG_TAB_H_SHIPPED_INCLUDED */
diff --git a/util/sconfig/sconfig.y b/util/sconfig/sconfig.y
index fb5409f66215..35e1e5e08938 100644
--- a/util/sconfig/sconfig.y
+++ b/util/sconfig/sconfig.y
@@ -21,7 +21,7 @@ static struct fw_config_field_bits *cur_bits;
uint64_t number;
}
-%token CHIP DEVICE REGISTER ALIAS REFERENCE ASSOCIATION BOOL STATUS MANDATORY BUS RESOURCE END EQUALS HEX STRING PCI PNP I2C APIC CPU_CLUSTER CPU DOMAIN IRQ DRQ SLOT_DESC SMBIOS_DEV_INFO IO NUMBER SUBSYSTEMID INHERIT IOAPIC_IRQ IOAPIC PCIINT GENERIC SPI USB MMIO GPIO FW_CONFIG_TABLE FW_CONFIG_FIELD FW_CONFIG_OPTION FW_CONFIG_PROBE PIPE OPS
+%token CHIP DEVICE REGISTER ALIAS REFERENCE ASSOCIATION BOOL STATUS MANDATORY BUS RESOURCE END EQUALS HEX STRING PCI PNP I2C APIC CPU_CLUSTER CPU DOMAIN IRQ DRQ SLOT_DESC SMBIOS_DEV_INFO IO NUMBER SUBSYSTEMID INHERIT IOAPIC_IRQ IOAPIC PCIINT GENERIC SPI USB MMIO GPIO MDIO FW_CONFIG_TABLE FW_CONFIG_FIELD FW_CONFIG_OPTION FW_CONFIG_PROBE PIPE OPS
%%
devtree: { cur_parent = root_parent; } | devtree chip | devtree fw_config_table;