summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@chromium.org>2017-02-11 00:50:38 -0800
committerFurquan Shaikh <furquan@google.com>2017-02-16 08:41:15 +0100
commite67002968b6ebc69c5a94fb2cee17af3845268c9 (patch)
tree9b9675eb187bdc579ea41a602ef032bcdb78a300
parentdc1b294bfbf3de0b4b14c77e872bd62c66b19535 (diff)
sconfig: Add a new "SPI" device type
Update sconfig lex and yacc files to add support for a new "SPI" device type in the devicetree. SPI device takes only parameter i.e. chip select number for the device on the SPI bus. Re-generate the shipped files for sconfig using flex 2.6.0 and bison 3.0.4 (make CONFIG_SCONFIG_GENPARSER=1). Clean up local paths that leak into generated files. BUG=chrome-os-partner:59832 BRANCH=None TEST=Compiles successfully. Change-Id: If0831e25b3e4ed87827ad92356d7bf47b6387884 Signed-off-by: Furquan Shaikh <furquan@chromium.org> Reviewed-on: https://review.coreboot.org/18339 Tested-by: build bot (Jenkins) Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
-rw-r--r--util/sconfig/lex.yy.c_shipped245
-rw-r--r--util/sconfig/main.c5
-rwxr-xr-xutil/sconfig/sconfig.l1
-rw-r--r--util/sconfig/sconfig.tab.c_shipped30
-rw-r--r--util/sconfig/sconfig.tab.h_shipped3
-rwxr-xr-xutil/sconfig/sconfig.y2
6 files changed, 151 insertions, 135 deletions
diff --git a/util/sconfig/lex.yy.c_shipped b/util/sconfig/lex.yy.c_shipped
index 260029635b..500636bdbf 100644
--- a/util/sconfig/lex.yy.c_shipped
+++ b/util/sconfig/lex.yy.c_shipped
@@ -208,7 +208,7 @@ struct yy_buffer_state
/* Number of characters read into yy_ch_buf, not including EOB
* characters.
*/
- int yy_n_chars;
+ yy_size_t yy_n_chars;
/* Whether we "own" the buffer - i.e., we know we created it,
* and can realloc() it to grow it, and should free() it to
@@ -278,7 +278,7 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
/* yy_hold_char holds the character lost when yytext is formed. */
static char yy_hold_char;
-static int yy_n_chars; /* number of characters read into yy_ch_buf */
+static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
yy_size_t yyleng;
/* Points to current character in buffer. */
@@ -373,8 +373,8 @@ static void yy_fatal_error (yyconst char msg[] );
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 33
-#define YY_END_OF_BUFFER 34
+#define YY_NUM_RULES 34
+#define YY_END_OF_BUFFER 35
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -382,22 +382,23 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[130] =
+static yyconst flex_int16_t yy_accept[132] =
{ 0,
- 0, 0, 34, 32, 1, 3, 32, 32, 32, 27,
- 27, 25, 28, 32, 28, 28, 28, 32, 32, 32,
- 32, 32, 32, 32, 32, 1, 3, 32, 0, 32,
- 32, 0, 2, 27, 28, 32, 32, 32, 32, 28,
- 32, 32, 32, 32, 32, 32, 20, 32, 32, 32,
- 7, 32, 32, 32, 32, 31, 31, 32, 0, 26,
- 32, 32, 15, 32, 32, 19, 24, 32, 12, 32,
- 32, 18, 32, 8, 9, 11, 32, 32, 32, 0,
- 29, 4, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 30, 30, 32, 32, 32, 32, 32, 32, 13,
-
- 32, 32, 32, 5, 16, 32, 32, 10, 32, 32,
- 32, 17, 22, 32, 32, 32, 32, 32, 6, 32,
- 32, 32, 32, 32, 21, 32, 14, 23, 0
+ 0, 0, 35, 33, 1, 3, 33, 33, 33, 28,
+ 28, 26, 29, 33, 29, 29, 29, 33, 33, 33,
+ 33, 33, 33, 33, 33, 1, 3, 33, 0, 33,
+ 33, 0, 2, 28, 29, 33, 33, 33, 33, 29,
+ 33, 33, 33, 33, 33, 33, 21, 33, 33, 33,
+ 7, 33, 33, 33, 33, 33, 32, 32, 33, 0,
+ 27, 33, 33, 15, 33, 33, 20, 25, 33, 12,
+ 33, 33, 19, 33, 8, 9, 11, 33, 18, 33,
+ 33, 0, 30, 4, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 31, 31, 33, 33, 33, 33, 33,
+
+ 33, 13, 33, 33, 33, 5, 16, 33, 33, 10,
+ 33, 33, 33, 17, 23, 33, 33, 33, 33, 33,
+ 6, 33, 33, 33, 33, 33, 22, 33, 14, 24,
+ 0
} ;
static yyconst YY_CHAR yy_ec[256] =
@@ -440,102 +441,104 @@ static yyconst YY_CHAR yy_meta[39] =
1, 1, 1, 1, 1, 1, 1, 1
} ;
-static yyconst flex_uint16_t yy_base[137] =
+static yyconst flex_uint16_t yy_base[139] =
{ 0,
- 0, 0, 200, 0, 197, 201, 195, 37, 41, 38,
- 160, 0, 44, 182, 54, 78, 60, 174, 45, 177,
- 42, 47, 172, 157, 0, 189, 201, 77, 185, 87,
- 69, 186, 201, 0, 86, 104, 173, 162, 151, 93,
- 158, 153, 163, 154, 162, 156, 162, 147, 147, 154,
- 0, 150, 144, 150, 154, 0, 201, 101, 166, 0,
- 159, 139, 152, 142, 149, 0, 0, 144, 0, 143,
- 133, 0, 137, 0, 0, 0, 136, 127, 154, 153,
- 0, 0, 138, 137, 130, 122, 121, 127, 132, 117,
- 111, 0, 201, 122, 126, 118, 120, 119, 124, 0,
-
- 108, 95, 92, 0, 0, 101, 85, 102, 96, 80,
- 76, 0, 0, 83, 73, 77, 63, 64, 0, 64,
- 62, 50, 51, 33, 0, 28, 0, 0, 201, 40,
- 129, 131, 133, 135, 137, 139
+ 0, 0, 202, 0, 199, 203, 197, 37, 41, 38,
+ 162, 0, 44, 184, 54, 78, 60, 176, 45, 179,
+ 42, 47, 174, 41, 0, 192, 203, 77, 188, 87,
+ 91, 189, 203, 0, 88, 104, 176, 165, 154, 93,
+ 161, 156, 166, 157, 165, 159, 165, 150, 150, 157,
+ 0, 153, 147, 153, 150, 156, 0, 203, 101, 168,
+ 0, 161, 141, 154, 144, 151, 0, 0, 146, 0,
+ 145, 135, 0, 139, 0, 0, 0, 138, 0, 129,
+ 156, 155, 0, 0, 140, 139, 132, 124, 123, 129,
+ 134, 119, 113, 0, 203, 124, 128, 120, 122, 121,
+
+ 126, 0, 110, 110, 107, 0, 0, 109, 93, 104,
+ 98, 84, 84, 0, 0, 89, 77, 87, 71, 66,
+ 0, 64, 62, 50, 47, 33, 0, 28, 0, 0,
+ 203, 40, 129, 131, 133, 135, 137, 139
} ;
-static yyconst flex_int16_t yy_def[137] =
+static yyconst flex_int16_t yy_def[139] =
{ 0,
- 129, 1, 129, 130, 129, 129, 130, 131, 132, 130,
- 10, 130, 10, 130, 10, 10, 10, 130, 130, 130,
- 130, 130, 130, 130, 130, 129, 129, 131, 133, 134,
- 132, 135, 129, 10, 10, 10, 130, 130, 130, 10,
- 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
- 130, 130, 130, 130, 130, 130, 129, 134, 136, 36,
- 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
- 130, 130, 130, 130, 130, 130, 130, 130, 130, 129,
- 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
- 130, 130, 129, 130, 130, 130, 130, 130, 130, 130,
-
- 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
- 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
- 130, 130, 130, 130, 130, 130, 130, 130, 0, 129,
- 129, 129, 129, 129, 129, 129
+ 131, 1, 131, 132, 131, 131, 132, 133, 134, 132,
+ 10, 132, 10, 132, 10, 10, 10, 132, 132, 132,
+ 132, 132, 132, 132, 132, 131, 131, 133, 135, 136,
+ 134, 137, 131, 10, 10, 10, 132, 132, 132, 10,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 131, 136, 138,
+ 36, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 131, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 131, 132, 132, 132, 132, 132,
+
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 0, 131, 131, 131, 131, 131, 131, 131
} ;
-static yyconst flex_uint16_t yy_nxt[240] =
+static yyconst flex_uint16_t yy_nxt[242] =
{ 0,
4, 5, 6, 7, 8, 9, 10, 11, 10, 12,
13, 13, 14, 4, 4, 4, 13, 13, 15, 16,
17, 13, 18, 4, 19, 20, 4, 4, 21, 22,
4, 23, 24, 4, 4, 4, 4, 4, 29, 29,
- 25, 30, 32, 33, 34, 34, 34, 128, 35, 35,
+ 25, 30, 32, 33, 34, 34, 34, 130, 35, 35,
35, 35, 35, 45, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 50, 127, 52, 35, 35, 35, 51,
- 32, 33, 46, 47, 53, 126, 48, 38, 29, 29,
- 125, 56, 124, 39, 35, 35, 35, 43, 59, 59,
- 123, 25, 35, 35, 35, 122, 121, 120, 40, 35,
-
- 35, 35, 59, 59, 119, 79, 41, 118, 117, 42,
- 60, 60, 60, 116, 60, 60, 115, 114, 113, 112,
- 60, 60, 60, 60, 60, 60, 111, 110, 64, 28,
- 28, 31, 31, 29, 29, 58, 58, 32, 32, 59,
- 59, 109, 108, 107, 106, 105, 104, 103, 102, 101,
- 100, 99, 98, 97, 96, 95, 94, 93, 92, 91,
- 90, 89, 88, 87, 86, 85, 84, 83, 82, 81,
- 80, 78, 77, 76, 75, 74, 73, 72, 71, 70,
- 69, 68, 67, 66, 65, 63, 62, 61, 33, 57,
- 26, 55, 54, 49, 44, 37, 36, 27, 26, 129,
-
- 3, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129
+ 35, 35, 35, 50, 129, 52, 35, 35, 35, 51,
+ 55, 128, 46, 47, 53, 56, 48, 38, 29, 29,
+ 127, 57, 126, 39, 35, 35, 35, 43, 60, 60,
+ 125, 25, 32, 33, 35, 35, 35, 124, 40, 35,
+
+ 35, 35, 60, 60, 123, 81, 41, 122, 121, 42,
+ 61, 61, 61, 120, 61, 61, 119, 118, 117, 116,
+ 61, 61, 61, 61, 61, 61, 115, 114, 65, 28,
+ 28, 31, 31, 29, 29, 59, 59, 32, 32, 60,
+ 60, 113, 112, 111, 110, 109, 108, 107, 106, 105,
+ 104, 103, 102, 101, 100, 99, 98, 97, 96, 95,
+ 94, 93, 92, 91, 90, 89, 88, 87, 86, 85,
+ 84, 83, 82, 80, 79, 78, 77, 76, 75, 74,
+ 73, 72, 71, 70, 69, 68, 67, 66, 64, 63,
+ 62, 33, 58, 26, 54, 49, 44, 37, 36, 27,
+
+ 26, 131, 3, 131, 131, 131, 131, 131, 131, 131,
+ 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
+ 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
+ 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
+ 131
} ;
-static yyconst flex_int16_t yy_chk[240] =
+static yyconst flex_int16_t yy_chk[242] =
{ 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, 8, 8,
- 130, 8, 9, 9, 10, 10, 10, 126, 10, 10,
+ 132, 8, 9, 9, 10, 10, 10, 128, 10, 10,
13, 13, 13, 19, 10, 10, 10, 10, 10, 10,
- 15, 15, 15, 21, 124, 22, 17, 17, 17, 21,
- 31, 31, 19, 19, 22, 123, 19, 15, 28, 28,
- 122, 28, 121, 15, 16, 16, 16, 17, 30, 30,
- 120, 30, 35, 35, 35, 118, 117, 116, 16, 40,
-
- 40, 40, 58, 58, 115, 58, 16, 114, 111, 16,
- 36, 36, 36, 110, 36, 36, 109, 108, 107, 106,
- 36, 36, 36, 36, 36, 36, 103, 102, 40, 131,
- 131, 132, 132, 133, 133, 134, 134, 135, 135, 136,
- 136, 101, 99, 98, 97, 96, 95, 94, 91, 90,
- 89, 88, 87, 86, 85, 84, 83, 80, 79, 78,
- 77, 73, 71, 70, 68, 65, 64, 63, 62, 61,
- 59, 55, 54, 53, 52, 50, 49, 48, 47, 46,
- 45, 44, 43, 42, 41, 39, 38, 37, 32, 29,
- 26, 24, 23, 20, 18, 14, 11, 7, 5, 3,
-
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129
+ 15, 15, 15, 21, 126, 22, 17, 17, 17, 21,
+ 24, 125, 19, 19, 22, 24, 19, 15, 28, 28,
+ 124, 28, 123, 15, 16, 16, 16, 17, 30, 30,
+ 122, 30, 31, 31, 35, 35, 35, 120, 16, 40,
+
+ 40, 40, 59, 59, 119, 59, 16, 118, 117, 16,
+ 36, 36, 36, 116, 36, 36, 113, 112, 111, 110,
+ 36, 36, 36, 36, 36, 36, 109, 108, 40, 133,
+ 133, 134, 134, 135, 135, 136, 136, 137, 137, 138,
+ 138, 105, 104, 103, 101, 100, 99, 98, 97, 96,
+ 93, 92, 91, 90, 89, 88, 87, 86, 85, 82,
+ 81, 80, 78, 74, 72, 71, 69, 66, 65, 64,
+ 63, 62, 60, 56, 55, 54, 53, 52, 50, 49,
+ 48, 47, 46, 45, 44, 43, 42, 41, 39, 38,
+ 37, 32, 29, 26, 23, 20, 18, 14, 11, 7,
+
+ 5, 3, 131, 131, 131, 131, 131, 131, 131, 131,
+ 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
+ 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
+ 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
+ 131
} ;
static yy_state_type yy_last_accepting_state;
@@ -630,7 +633,7 @@ extern int yywrap (void );
#endif
#ifndef YY_NO_UNPUT
-
+
static void yyunput (int c,char *buf_ptr );
#endif
@@ -814,13 +817,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 >= 130 )
+ if ( yy_current_state >= 132 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_base[yy_current_state] != 201 );
+ while ( yy_base[yy_current_state] != 203 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
@@ -916,39 +919,39 @@ YY_RULE_SETUP
YY_BREAK
case 18:
YY_RULE_SETUP
-{yylval.number=IRQ; return(RESOURCE);}
+{yylval.number=SPI; return(BUS);}
YY_BREAK
case 19:
YY_RULE_SETUP
-{yylval.number=DRQ; return(RESOURCE);}
+{yylval.number=IRQ; return(RESOURCE);}
YY_BREAK
case 20:
YY_RULE_SETUP
-{yylval.number=IO; return(RESOURCE);}
+{yylval.number=DRQ; return(RESOURCE);}
YY_BREAK
case 21:
YY_RULE_SETUP
-{return(IOAPIC_IRQ);}
+{yylval.number=IO; return(RESOURCE);}
YY_BREAK
case 22:
YY_RULE_SETUP
-{return(INHERIT);}
+{return(IOAPIC_IRQ);}
YY_BREAK
case 23:
YY_RULE_SETUP
-{return(SUBSYSTEMID);}
+{return(INHERIT);}
YY_BREAK
case 24:
YY_RULE_SETUP
-{return(END);}
+{return(SUBSYSTEMID);}
YY_BREAK
case 25:
YY_RULE_SETUP
-{return(EQUALS);}
+{return(END);}
YY_BREAK
case 26:
YY_RULE_SETUP
-{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);}
+{return(EQUALS);}
YY_BREAK
case 27:
YY_RULE_SETUP
@@ -960,12 +963,11 @@ YY_RULE_SETUP
YY_BREAK
case 29:
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 30:
-/* rule 30 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 31:
/* rule 31 can match eol */
@@ -973,11 +975,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 32:
+/* rule 32 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 33:
YY_RULE_SETUP
+{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(STRING);}
+ YY_BREAK
+case 34:
+YY_RULE_SETUP
ECHO;
YY_BREAK
case YY_STATE_EOF(INITIAL):
@@ -1235,9 +1242,9 @@ static int yy_get_next_buffer (void)
else
ret_val = EOB_ACT_CONTINUE_SCAN;
- if ((int) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+ if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
/* Extend the array by 50%, plus the number we really need. */
- int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
@@ -1272,7 +1279,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 >= 130 )
+ if ( yy_current_state >= 132 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1300,11 +1307,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 >= 130 )
+ if ( yy_current_state >= 132 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 129);
+ yy_is_jam = (yy_current_state == 131);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -1654,7 +1661,7 @@ static void yyensure_buffer_stack (void)
* scanner will even need a stack. We use 2 instead of 1 to avoid an
* immediate realloc on the next call.
*/
- num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
+ num_to_alloc = 1; // After all that talk, this was set to 1 anyways...
(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
(num_to_alloc * sizeof(struct yy_buffer_state*)
);
@@ -1937,7 +1944,7 @@ int yylex_destroy (void)
#ifndef yytext_ptr
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
{
-
+
int i;
for ( i = 0; i < n; ++i )
s1[i] = s2[i];
@@ -1962,7 +1969,7 @@ void *yyalloc (yy_size_t size )
void *yyrealloc (void * ptr, yy_size_t size )
{
-
+
/* The cast to (char *) in the following accommodates both
* implementations that use char* generic pointers, and those
* that use void* generic pointers. It works with the latter
diff --git a/util/sconfig/main.c b/util/sconfig/main.c
index 81ce72b763..2bc614589b 100644
--- a/util/sconfig/main.c
+++ b/util/sconfig/main.c
@@ -285,6 +285,11 @@ struct device *new_device(struct device *parent, struct device *busdev,
case GENERIC:
new_d->path = ".type=DEVICE_PATH_GENERIC,{.generic={ .id = 0x%x, .subid = 0x%x }}";
break;
+
+ case SPI:
+ new_d->path = ".type=DEVICE_PATH_SPI,{.spi={ .cs = 0x%x }}";
+ break;
+
}
return new_d;
}
diff --git a/util/sconfig/sconfig.l b/util/sconfig/sconfig.l
index e3615084ed..4f4084fda0 100755
--- a/util/sconfig/sconfig.l
+++ b/util/sconfig/sconfig.l
@@ -38,6 +38,7 @@ cpu_cluster {yylval.number=CPU_CLUSTER; return(BUS);}
cpu {yylval.number=CPU; return(BUS);}
domain {yylval.number=DOMAIN; return(BUS);}
generic {yylval.number=GENERIC; return(BUS);}
+spi {yylval.number=SPI; 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 bca06a075d..116f41f05c 100644
--- a/util/sconfig/sconfig.tab.c_shipped
+++ b/util/sconfig/sconfig.tab.c_shipped
@@ -149,7 +149,8 @@ extern int yydebug;
IOAPIC_IRQ = 281,
IOAPIC = 282,
PCIINT = 283,
- GENERIC = 284
+ GENERIC = 284,
+ SPI = 285
};
#endif
@@ -426,7 +427,7 @@ union yyalloc
#define YYLAST 39
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 30
+#define YYNTOKENS 31
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 13
/* YYNRULES -- Number of rules. */
@@ -437,7 +438,7 @@ union yyalloc
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 284
+#define YYMAXUTOK 285
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -474,7 +475,7 @@ static const yytype_uint8 yytranslate[] =
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, 29
+ 25, 26, 27, 28, 29, 30
};
#if YYDEBUG
@@ -496,8 +497,8 @@ static const char *const yytname[] =
"BUS", "RESOURCE", "END", "EQUALS", "HEX", "STRING", "PCI", "PNP", "I2C",
"APIC", "CPU_CLUSTER", "CPU", "DOMAIN", "IRQ", "DRQ", "IO", "NUMBER",
"SUBSYSTEMID", "INHERIT", "IOAPIC_IRQ", "IOAPIC", "PCIINT", "GENERIC",
- "$accept", "devtree", "$@1", "chipchildren", "devicechildren", "chip",
- "@2", "device", "@3", "resource", "registers", "subsystemid",
+ "SPI", "$accept", "devtree", "$@1", "chipchildren", "devicechildren",
+ "chip", "@2", "device", "@3", "resource", "registers", "subsystemid",
"ioapic_irq", YY_NULLPTR
};
#endif
@@ -509,7 +510,8 @@ static const yytype_uint16 yytoknum[] =
{
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, 284
+ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285
};
# endif
@@ -583,19 +585,19 @@ static const yytype_int8 yycheck[] =
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 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,
+ 0, 32, 33, 0, 3, 36, 12, 37, 34, 4,
+ 5, 9, 36, 38, 41, 7, 12, 23, 10, 6,
+ 12, 39, 35, 8, 9, 24, 26, 36, 38, 40,
+ 42, 43, 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, 30, 32, 31, 33, 33, 33, 33, 34, 34,
- 34, 34, 34, 34, 36, 35, 38, 37, 39, 40,
- 41, 41, 42
+ 0, 31, 33, 32, 34, 34, 34, 34, 35, 35,
+ 35, 35, 35, 35, 37, 36, 39, 38, 40, 41,
+ 42, 42, 43
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
diff --git a/util/sconfig/sconfig.tab.h_shipped b/util/sconfig/sconfig.tab.h_shipped
index 9666b37aba..3c586f5258 100644
--- a/util/sconfig/sconfig.tab.h_shipped
+++ b/util/sconfig/sconfig.tab.h_shipped
@@ -71,7 +71,8 @@ extern int yydebug;
IOAPIC_IRQ = 281,
IOAPIC = 282,
PCIINT = 283,
- GENERIC = 284
+ GENERIC = 284,
+ SPI = 285
};
#endif
diff --git a/util/sconfig/sconfig.y b/util/sconfig/sconfig.y
index b1e37a82b7..7108e67a3a 100755
--- a/util/sconfig/sconfig.y
+++ b/util/sconfig/sconfig.y
@@ -29,7 +29,7 @@ static struct device *cur_parent, *cur_bus;
int number;
}
-%token 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 GENERIC
+%token 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 GENERIC SPI
%%
devtree: { cur_parent = cur_bus = head; } chip { postprocess_devtree(); } ;