summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
Diffstat (limited to 'util')
-rw-r--r--util/sconfig/lex.yy.c_shipped339
-rw-r--r--util/sconfig/main.c9
-rw-r--r--util/sconfig/sconfig.h4
-rw-r--r--util/sconfig/sconfig.l1
-rw-r--r--util/sconfig/sconfig.tab.c_shipped206
-rw-r--r--util/sconfig/sconfig.tab.h_shipped11
-rw-r--r--util/sconfig/sconfig.y5
7 files changed, 304 insertions, 271 deletions
diff --git a/util/sconfig/lex.yy.c_shipped b/util/sconfig/lex.yy.c_shipped
index 3fc7ddcc4c..5554a353c4 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 48
-#define YY_END_OF_BUFFER 49
+#define YY_NUM_RULES 49
+#define YY_END_OF_BUFFER 50
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -358,30 +358,31 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static const flex_int16_t yy_accept[197] =
+static const flex_int16_t yy_accept[209] =
{ 0,
- 0, 0, 49, 47, 1, 3, 47, 47, 47, 43,
- 43, 40, 44, 44, 44, 44, 44, 44, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 41, 47, 1,
- 3, 47, 0, 47, 47, 0, 2, 43, 44, 47,
- 47, 10, 47, 47, 44, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 34, 47, 47, 47, 47,
- 47, 16, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 46, 46, 47, 0, 42, 47, 47, 24, 47,
- 47, 33, 37, 47, 47, 47, 47, 47, 22, 47,
- 32, 47, 47, 47, 17, 7, 47, 20, 21, 47,
-
- 9, 47, 47, 28, 47, 29, 8, 47, 0, 47,
- 4, 47, 47, 47, 47, 47, 47, 30, 47, 47,
- 47, 31, 27, 47, 47, 47, 47, 47, 45, 45,
- 6, 47, 47, 47, 13, 47, 47, 47, 47, 47,
- 47, 15, 47, 47, 47, 47, 5, 25, 47, 47,
- 18, 47, 47, 14, 47, 47, 47, 47, 47, 26,
- 35, 47, 47, 47, 47, 47, 47, 47, 11, 47,
- 47, 47, 47, 12, 19, 47, 47, 47, 47, 47,
- 47, 47, 23, 47, 47, 36, 47, 47, 47, 47,
- 47, 47, 39, 47, 38, 0
-
+ 0, 0, 50, 48, 1, 3, 48, 48, 48, 44,
+ 44, 41, 45, 45, 45, 45, 45, 45, 48, 48,
+ 48, 48, 48, 48, 48, 48, 48, 42, 48, 1,
+ 3, 48, 0, 48, 48, 0, 2, 44, 45, 48,
+ 48, 10, 48, 48, 45, 48, 48, 48, 48, 48,
+ 48, 48, 48, 48, 48, 35, 48, 48, 48, 48,
+ 48, 17, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 48, 47, 47, 48, 0, 43, 48, 48, 25,
+ 48, 48, 34, 38, 48, 48, 48, 48, 48, 23,
+ 48, 33, 48, 48, 48, 18, 7, 48, 21, 22,
+
+ 48, 9, 48, 48, 29, 48, 48, 30, 8, 48,
+ 0, 48, 4, 48, 48, 48, 48, 48, 48, 31,
+ 48, 48, 48, 32, 28, 48, 48, 48, 48, 48,
+ 48, 46, 46, 6, 48, 48, 48, 13, 48, 48,
+ 48, 48, 48, 48, 15, 48, 48, 48, 48, 48,
+ 5, 26, 48, 48, 19, 48, 48, 14, 48, 48,
+ 48, 48, 48, 48, 27, 36, 48, 48, 48, 48,
+ 48, 48, 48, 48, 11, 48, 48, 48, 48, 48,
+ 12, 20, 48, 48, 48, 48, 48, 48, 48, 48,
+ 48, 24, 48, 48, 37, 48, 48, 48, 48, 48,
+
+ 48, 16, 48, 48, 40, 48, 39, 0
} ;
static const YY_CHAR yy_ec[256] =
@@ -424,61 +425,63 @@ static const YY_CHAR yy_meta[37] =
1, 1, 1, 1, 1, 1
} ;
-static const flex_int16_t yy_base[204] =
+static const flex_int16_t yy_base[216] =
{ 0,
- 0, 0, 265, 0, 262, 266, 260, 35, 39, 36,
- 228, 0, 48, 51, 55, 75, 61, 58, 22, 240,
- 62, 81, 75, 74, 243, 82, 230, 0, 0, 256,
- 266, 104, 252, 109, 74, 253, 266, 0, 108, 111,
- 234, 0, 233, 222, 123, 229, 224, 234, 232, 236,
- 223, 225, 229, 229, 223, 0, 215, 217, 219, 218,
- 220, 0, 66, 216, 210, 210, 115, 220, 212, 218,
- 121, 0, 266, 134, 226, 0, 217, 203, 216, 206,
- 213, 0, 0, 203, 209, 206, 197, 205, 0, 203,
- 0, 203, 193, 192, 0, 0, 195, 0, 0, 201,
-
- 0, 193, 192, 0, 183, 0, 0, 206, 205, 180,
- 0, 193, 192, 185, 189, 179, 175, 0, 185, 173,
- 187, 0, 0, 174, 181, 168, 171, 160, 0, 266,
- 0, 172, 176, 168, 0, 167, 169, 165, 167, 157,
- 162, 0, 155, 155, 154, 151, 0, 0, 163, 165,
- 0, 149, 153, 0, 160, 164, 145, 145, 152, 0,
- 0, 144, 143, 45, 153, 139, 149, 119, 0, 136,
- 130, 128, 133, 0, 0, 117, 123, 126, 118, 133,
- 114, 127, 0, 121, 129, 0, 116, 107, 103, 93,
- 63, 49, 0, 57, 0, 266, 45, 155, 157, 159,
-
- 161, 163, 165
+ 0, 0, 277, 0, 274, 278, 272, 35, 39, 36,
+ 240, 0, 48, 51, 55, 75, 61, 58, 22, 252,
+ 62, 81, 75, 74, 255, 82, 48, 0, 0, 269,
+ 278, 104, 265, 109, 93, 266, 278, 0, 108, 111,
+ 247, 0, 246, 235, 123, 242, 237, 247, 245, 249,
+ 236, 238, 242, 242, 236, 0, 228, 230, 232, 231,
+ 233, 0, 104, 229, 223, 223, 117, 233, 225, 231,
+ 218, 123, 0, 278, 136, 238, 0, 229, 215, 228,
+ 218, 225, 0, 0, 215, 221, 218, 209, 217, 0,
+ 215, 0, 215, 205, 204, 0, 0, 207, 0, 0,
+
+ 213, 0, 205, 204, 0, 195, 195, 0, 0, 217,
+ 216, 191, 0, 204, 203, 196, 200, 190, 186, 0,
+ 196, 184, 198, 0, 0, 185, 192, 179, 182, 171,
+ 180, 0, 278, 0, 182, 186, 178, 0, 177, 179,
+ 175, 177, 167, 172, 0, 165, 165, 164, 160, 160,
+ 0, 0, 172, 174, 0, 158, 162, 0, 169, 173,
+ 154, 162, 153, 160, 0, 0, 152, 151, 45, 161,
+ 148, 146, 156, 139, 0, 156, 150, 148, 149, 152,
+ 0, 0, 136, 129, 132, 127, 123, 138, 119, 132,
+ 123, 0, 125, 133, 0, 127, 119, 126, 107, 103,
+
+ 93, 0, 63, 49, 0, 61, 0, 278, 45, 155,
+ 157, 159, 161, 163, 165
} ;
-static const flex_int16_t yy_def[204] =
+static const flex_int16_t yy_def[216] =
{ 0,
- 196, 1, 196, 197, 196, 196, 197, 198, 199, 197,
- 10, 197, 10, 10, 10, 10, 10, 10, 197, 197,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 196,
- 196, 198, 200, 201, 199, 202, 196, 10, 10, 10,
- 197, 197, 197, 197, 10, 197, 197, 197, 197, 197,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- 197, 197, 196, 201, 203, 40, 197, 197, 197, 197,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
-
- 197, 197, 197, 197, 197, 197, 197, 197, 196, 197,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 196,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- 197, 197, 197, 197, 197, 0, 196, 196, 196, 196,
-
- 196, 196, 196
+ 208, 1, 208, 209, 208, 208, 209, 210, 211, 209,
+ 10, 209, 10, 10, 10, 10, 10, 10, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 208,
+ 208, 210, 212, 213, 211, 214, 208, 10, 10, 10,
+ 209, 209, 209, 209, 10, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 208, 213, 215, 40, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 208, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 208, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+
+ 209, 209, 209, 209, 209, 209, 209, 0, 208, 208,
+ 208, 208, 208, 208, 208
} ;
-static const flex_int16_t yy_nxt[303] =
+static const flex_int16_t yy_nxt[315] =
{ 0,
4, 5, 6, 7, 8, 9, 10, 11, 10, 12,
13, 4, 14, 13, 15, 16, 17, 18, 19, 20,
@@ -486,72 +489,74 @@ static const flex_int16_t yy_nxt[303] =
27, 4, 4, 4, 4, 28, 33, 33, 51, 34,
36, 37, 38, 38, 38, 29, 39, 52, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 170, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 54, 195, 41, 171, 43, 36, 37, 194, 49, 42,
- 44, 39, 39, 39, 48, 55, 56, 193, 64, 57,
- 50, 45, 61, 58, 96, 97, 59, 65, 62, 46,
-
- 63, 66, 47, 60, 68, 33, 33, 69, 72, 192,
- 75, 75, 70, 29, 39, 39, 39, 76, 76, 76,
- 191, 76, 190, 76, 76, 76, 76, 76, 76, 39,
- 39, 39, 101, 102, 106, 75, 75, 107, 108, 189,
- 188, 187, 186, 185, 184, 183, 182, 181, 180, 179,
- 178, 177, 176, 175, 80, 32, 32, 35, 35, 33,
- 33, 74, 74, 36, 36, 75, 75, 174, 173, 172,
- 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, 113, 112, 111, 110,
- 109, 105, 104, 103, 100, 99, 98, 95, 94, 93,
- 92, 91, 90, 89, 88, 87, 86, 85, 84, 83,
- 82, 81, 79, 78, 77, 37, 73, 30, 71, 67,
- 53, 40, 31, 30, 196, 3, 196, 196, 196, 196,
- 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
- 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
- 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
-
- 196, 196
+ 176, 39, 39, 39, 39, 39, 39, 39, 39, 39,
+ 54, 71, 41, 177, 43, 207, 72, 206, 49, 42,
+ 44, 39, 39, 39, 48, 55, 56, 205, 64, 57,
+ 50, 45, 61, 58, 36, 37, 59, 65, 62, 46,
+
+ 63, 66, 47, 60, 68, 33, 33, 69, 73, 204,
+ 76, 76, 70, 29, 39, 39, 39, 77, 77, 77,
+ 203, 77, 202, 77, 77, 77, 77, 77, 77, 39,
+ 39, 39, 97, 98, 102, 103, 108, 76, 76, 109,
+ 110, 201, 200, 199, 198, 197, 196, 195, 194, 193,
+ 192, 191, 190, 189, 81, 32, 32, 35, 35, 33,
+ 33, 75, 75, 36, 36, 76, 76, 188, 187, 186,
+ 185, 184, 183, 182, 181, 180, 179, 178, 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,
+ 113, 112, 111, 107, 106, 105, 104, 101, 100, 99,
+ 96, 95, 94, 93, 92, 91, 90, 89, 88, 87,
+ 86, 85, 84, 83, 82, 80, 79, 78, 37, 74,
+ 30, 67, 53, 40, 31, 30, 208, 3, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208
} ;
-static const flex_int16_t yy_chk[303] =
+static const flex_int16_t yy_chk[315] =
{ 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, 8, 8, 19, 8,
- 9, 9, 10, 10, 10, 197, 10, 19, 10, 10,
+ 9, 9, 10, 10, 10, 209, 10, 19, 10, 10,
10, 10, 10, 10, 13, 13, 13, 14, 14, 14,
- 164, 15, 15, 15, 18, 18, 18, 17, 17, 17,
- 21, 194, 14, 164, 15, 35, 35, 192, 18, 14,
- 15, 16, 16, 16, 17, 21, 21, 191, 24, 21,
- 18, 16, 23, 22, 63, 63, 22, 24, 23, 16,
+ 169, 15, 15, 15, 18, 18, 18, 17, 17, 17,
+ 21, 27, 14, 169, 15, 206, 27, 204, 18, 14,
+ 15, 16, 16, 16, 17, 21, 21, 203, 24, 21,
+ 18, 16, 23, 22, 35, 35, 22, 24, 23, 16,
- 23, 24, 16, 22, 26, 32, 32, 26, 32, 190,
+ 23, 24, 16, 22, 26, 32, 32, 26, 32, 201,
34, 34, 26, 34, 39, 39, 39, 40, 40, 40,
- 189, 40, 188, 40, 40, 40, 40, 40, 40, 45,
- 45, 45, 67, 67, 71, 74, 74, 71, 74, 187,
- 185, 184, 182, 181, 180, 179, 178, 177, 176, 173,
- 172, 171, 170, 168, 45, 198, 198, 199, 199, 200,
- 200, 201, 201, 202, 202, 203, 203, 167, 166, 165,
- 163, 162, 159, 158, 157, 156, 155, 153, 152, 150,
- 149, 146, 145, 144, 143, 141, 140, 139, 138, 137,
- 136, 134, 133, 132, 128, 127, 126, 125, 124, 121,
-
- 120, 119, 117, 116, 115, 114, 113, 112, 110, 109,
- 108, 105, 103, 102, 100, 97, 94, 93, 92, 90,
- 88, 87, 86, 85, 84, 81, 80, 79, 78, 77,
- 75, 70, 69, 68, 66, 65, 64, 61, 60, 59,
- 58, 57, 55, 54, 53, 52, 51, 50, 49, 48,
- 47, 46, 44, 43, 41, 36, 33, 30, 27, 25,
- 20, 11, 7, 5, 3, 196, 196, 196, 196, 196,
- 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
- 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
- 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
-
- 196, 196
+ 200, 40, 199, 40, 40, 40, 40, 40, 40, 45,
+ 45, 45, 63, 63, 67, 67, 72, 75, 75, 72,
+ 75, 198, 197, 196, 194, 193, 191, 190, 189, 188,
+ 187, 186, 185, 184, 45, 210, 210, 211, 211, 212,
+ 212, 213, 213, 214, 214, 215, 215, 183, 180, 179,
+ 178, 177, 176, 174, 173, 172, 171, 170, 168, 167,
+ 164, 163, 162, 161, 160, 159, 157, 156, 154, 153,
+ 150, 149, 148, 147, 146, 144, 143, 142, 141, 140,
+
+ 139, 137, 136, 135, 131, 130, 129, 128, 127, 126,
+ 123, 122, 121, 119, 118, 117, 116, 115, 114, 112,
+ 111, 110, 107, 106, 104, 103, 101, 98, 95, 94,
+ 93, 91, 89, 88, 87, 86, 85, 82, 81, 80,
+ 79, 78, 76, 71, 70, 69, 68, 66, 65, 64,
+ 61, 60, 59, 58, 57, 55, 54, 53, 52, 51,
+ 50, 49, 48, 47, 46, 44, 43, 41, 36, 33,
+ 30, 25, 20, 11, 7, 5, 3, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208
} ;
static yy_state_type yy_last_accepting_state;
@@ -816,13 +821,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 >= 197 )
+ if ( yy_current_state >= 209 )
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] != 266 );
+ while ( yy_base[yy_current_state] != 278 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
@@ -910,111 +915,111 @@ YY_RULE_SETUP
YY_BREAK
case 16:
YY_RULE_SETUP
-{yylval.number=1; return(BOOL);}
+{return(FW_CONFIG_UNPROVISIONED);}
YY_BREAK
case 17:
YY_RULE_SETUP
-{yylval.number=0; return(BOOL);}
+{yylval.number=1; return(BOOL);}
YY_BREAK
case 18:
YY_RULE_SETUP
-{yylval.number=3; return(STATUS);}
+{yylval.number=0; return(BOOL);}
YY_BREAK
case 19:
YY_RULE_SETUP
-{yylval.number=5; return(STATUS);}
+{yylval.number=3; return(STATUS);}
YY_BREAK
case 20:
YY_RULE_SETUP
-{yylval.number=PCI; return(BUS);}
+{yylval.number=5; return(STATUS);}
YY_BREAK
case 21:
YY_RULE_SETUP
-{yylval.number=PNP; return(BUS);}
+{yylval.number=PCI; return(BUS);}
YY_BREAK
case 22:
YY_RULE_SETUP
-{yylval.number=I2C; return(BUS);}
+{yylval.number=PNP; return(BUS);}
YY_BREAK
case 23:
YY_RULE_SETUP
-{yylval.number=CPU_CLUSTER; return(BUS);}
+{yylval.number=I2C; return(BUS);}
YY_BREAK
case 24:
YY_RULE_SETUP
-{yylval.number=CPU; return(BUS);}
+{yylval.number=CPU_CLUSTER; return(BUS);}
YY_BREAK
case 25:
YY_RULE_SETUP
-{yylval.number=DOMAIN; return(BUS);}
+{yylval.number=CPU; return(BUS);}
YY_BREAK
case 26:
YY_RULE_SETUP
-{yylval.number=GENERIC; return(BUS);}
+{yylval.number=DOMAIN; return(BUS);}
YY_BREAK
case 27:
YY_RULE_SETUP
-{yylval.number=MMIO; return(BUS);}
+{yylval.number=GENERIC; return(BUS);}
YY_BREAK
case 28:
YY_RULE_SETUP
-{yylval.number=SPI; return(BUS);}
+{yylval.number=MMIO; return(BUS);}
YY_BREAK
case 29:
YY_RULE_SETUP
-{yylval.number=USB; return(BUS);}
+{yylval.number=SPI; return(BUS);}
YY_BREAK
case 30:
YY_RULE_SETUP
-{yylval.number=GPIO; return(BUS);}
+{yylval.number=USB; return(BUS);}
YY_BREAK
case 31:
YY_RULE_SETUP
-{yylval.number=MDIO; return(BUS);}
+{yylval.number=GPIO; return(BUS);}
YY_BREAK
case 32:
YY_RULE_SETUP
-{yylval.number=IRQ; return(RESOURCE);}
+{yylval.number=MDIO; return(BUS);}
YY_BREAK
case 33:
YY_RULE_SETUP
-{yylval.number=DRQ; return(RESOURCE);}
+{yylval.number=IRQ; return(RESOURCE);}
YY_BREAK
case 34:
YY_RULE_SETUP
-{yylval.number=IO; return(RESOURCE);}
+{yylval.number=DRQ; return(RESOURCE);}
YY_BREAK
case 35:
YY_RULE_SETUP
-{return(INHERIT);}
+{yylval.number=IO; return(RESOURCE);}
YY_BREAK
case 36:
YY_RULE_SETUP
-{return(SUBSYSTEMID);}
+{return(INHERIT);}
YY_BREAK
case 37:
YY_RULE_SETUP
-{return(END);}
+{return(SUBSYSTEMID);}
YY_BREAK
case 38:
YY_RULE_SETUP
-{return(SLOT_DESC);}
+{return(END);}
YY_BREAK
case 39:
YY_RULE_SETUP
-{return(SMBIOS_DEV_INFO);}
+{return(SLOT_DESC);}
YY_BREAK
case 40:
YY_RULE_SETUP
-{return(EQUALS);}
+{return(SMBIOS_DEV_INFO);}
YY_BREAK
case 41:
YY_RULE_SETUP
-{return(PIPE);}
+{return(EQUALS);}
YY_BREAK
case 42:
YY_RULE_SETUP
-{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);}
+{return(PIPE);}
YY_BREAK
case 43:
YY_RULE_SETUP
@@ -1025,9 +1030,8 @@ YY_RULE_SETUP
{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);}
YY_BREAK
case 45:
-/* rule 45 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(NUMBER);}
YY_BREAK
case 46:
/* rule 46 can match eol */
@@ -1035,11 +1039,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 47:
+/* rule 47 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 48:
YY_RULE_SETUP
+{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(STRING);}
+ YY_BREAK
+case 49:
+YY_RULE_SETUP
ECHO;
YY_BREAK
case YY_STATE_EOF(INITIAL):
@@ -1338,7 +1347,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 >= 197 )
+ if ( yy_current_state >= 209 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -1366,11 +1375,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 >= 197 )
+ if ( yy_current_state >= 209 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 196);
+ yy_is_jam = (yy_current_state == 208);
return yy_is_jam ? 0 : yy_current_state;
}
diff --git a/util/sconfig/main.c b/util/sconfig/main.c
index acab06aace..c06e67ecac 100644
--- a/util/sconfig/main.c
+++ b/util/sconfig/main.c
@@ -581,6 +581,11 @@ void add_fw_config_probe(struct bus *bus, const char *field, const char *option)
append_fw_config_probe_to_dev(bus->dev, probe);
}
+void probe_unprovisioned_fw_config(struct bus *bus)
+{
+ bus->dev->enable_on_unprovisioned_fw_config = true;
+}
+
static uint64_t compute_fw_config_mask(const struct fw_config_field_bits *bits)
{
uint64_t mask = 0;
@@ -1260,6 +1265,8 @@ static void pass1(FILE *fil, FILE *head, struct device *ptr, struct device *next
fprintf(fil, "\t.sibling = NULL,\n");
if (ptr->probe)
fprintf(fil, "\t.probe_list = %s_probe_list,\n", ptr->name);
+ fprintf(fil, "\t.enable_on_unprovisioned_fw_config = %d,\n",
+ ptr->enable_on_unprovisioned_fw_config);
fprintf(fil, "#if !DEVTREE_EARLY\n");
fprintf(fil, "\t.chip_ops = &%s_ops,\n",
chip_ins->chip->name_underscore);
@@ -1783,6 +1790,8 @@ static void update_device(struct device *base_dev, struct device *override_dev)
* to allow an override to remove a probe from the base device.
*/
base_dev->probe = override_dev->probe;
+ base_dev->enable_on_unprovisioned_fw_config =
+ override_dev->enable_on_unprovisioned_fw_config;
/* Copy SMBIOS slot information from base device */
base_dev->smbios_slot_type = override_dev->smbios_slot_type;
diff --git a/util/sconfig/sconfig.h b/util/sconfig/sconfig.h
index bb9a98f268..5fc8b4fbfc 100644
--- a/util/sconfig/sconfig.h
+++ b/util/sconfig/sconfig.h
@@ -8,6 +8,7 @@
#include <sys/types.h>
#include <unistd.h>
#include <errno.h>
+#include <stdbool.h>
struct resource;
struct resource {
@@ -176,6 +177,7 @@ struct device {
/* List of field+option to probe. */
struct fw_config_probe *probe;
+ bool enable_on_unprovisioned_fw_config;
};
extern struct bus *root_parent;
@@ -226,4 +228,6 @@ void add_fw_config_probe(struct bus *bus, const char *field, const char *option)
void append_fw_config_bits(struct fw_config_field_bits **bits,
unsigned int start_bit, unsigned int end_bit);
+void probe_unprovisioned_fw_config(struct bus *bus);
+
void add_device_ops(struct bus *, char *ops_id);
diff --git a/util/sconfig/sconfig.l b/util/sconfig/sconfig.l
index 0e4e708adb..e0e3c6b770 100644
--- a/util/sconfig/sconfig.l
+++ b/util/sconfig/sconfig.l
@@ -23,6 +23,7 @@ fw_config {return(FW_CONFIG_TABLE);}
field {return(FW_CONFIG_FIELD);}
option {return(FW_CONFIG_OPTION);}
probe {return(FW_CONFIG_PROBE);}
+unprovisioned {return(FW_CONFIG_UNPROVISIONED);}
on {yylval.number=1; return(BOOL);}
off {yylval.number=0; return(BOOL);}
hidden {yylval.number=3; return(STATUS);}
diff --git a/util/sconfig/sconfig.tab.c_shipped b/util/sconfig/sconfig.tab.c_shipped
index 5b10922a89..b0252cdcf3 100644
--- a/util/sconfig/sconfig.tab.c_shipped
+++ b/util/sconfig/sconfig.tab.c_shipped
@@ -153,40 +153,41 @@ enum yysymbol_kind_t
YYSYMBOL_FW_CONFIG_FIELD = 40, /* FW_CONFIG_FIELD */
YYSYMBOL_FW_CONFIG_OPTION = 41, /* FW_CONFIG_OPTION */
YYSYMBOL_FW_CONFIG_PROBE = 42, /* FW_CONFIG_PROBE */
- YYSYMBOL_PIPE = 43, /* PIPE */
- YYSYMBOL_OPS = 44, /* OPS */
- YYSYMBOL_YYACCEPT = 45, /* $accept */
- YYSYMBOL_devtree = 46, /* devtree */
- YYSYMBOL_chipchild_nondev = 47, /* chipchild_nondev */
- YYSYMBOL_chipchild = 48, /* chipchild */
- YYSYMBOL_chipchildren = 49, /* chipchildren */
- YYSYMBOL_chipchildren_dev = 50, /* chipchildren_dev */
- YYSYMBOL_devicechildren = 51, /* devicechildren */
- YYSYMBOL_chip = 52, /* chip */
- YYSYMBOL_53_1 = 53, /* @1 */
- YYSYMBOL_device = 54, /* device */
- YYSYMBOL_55_2 = 55, /* @2 */
- YYSYMBOL_56_3 = 56, /* @3 */
- YYSYMBOL_alias = 57, /* alias */
- YYSYMBOL_status = 58, /* status */
- YYSYMBOL_resource = 59, /* resource */
- YYSYMBOL_reference = 60, /* reference */
- YYSYMBOL_registers = 61, /* registers */
- YYSYMBOL_subsystemid = 62, /* subsystemid */
- YYSYMBOL_smbios_slot_desc = 63, /* smbios_slot_desc */
- YYSYMBOL_smbios_dev_info = 64, /* smbios_dev_info */
- YYSYMBOL_fw_config_table = 65, /* fw_config_table */
- YYSYMBOL_fw_config_table_children = 66, /* fw_config_table_children */
- YYSYMBOL_fw_config_field_children = 67, /* fw_config_field_children */
- YYSYMBOL_fw_config_field_bits = 68, /* fw_config_field_bits */
- YYSYMBOL_fw_config_field_bits_repeating = 69, /* fw_config_field_bits_repeating */
- YYSYMBOL_fw_config_field = 70, /* fw_config_field */
- YYSYMBOL_71_4 = 71, /* $@4 */
- YYSYMBOL_72_5 = 72, /* $@5 */
- YYSYMBOL_73_6 = 73, /* $@6 */
- YYSYMBOL_fw_config_option = 74, /* fw_config_option */
- YYSYMBOL_fw_config_probe = 75, /* fw_config_probe */
- YYSYMBOL_ops = 76 /* ops */
+ YYSYMBOL_FW_CONFIG_UNPROVISIONED = 43, /* FW_CONFIG_UNPROVISIONED */
+ YYSYMBOL_PIPE = 44, /* PIPE */
+ YYSYMBOL_OPS = 45, /* OPS */
+ YYSYMBOL_YYACCEPT = 46, /* $accept */
+ YYSYMBOL_devtree = 47, /* devtree */
+ YYSYMBOL_chipchild_nondev = 48, /* chipchild_nondev */
+ YYSYMBOL_chipchild = 49, /* chipchild */
+ YYSYMBOL_chipchildren = 50, /* chipchildren */
+ YYSYMBOL_chipchildren_dev = 51, /* chipchildren_dev */
+ YYSYMBOL_devicechildren = 52, /* devicechildren */
+ YYSYMBOL_chip = 53, /* chip */
+ YYSYMBOL_54_1 = 54, /* @1 */
+ YYSYMBOL_device = 55, /* device */
+ YYSYMBOL_56_2 = 56, /* @2 */
+ YYSYMBOL_57_3 = 57, /* @3 */
+ YYSYMBOL_alias = 58, /* alias */
+ YYSYMBOL_status = 59, /* status */
+ YYSYMBOL_resource = 60, /* resource */
+ YYSYMBOL_reference = 61, /* reference */
+ YYSYMBOL_registers = 62, /* registers */
+ YYSYMBOL_subsystemid = 63, /* subsystemid */
+ YYSYMBOL_smbios_slot_desc = 64, /* smbios_slot_desc */
+ YYSYMBOL_smbios_dev_info = 65, /* smbios_dev_info */
+ YYSYMBOL_fw_config_table = 66, /* fw_config_table */
+ YYSYMBOL_fw_config_table_children = 67, /* fw_config_table_children */
+ YYSYMBOL_fw_config_field_children = 68, /* fw_config_field_children */
+ YYSYMBOL_fw_config_field_bits = 69, /* fw_config_field_bits */
+ YYSYMBOL_fw_config_field_bits_repeating = 70, /* fw_config_field_bits_repeating */
+ YYSYMBOL_fw_config_field = 71, /* fw_config_field */
+ YYSYMBOL_72_4 = 72, /* $@4 */
+ YYSYMBOL_73_5 = 73, /* $@5 */
+ YYSYMBOL_74_6 = 74, /* $@6 */
+ YYSYMBOL_fw_config_option = 75, /* fw_config_option */
+ YYSYMBOL_fw_config_probe = 76, /* fw_config_probe */
+ YYSYMBOL_ops = 77 /* ops */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -514,19 +515,19 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 94
+#define YYLAST 93
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 45
+#define YYNTOKENS 46
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 32
/* YYNRULES -- Number of rules. */
-#define YYNRULES 60
+#define YYNRULES 61
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 103
+#define YYNSTATES 104
/* YYMAXUTOK -- Last valid token kind. */
-#define YYMAXUTOK 299
+#define YYMAXUTOK 300
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
@@ -569,7 +570,8 @@ static const yytype_int8 yytranslate[] =
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
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
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45
};
#if YYDEBUG
@@ -582,7 +584,7 @@ static const yytype_uint8 yyrline[] =
61, 63, 67, 67, 69, 72, 75, 78, 81, 84,
87, 90, 93, 96, 100, 103, 103, 106, 106, 109,
115, 115, 118, 117, 122, 122, 130, 130, 136, 140,
- 143
+ 143, 146
};
#endif
@@ -604,15 +606,15 @@ static const char *const yytname[] =
"PNP", "I2C", "CPU_CLUSTER", "CPU", "DOMAIN", "IRQ", "DRQ", "SLOT_DESC",
"SMBIOS_DEV_INFO", "IO", "NUMBER", "SUBSYSTEMID", "INHERIT", "PCIINT",
"GENERIC", "SPI", "USB", "MMIO", "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", "resource", "reference", "registers", "subsystemid",
- "smbios_slot_desc", "smbios_dev_info", "fw_config_table",
- "fw_config_table_children", "fw_config_field_children",
- "fw_config_field_bits", "fw_config_field_bits_repeating",
- "fw_config_field", "$@4", "$@5", "$@6", "fw_config_option",
- "fw_config_probe", "ops", YY_NULLPTR
+ "FW_CONFIG_FIELD", "FW_CONFIG_OPTION", "FW_CONFIG_PROBE",
+ "FW_CONFIG_UNPROVISIONED", "PIPE", "OPS", "$accept", "devtree",
+ "chipchild_nondev", "chipchild", "chipchildren", "chipchildren_dev",
+ "devicechildren", "chip", "@1", "device", "@2", "@3", "alias", "status",
+ "resource", "reference", "registers", "subsystemid", "smbios_slot_desc",
+ "smbios_dev_info", "fw_config_table", "fw_config_table_children",
+ "fw_config_field_children", "fw_config_field_bits",
+ "fw_config_field_bits_repeating", "fw_config_field", "$@4", "$@5", "$@6",
+ "fw_config_option", "fw_config_probe", "ops", YY_NULLPTR
};
static const char *
@@ -636,17 +638,17 @@ yysymbol_name (yysymbol_kind_t yysymbol)
STATE-NUM. */
static const yytype_int8 yypact[] =
{
- -51, 12, -51, 6, -51, -51, -51, -51, -3, 49,
- -51, 7, -51, 10, 23, 24, 49, 14, -51, -51,
- -51, -51, 16, 26, 17, 33, 42, -51, -51, 49,
- 28, 18, -51, 11, 53, 38, 43, -51, -51, -51,
- -51, -51, 34, -51, -12, -51, -51, -51, 45, 11,
- -51, -51, -8, 28, 18, -51, -51, 47, -51, -51,
+ -51, 12, -51, 4, -51, -51, -51, -51, -3, 49,
+ -51, 11, -51, 10, 23, 24, 49, 29, -51, -51,
+ -51, -51, 15, 31, 20, 40, 51, -51, -51, 49,
+ 28, 16, -51, 14, 55, 45, 46, -51, -51, -51,
+ -51, -51, 35, -51, -12, -51, -51, -51, 50, 14,
+ -51, -51, -8, 28, 16, -51, -51, 52, -51, -51,
-51, -51, -51, -51, -7, 37, 0, -51, -51, -51,
- 39, -51, 50, 40, 41, 54, 55, -51, -51, -51,
- -51, -51, -51, -51, -51, -51, 5, 58, 57, 59,
- 46, 60, -51, -51, 51, 61, -51, 48, -51, -51,
- 64, -51, -51
+ 39, -51, 53, 42, 43, 3, 56, -51, -51, -51,
+ -51, -51, -51, -51, -51, -51, 5, 59, 58, 60,
+ 47, 61, -51, -51, -51, 54, 62, -51, 57, -51,
+ -51, 63, -51, -51
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -663,16 +665,16 @@ static const yytype_int8 yydefact[] =
31, 26, 55, 50, 0, 0, 0, 23, 53, 58,
0, 29, 0, 0, 0, 0, 0, 15, 14, 16,
20, 17, 18, 19, 21, 22, 0, 0, 0, 43,
- 0, 0, 60, 27, 0, 41, 42, 37, 59, 34,
- 40, 38, 39
+ 0, 0, 60, 61, 27, 0, 41, 42, 37, 59,
+ 34, 40, 38, 39
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int8 yypgoto[] =
{
- -51, -51, 62, -51, -51, 66, 19, -1, -51, -28,
- -51, -51, -51, 35, -51, -51, -50, -51, -51, -51,
- -51, -51, -16, 52, 29, -51, -51, -51, -51, -51,
+ -51, -51, 64, -51, -51, 65, 17, -1, -51, -28,
+ -51, -51, -51, 33, -51, -51, -50, -51, -51, -51,
+ -51, -51, -16, 44, 36, -51, -51, -51, -51, -51,
-51, -51
};
@@ -691,58 +693,58 @@ static const yytype_int8 yydefgoto[] =
static const yytype_int8 yytable[] =
{
5, 39, 56, 3, 13, 14, 62, 68, 3, 13,
- 14, 10, 2, 70, 71, 3, 80, 23, 70, 93,
- 45, 46, 24, 7, 22, 52, 72, 73, 28, 57,
+ 14, 10, 2, 70, 71, 3, 80, 23, 70, 94,
+ 91, 7, 24, 45, 46, 52, 72, 73, 22, 57,
74, 72, 73, 57, 57, 74, 80, 11, 78, 64,
- 25, 26, 75, 33, 76, 30, 34, 75, 35, 76,
- 36, 4, 3, 13, 14, 50, 15, 40, 78, 48,
- 51, 42, 60, 53, 65, 77, 69, 88, 87, 89,
- 90, 91, 92, 94, 95, 97, 96, 98, 100, 101,
- 99, 102, 27, 63, 61, 77, 86, 0, 0, 0,
- 0, 37, 0, 0, 54
+ 25, 26, 75, 28, 30, 76, 92, 75, 33, 34,
+ 76, 4, 3, 13, 14, 35, 15, 40, 78, 36,
+ 42, 48, 50, 51, 53, 77, 69, 60, 87, 65,
+ 88, 89, 90, 93, 95, 96, 98, 97, 99, 101,
+ 103, 27, 61, 100, 86, 77, 54, 0, 102, 0,
+ 63, 0, 0, 37
};
static const yytype_int8 yycheck[] =
{
1, 29, 14, 3, 4, 5, 14, 14, 3, 4,
5, 14, 0, 13, 14, 3, 66, 7, 13, 14,
- 9, 10, 12, 17, 17, 41, 26, 27, 14, 41,
+ 17, 17, 12, 9, 10, 41, 26, 27, 17, 41,
30, 26, 27, 41, 41, 30, 86, 40, 66, 55,
- 17, 17, 42, 17, 44, 29, 29, 42, 15, 44,
- 8, 39, 3, 4, 5, 17, 7, 29, 86, 6,
- 17, 43, 17, 29, 17, 66, 29, 17, 29, 29,
- 29, 17, 17, 15, 17, 29, 17, 17, 17, 31,
- 29, 17, 16, 54, 49, 86, 67, -1, -1, -1,
- -1, 29, -1, -1, 42
+ 17, 17, 42, 14, 29, 45, 43, 42, 17, 29,
+ 45, 39, 3, 4, 5, 15, 7, 29, 86, 8,
+ 44, 6, 17, 17, 29, 66, 29, 17, 29, 17,
+ 17, 29, 29, 17, 15, 17, 29, 17, 17, 17,
+ 17, 16, 49, 29, 67, 86, 42, -1, 31, -1,
+ 54, -1, -1, 29
};
/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
state STATE-NUM. */
static const yytype_int8 yystos[] =
{
- 0, 46, 0, 3, 39, 52, 65, 17, 66, 53,
- 14, 40, 70, 4, 5, 7, 47, 50, 52, 54,
- 60, 61, 17, 7, 12, 17, 17, 50, 14, 49,
- 29, 68, 73, 17, 29, 15, 8, 47, 48, 54,
- 29, 72, 43, 69, 67, 9, 10, 58, 6, 57,
- 17, 17, 67, 29, 68, 71, 14, 41, 74, 56,
- 17, 58, 14, 69, 67, 17, 51, 55, 14, 29,
- 13, 14, 26, 27, 30, 42, 44, 52, 54, 59,
- 61, 62, 63, 64, 75, 76, 51, 29, 17, 29,
- 29, 17, 17, 14, 15, 17, 17, 29, 17, 29,
- 17, 31, 17
+ 0, 47, 0, 3, 39, 53, 66, 17, 67, 54,
+ 14, 40, 71, 4, 5, 7, 48, 51, 53, 55,
+ 61, 62, 17, 7, 12, 17, 17, 51, 14, 50,
+ 29, 69, 74, 17, 29, 15, 8, 48, 49, 55,
+ 29, 73, 44, 70, 68, 9, 10, 59, 6, 58,
+ 17, 17, 68, 29, 69, 72, 14, 41, 75, 57,
+ 17, 59, 14, 70, 68, 17, 52, 56, 14, 29,
+ 13, 14, 26, 27, 30, 42, 45, 53, 55, 60,
+ 62, 63, 64, 65, 76, 77, 52, 29, 17, 29,
+ 29, 17, 43, 17, 14, 15, 17, 17, 29, 17,
+ 29, 17, 31, 17
};
/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
static const yytype_int8 yyr1[] =
{
- 0, 45, 46, 46, 46, 47, 47, 47, 48, 48,
- 49, 49, 50, 50, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 53, 52, 55, 54, 56, 54,
- 57, 57, 58, 58, 59, 60, 61, 62, 62, 63,
- 63, 63, 64, 64, 65, 66, 66, 67, 67, 68,
- 69, 69, 71, 70, 72, 70, 73, 70, 74, 75,
- 76
+ 0, 46, 47, 47, 47, 48, 48, 48, 49, 49,
+ 50, 50, 51, 51, 52, 52, 52, 52, 52, 52,
+ 52, 52, 52, 52, 54, 53, 56, 55, 57, 55,
+ 58, 58, 59, 59, 60, 61, 62, 63, 63, 64,
+ 64, 64, 65, 65, 66, 67, 67, 68, 68, 69,
+ 70, 70, 72, 71, 73, 71, 74, 71, 75, 76,
+ 76, 77
};
/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
@@ -754,7 +756,7 @@ static const yytype_int8 yyr2[] =
0, 2, 1, 1, 4, 4, 4, 3, 4, 5,
4, 3, 3, 2, 3, 2, 0, 2, 0, 2,
3, 0, 0, 7, 0, 6, 0, 5, 3, 3,
- 2
+ 2, 2
};
@@ -1361,7 +1363,11 @@ yyreduce:
{ add_fw_config_probe(cur_parent, (yyvsp[-1].string), (yyvsp[0].string)); }
break;
- case 60: /* ops: OPS STRING */
+ case 60: /* fw_config_probe: FW_CONFIG_PROBE FW_CONFIG_UNPROVISIONED */
+ { probe_unprovisioned_fw_config(cur_parent); }
+ break;
+
+ case 61: /* ops: OPS STRING */
{ add_device_ops(cur_parent, (yyvsp[0].string)); }
break;
diff --git a/util/sconfig/sconfig.tab.h_shipped b/util/sconfig/sconfig.tab.h_shipped
index eb5b97cba8..302e082b67 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_ARTHUR_SRC_COREBOOT_UTIL_SCONFIG_SCONFIG_TAB_H_SHIPPED_INCLUDED
-# define YY_YY_HOME_ARTHUR_SRC_COREBOOT_UTIL_SCONFIG_SCONFIG_TAB_H_SHIPPED_INCLUDED
+#ifndef YY_YY_SCONFIG_TAB_H_SHIPPED_INCLUDED
+# define YY_YY_SCONFIG_TAB_H_SHIPPED_INCLUDED
/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
@@ -94,8 +94,9 @@ extern int yydebug;
FW_CONFIG_FIELD = 295, /* FW_CONFIG_FIELD */
FW_CONFIG_OPTION = 296, /* FW_CONFIG_OPTION */
FW_CONFIG_PROBE = 297, /* FW_CONFIG_PROBE */
- PIPE = 298, /* PIPE */
- OPS = 299 /* OPS */
+ FW_CONFIG_UNPROVISIONED = 298, /* FW_CONFIG_UNPROVISIONED */
+ PIPE = 299, /* PIPE */
+ OPS = 300 /* OPS */
};
typedef enum yytokentype yytoken_kind_t;
#endif
@@ -124,4 +125,4 @@ extern YYSTYPE yylval;
int yyparse (void);
-#endif /* !YY_YY_HOME_ARTHUR_SRC_COREBOOT_UTIL_SCONFIG_SCONFIG_TAB_H_SHIPPED_INCLUDED */
+#endif /* !YY_YY_SCONFIG_TAB_H_SHIPPED_INCLUDED */
diff --git a/util/sconfig/sconfig.y b/util/sconfig/sconfig.y
index 8ec103c018..ecf2b9a5a0 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 CPU_CLUSTER CPU DOMAIN IRQ DRQ SLOT_DESC SMBIOS_DEV_INFO IO NUMBER SUBSYSTEMID INHERIT PCIINT GENERIC SPI USB MMIO GPIO MDIO 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 CPU_CLUSTER CPU DOMAIN IRQ DRQ SLOT_DESC SMBIOS_DEV_INFO IO NUMBER SUBSYSTEMID INHERIT PCIINT GENERIC SPI USB MMIO GPIO MDIO FW_CONFIG_TABLE FW_CONFIG_FIELD FW_CONFIG_OPTION FW_CONFIG_PROBE FW_CONFIG_UNPROVISIONED PIPE OPS
%%
devtree: { cur_parent = root_parent; } | devtree chip | devtree fw_config_table;
@@ -139,6 +139,9 @@ fw_config_option: FW_CONFIG_OPTION STRING NUMBER /* == field value */
/* probe <field> <option> */
fw_config_probe: FW_CONFIG_PROBE STRING /* == field */ STRING /* == option */
{ add_fw_config_probe(cur_parent, $<string>2, $<string>3); }
+ | /* probe unprovisioned */
+ FW_CONFIG_PROBE FW_CONFIG_UNPROVISIONED
+ { probe_unprovisioned_fw_config(cur_parent); };
ops: OPS STRING /* == global identifier */
{ add_device_ops(cur_parent, $<string>2); }