util/sconfig: Add LPC and ESPI buses
Picasso has an LPC and eSPI bridge on the same PCI DEVFN. They can both be active at the same time. This adds a way to specify which devices belong on which bus. i.e., device pci 14.3 on # - D14F3 bridge device espi 0 on chip ec/google/chromeec device pnp 0c09.0 on end end end device lpc 0 on end end BUG=b:154445472 TEST=Built trembyle and saw static.c contained the espi bus. Signed-off-by: Raul E Rangel <rrangel@chromium.org> Change-Id: I0c2f40813c05680f72e5f30cbb13617e8f994841 Reviewed-on: https://review.coreboot.org/c/coreboot/+/41099 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
		
				
					committed by
					
						
						Patrick Georgi
					
				
			
			
				
	
			
			
			
						parent
						
							5819eab5a6
						
					
				
				
					commit
					3f3f53cd5e
				
			@@ -156,6 +156,12 @@ static int path_eq(const struct device_path *path1,
 | 
				
			|||||||
	case DEVICE_PATH_MMIO:
 | 
						case DEVICE_PATH_MMIO:
 | 
				
			||||||
		equal = (path1->mmio.addr == path2->mmio.addr);
 | 
							equal = (path1->mmio.addr == path2->mmio.addr);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
 | 
						case DEVICE_PATH_ESPI:
 | 
				
			||||||
 | 
							equal = (path1->espi.addr == path2->espi.addr);
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
						case DEVICE_PATH_LPC:
 | 
				
			||||||
 | 
							equal = (path1->lpc.addr == path2->lpc.addr);
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
	default:
 | 
						default:
 | 
				
			||||||
		printk(BIOS_ERR, "Unknown device type: %d\n", path1->type);
 | 
							printk(BIOS_ERR, "Unknown device type: %d\n", path1->type);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -215,6 +215,14 @@ const char *dev_path(const struct device *dev)
 | 
				
			|||||||
			snprintf(buffer, sizeof(buffer), "MMIO: %08lx",
 | 
								snprintf(buffer, sizeof(buffer), "MMIO: %08lx",
 | 
				
			||||||
				 dev->path.mmio.addr);
 | 
									 dev->path.mmio.addr);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
 | 
							case DEVICE_PATH_ESPI:
 | 
				
			||||||
 | 
								snprintf(buffer, sizeof(buffer), "ESPI: %08lx",
 | 
				
			||||||
 | 
									 dev->path.espi.addr);
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case DEVICE_PATH_LPC:
 | 
				
			||||||
 | 
								snprintf(buffer, sizeof(buffer), "LPC: %08lx",
 | 
				
			||||||
 | 
									 dev->path.lpc.addr);
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
		default:
 | 
							default:
 | 
				
			||||||
			printk(BIOS_ERR, "Unknown device path type: %d\n",
 | 
								printk(BIOS_ERR, "Unknown device path type: %d\n",
 | 
				
			||||||
			       dev->path.type);
 | 
								       dev->path.type);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,6 +19,8 @@ enum device_path_type {
 | 
				
			|||||||
	DEVICE_PATH_SPI,
 | 
						DEVICE_PATH_SPI,
 | 
				
			||||||
	DEVICE_PATH_USB,
 | 
						DEVICE_PATH_USB,
 | 
				
			||||||
	DEVICE_PATH_MMIO,
 | 
						DEVICE_PATH_MMIO,
 | 
				
			||||||
 | 
						DEVICE_PATH_ESPI,
 | 
				
			||||||
 | 
						DEVICE_PATH_LPC,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
	 * When adding path types to this table, please also update the
 | 
						 * When adding path types to this table, please also update the
 | 
				
			||||||
@@ -42,6 +44,8 @@ enum device_path_type {
 | 
				
			|||||||
		"DEVICE_PATH_SPI",		\
 | 
							"DEVICE_PATH_SPI",		\
 | 
				
			||||||
		"DEVICE_PATH_USB",		\
 | 
							"DEVICE_PATH_USB",		\
 | 
				
			||||||
		"DEVICE_PATH_MMIO",		\
 | 
							"DEVICE_PATH_MMIO",		\
 | 
				
			||||||
 | 
							"DEVICE_PATH_ESPI",		\
 | 
				
			||||||
 | 
							"DEVICE_PATH_LPC",		\
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct domain_path {
 | 
					struct domain_path {
 | 
				
			||||||
@@ -104,6 +108,14 @@ struct mmio_path {
 | 
				
			|||||||
	uintptr_t addr;
 | 
						uintptr_t addr;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct espi_path {
 | 
				
			||||||
 | 
						uintptr_t addr;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct lpc_path {
 | 
				
			||||||
 | 
						uintptr_t addr;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct device_path {
 | 
					struct device_path {
 | 
				
			||||||
	enum device_path_type type;
 | 
						enum device_path_type type;
 | 
				
			||||||
	union {
 | 
						union {
 | 
				
			||||||
@@ -120,6 +132,8 @@ struct device_path {
 | 
				
			|||||||
		struct spi_path		spi;
 | 
							struct spi_path		spi;
 | 
				
			||||||
		struct usb_path		usb;
 | 
							struct usb_path		usb;
 | 
				
			||||||
		struct mmio_path	mmio;
 | 
							struct mmio_path	mmio;
 | 
				
			||||||
 | 
							struct espi_path	espi;
 | 
				
			||||||
 | 
							struct lpc_path		lpc;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -159,8 +159,10 @@ extern FILE *yyin, *yyout;
 | 
				
			|||||||
#define EOB_ACT_CONTINUE_SCAN 0
 | 
					#define EOB_ACT_CONTINUE_SCAN 0
 | 
				
			||||||
#define EOB_ACT_END_OF_FILE 1
 | 
					#define EOB_ACT_END_OF_FILE 1
 | 
				
			||||||
#define EOB_ACT_LAST_MATCH 2
 | 
					#define EOB_ACT_LAST_MATCH 2
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    #define YY_LESS_LINENO(n)
 | 
					    #define YY_LESS_LINENO(n)
 | 
				
			||||||
    #define YY_LINENO_REWIND_TO(ptr)
 | 
					    #define YY_LINENO_REWIND_TO(ptr)
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
/* Return all but the first "n" matched characters back to the input stream. */
 | 
					/* Return all but the first "n" matched characters back to the input stream. */
 | 
				
			||||||
#define yyless(n) \
 | 
					#define yyless(n) \
 | 
				
			||||||
	do \
 | 
						do \
 | 
				
			||||||
@@ -347,8 +349,8 @@ static void yynoreturn yy_fatal_error ( const char* msg  );
 | 
				
			|||||||
	(yy_hold_char) = *yy_cp; \
 | 
						(yy_hold_char) = *yy_cp; \
 | 
				
			||||||
	*yy_cp = '\0'; \
 | 
						*yy_cp = '\0'; \
 | 
				
			||||||
	(yy_c_buf_p) = yy_cp;
 | 
						(yy_c_buf_p) = yy_cp;
 | 
				
			||||||
#define YY_NUM_RULES 39
 | 
					#define YY_NUM_RULES 41
 | 
				
			||||||
#define YY_END_OF_BUFFER 40
 | 
					#define YY_END_OF_BUFFER 42
 | 
				
			||||||
/* This struct is not used in this scanner,
 | 
					/* This struct is not used in this scanner,
 | 
				
			||||||
   but its presence is necessary. */
 | 
					   but its presence is necessary. */
 | 
				
			||||||
struct yy_trans_info
 | 
					struct yy_trans_info
 | 
				
			||||||
@@ -356,26 +358,27 @@ struct yy_trans_info
 | 
				
			|||||||
	flex_int32_t yy_verify;
 | 
						flex_int32_t yy_verify;
 | 
				
			||||||
	flex_int32_t yy_nxt;
 | 
						flex_int32_t yy_nxt;
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
static const flex_int16_t yy_accept[168] =
 | 
					static const flex_int16_t yy_accept[173] =
 | 
				
			||||||
    {   0,
 | 
					    {   0,
 | 
				
			||||||
        0,    0,   40,   38,    1,    3,   38,   38,   38,   33,
 | 
					        0,    0,   42,   40,    1,    3,   40,   40,   40,   35,
 | 
				
			||||||
       33,   31,   34,   38,   34,   34,   34,   38,   38,   38,
 | 
					       35,   33,   36,   40,   36,   36,   36,   40,   40,   40,
 | 
				
			||||||
       38,   38,   38,   38,   38,   38,   38,   38,    1,    3,
 | 
					       40,   40,   40,   40,   40,   40,   40,   40,    1,    3,
 | 
				
			||||||
       38,    0,   38,   38,    0,    2,   33,   34,   38,   38,
 | 
					       40,    0,   40,   40,    0,    2,   35,   36,   40,   40,
 | 
				
			||||||
       38,   38,   34,   38,   38,   38,   38,   38,   38,   38,
 | 
					       40,   40,   36,   40,   40,   40,   40,   40,   40,   40,
 | 
				
			||||||
       25,   38,   38,   38,   38,   38,    7,   38,   38,   38,
 | 
					       40,   27,   40,   40,   40,   40,   40,   40,    7,   40,
 | 
				
			||||||
       38,   38,   38,   38,   37,   37,   38,    0,   32,   38,
 | 
					       40,   40,   40,   40,   40,   40,   39,   39,   40,    0,
 | 
				
			||||||
       38,   17,   38,   38,   24,   29,   38,   38,   14,   38,
 | 
					       34,   40,   40,   17,   40,   40,   26,   31,   40,   40,
 | 
				
			||||||
       38,   23,   38,   38,   38,    8,   11,   13,   38,   38,
 | 
					       40,   14,   40,   40,   25,   40,   23,   40,   40,    8,
 | 
				
			||||||
       21,   38,   22,   38,    0,   35,    4,   38,   38,   38,
 | 
					       11,   13,   40,   40,   21,   40,   22,   40,    0,   37,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
       38,   38,   38,   38,   38,   38,   20,   38,   38,   38,
 | 
					        4,   40,   40,   40,   24,   40,   40,   40,   40,   40,
 | 
				
			||||||
       36,   36,   38,   38,   38,   38,   38,   38,   38,   15,
 | 
					       40,   20,   40,   40,   40,   38,   38,   40,   40,   40,
 | 
				
			||||||
       38,   38,   38,   38,   38,    5,   18,   38,    9,   38,
 | 
					       40,   40,   40,   40,   15,   40,   40,   40,   40,   40,
 | 
				
			||||||
       12,   38,   38,   38,   38,   38,   19,   27,   38,   38,
 | 
					        5,   18,   40,    9,   40,   12,   40,   40,   40,   40,
 | 
				
			||||||
       38,   38,   38,   38,   38,   38,    6,   38,   38,   38,
 | 
					       40,   19,   29,   40,   40,   40,   40,   40,   40,   40,
 | 
				
			||||||
       38,   10,   38,   38,   38,   26,   38,   38,   16,   38,
 | 
					       40,    6,   40,   40,   40,   40,   10,   40,   40,   40,
 | 
				
			||||||
       28,   38,   38,   38,   38,   30,    0
 | 
					       28,   40,   40,   16,   40,   30,   40,   40,   40,   40,
 | 
				
			||||||
 | 
					       32,    0
 | 
				
			||||||
    } ;
 | 
					    } ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const YY_CHAR yy_ec[256] =
 | 
					static const YY_CHAR yy_ec[256] =
 | 
				
			||||||
@@ -418,118 +421,118 @@ static const YY_CHAR yy_meta[39] =
 | 
				
			|||||||
        1,    1,    1,    1,    1,    1,    1,    1
 | 
					        1,    1,    1,    1,    1,    1,    1,    1
 | 
				
			||||||
    } ;
 | 
					    } ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const flex_int16_t yy_base[175] =
 | 
					static const flex_int16_t yy_base[180] =
 | 
				
			||||||
    {   0,
 | 
					    {   0,
 | 
				
			||||||
        0,    0,  235,    0,  232,  236,  230,   37,   41,   38,
 | 
					        0,    0,  240,    0,  237,  241,  235,   37,   41,   38,
 | 
				
			||||||
      195,    0,   44,  217,   54,   78,   60,  209,  204,   45,
 | 
					      200,    0,   44,  222,   54,   78,   60,  214,  209,   45,
 | 
				
			||||||
      211,   48,   42,   52,  206,   62,  193,    0,  223,  236,
 | 
					       49,   48,   42,   52,  212,   62,  199,    0,  229,  241,
 | 
				
			||||||
       88,  219,   93,   79,  220,  236,    0,   93,  104,  207,
 | 
					       93,  225,   98,   79,  226,  241,    0,   97,  104,  213,
 | 
				
			||||||
      196,  185,   96,  192,  187,  197,  188,  195,  195,  189,
 | 
					      202,  191,  110,  198,  193,  203,  192,  193,  200,  200,
 | 
				
			||||||
      195,  180,  180,  181,  183,  185,    0,  181,  175,  181,
 | 
					      194,  200,  185,  185,  195,  185,  187,  189,    0,  185,
 | 
				
			||||||
      185,  177,  183,  182,    0,  236,  115,  194,    0,  187,
 | 
					      179,  185,  189,  181,  187,  186,    0,  241,  125,  198,
 | 
				
			||||||
      167,  180,  170,  177,    0,    0,  172,  172,    0,  170,
 | 
					        0,  191,  171,  184,  174,  181,    0,    0,  172,  175,
 | 
				
			||||||
      160,    0,  164,  168,  158,    0,    0,    0,  161,  160,
 | 
					      175,    0,  173,  163,    0,  167,    0,  171,  161,    0,
 | 
				
			||||||
        0,  151,    0,  178,  177,    0,    0,  162,  161,  154,
 | 
					        0,    0,  164,  163,    0,  154,    0,  181,  180,    0,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      146,  156,  144,  150,  155,  156,    0,  139,  142,  132,
 | 
					        0,  165,  164,  157,    0,  149,  159,  147,  153,  158,
 | 
				
			||||||
        0,  236,  143,  147,  139,  141,  137,  139,  144,    0,
 | 
					      159,    0,  142,  145,  135,    0,  241,  146,  150,  142,
 | 
				
			||||||
      128,  127,  127,  126,  123,    0,    0,  138,    0,  122,
 | 
					      144,  140,  142,  147,    0,  131,  130,  130,  129,  126,
 | 
				
			||||||
      139,  125,  132,  136,  117,  117,    0,    0,  124,  116,
 | 
					        0,    0,  141,    0,  125,  129,  115,  122,  126,  107,
 | 
				
			||||||
      115,  113,  124,   97,   98,   91,    0,  102,  100,   98,
 | 
					      107,    0,    0,  114,  106,  105,  103,  114,  100,  101,
 | 
				
			||||||
       83,    0,   80,   83,   74,    0,   60,   63,    0,   63,
 | 
					       94,    0,  105,  102,   99,   83,    0,   80,   83,   70,
 | 
				
			||||||
        0,   56,   51,   33,   29,    0,  236,   40,  132,  134,
 | 
					        0,   60,   71,    0,   74,    0,   63,   55,   39,   29,
 | 
				
			||||||
      136,  138,  140,  142
 | 
					        0,  241,   40,  146,  148,  150,  152,  154,  156
 | 
				
			||||||
    } ;
 | 
					    } ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const flex_int16_t yy_def[175] =
 | 
					static const flex_int16_t yy_def[180] =
 | 
				
			||||||
    {   0,
 | 
					    {   0,
 | 
				
			||||||
      167,    1,  167,  168,  167,  167,  168,  169,  170,  168,
 | 
					      172,    1,  172,  173,  172,  172,  173,  174,  175,  173,
 | 
				
			||||||
       10,  168,   10,  168,   10,   10,   10,  168,  168,  168,
 | 
					       10,  173,   10,  173,   10,   10,   10,  173,  173,  173,
 | 
				
			||||||
      168,  168,  168,  168,  168,  168,  168,  168,  167,  167,
 | 
					      173,  173,  173,  173,  173,  173,  173,  173,  172,  172,
 | 
				
			||||||
      169,  171,  172,  170,  173,  167,   10,   10,   10,  168,
 | 
					      174,  176,  177,  175,  178,  172,   10,   10,   10,  173,
 | 
				
			||||||
      168,  168,   10,  168,  168,  168,  168,  168,  168,  168,
 | 
					      173,  173,   10,  173,  173,  173,  173,  173,  173,  173,
 | 
				
			||||||
      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
 | 
					      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
 | 
				
			||||||
      168,  168,  168,  168,  168,  167,  172,  174,   39,  168,
 | 
					      173,  173,  173,  173,  173,  173,  173,  172,  177,  179,
 | 
				
			||||||
      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
 | 
					       39,  173,  173,  173,  173,  173,  173,  173,  173,  173,
 | 
				
			||||||
      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
 | 
					      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
 | 
				
			||||||
      168,  168,  168,  168,  167,  168,  168,  168,  168,  168,
 | 
					      173,  173,  173,  173,  173,  173,  173,  173,  172,  173,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
 | 
					      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
 | 
				
			||||||
      168,  167,  168,  168,  168,  168,  168,  168,  168,  168,
 | 
					      173,  173,  173,  173,  173,  173,  172,  173,  173,  173,
 | 
				
			||||||
      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
 | 
					      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
 | 
				
			||||||
      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
 | 
					      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
 | 
				
			||||||
      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
 | 
					      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
 | 
				
			||||||
      168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
 | 
					      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
 | 
				
			||||||
      168,  168,  168,  168,  168,  168,    0,  167,  167,  167,
 | 
					      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
 | 
				
			||||||
      167,  167,  167,  167
 | 
					      173,    0,  172,  172,  172,  172,  172,  172,  172
 | 
				
			||||||
    } ;
 | 
					    } ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const flex_int16_t yy_nxt[275] =
 | 
					static const flex_int16_t yy_nxt[280] =
 | 
				
			||||||
    {   0,
 | 
					    {   0,
 | 
				
			||||||
        4,    5,    6,    7,    8,    9,   10,   11,   10,   12,
 | 
					        4,    5,    6,    7,    8,    9,   10,   11,   10,   12,
 | 
				
			||||||
       13,   13,   14,    4,    4,    4,   13,   13,   15,   16,
 | 
					       13,   13,   14,    4,    4,    4,   13,   13,   15,   16,
 | 
				
			||||||
       17,   13,   18,   19,   20,   21,   22,    4,   23,   24,
 | 
					       17,   13,   18,   19,   20,   21,   22,    4,   23,   24,
 | 
				
			||||||
        4,   25,   26,    4,   27,    4,    4,    4,   32,   32,
 | 
					        4,   25,   26,    4,   27,    4,    4,    4,   32,   32,
 | 
				
			||||||
       28,   33,   35,   36,   37,   37,   37,  166,   38,   38,
 | 
					       28,   33,   35,   36,   37,   37,   37,  171,   38,   38,
 | 
				
			||||||
       38,   38,   38,   49,   38,   38,   38,   38,   38,   38,
 | 
					       38,   38,   38,   50,   38,   38,   38,   38,   38,   38,
 | 
				
			||||||
       38,   38,   38,   56,   54,  165,   38,   38,   38,   57,
 | 
					       38,   38,   38,   58,   56,   54,   38,   38,   38,   59,
 | 
				
			||||||
       58,  164,   50,   51,   55,  163,   52,   41,  162,   59,
 | 
					       60,  170,   51,   52,   57,  169,   53,   41,   55,   61,
 | 
				
			||||||
       35,   36,  161,   42,   38,   38,   38,   46,   61,   32,
 | 
					       35,   36,  168,   42,   38,   38,   38,   46,   63,  167,
 | 
				
			||||||
       32,   62,   65,  160,   68,   68,   63,   28,   43,   38,
 | 
					      166,   64,   47,  165,   32,   32,   65,   67,   43,   70,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
       38,   38,   38,   38,   38,  159,   44,  158,  157,   45,
 | 
					       70,  164,   28,   38,   38,   38,   44,  163,  162,   45,
 | 
				
			||||||
       69,   69,   69,  156,   69,   69,   68,   68,  155,   94,
 | 
					       71,   71,   71,  161,   71,   71,   38,   38,   38,  160,
 | 
				
			||||||
       69,   69,   69,   69,   69,   69,  154,  153,  152,  151,
 | 
					       71,   71,   71,   71,   71,   71,   70,   70,  159,   98,
 | 
				
			||||||
      150,   73,   31,   31,   34,   34,   32,   32,   67,   67,
 | 
					      158,  157,  156,  155,  154,  153,  152,  151,  150,  149,
 | 
				
			||||||
       35,   35,   68,   68,  149,  148,  147,  146,  145,  144,
 | 
					      148,  147,  146,  145,  144,   75,   31,   31,   34,   34,
 | 
				
			||||||
      143,  142,  141,  140,  139,  138,  137,  136,  135,  134,
 | 
					       32,   32,   69,   69,   35,   35,   70,   70,  143,  142,
 | 
				
			||||||
      133,  132,  131,  130,  129,  128,  127,  126,  125,  124,
 | 
					      141,  140,  139,  138,  137,  136,  135,  134,  133,  132,
 | 
				
			||||||
      123,  122,  121,  120,  119,  118,  117,  116,  115,  114,
 | 
					      131,  130,  129,  128,  127,  126,  125,  124,  123,  122,
 | 
				
			||||||
      113,  112,  111,  110,  109,  108,  107,  106,  105,  104,
 | 
					      121,  120,  119,  118,  117,  116,  115,  114,  113,  112,
 | 
				
			||||||
      103,  102,  101,  100,   99,   98,   97,   96,   95,   93,
 | 
					      111,  110,  109,  108,  107,  106,  105,  104,  103,  102,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
       92,   91,   90,   89,   88,   87,   86,   85,   84,   83,
 | 
					      101,  100,   99,   97,   96,   95,   94,   93,   92,   91,
 | 
				
			||||||
       82,   81,   80,   79,   78,   77,   76,   75,   74,   72,
 | 
					       90,   89,   88,   87,   86,   85,   84,   83,   82,   81,
 | 
				
			||||||
       71,   70,   36,   66,   29,   64,   60,   53,   48,   47,
 | 
					       80,   79,   78,   77,   76,   74,   73,   72,   36,   68,
 | 
				
			||||||
       40,   39,   30,   29,  167,    3,  167,  167,  167,  167,
 | 
					       29,   66,   62,   49,   48,   40,   39,   30,   29,  172,
 | 
				
			||||||
      167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
 | 
					        3,  172,  172,  172,  172,  172,  172,  172,  172,  172,
 | 
				
			||||||
      167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
 | 
					      172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
 | 
				
			||||||
      167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
 | 
					      172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
 | 
				
			||||||
      167,  167,  167,  167
 | 
					      172,  172,  172,  172,  172,  172,  172,  172,  172
 | 
				
			||||||
    } ;
 | 
					    } ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const flex_int16_t yy_chk[275] =
 | 
					static const flex_int16_t yy_chk[280] =
 | 
				
			||||||
    {   0,
 | 
					    {   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,
 | 
				
			||||||
        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,
 | 
					        1,    1,    1,    1,    1,    1,    1,    1,    8,    8,
 | 
				
			||||||
      168,    8,    9,    9,   10,   10,   10,  165,   10,   10,
 | 
					      173,    8,    9,    9,   10,   10,   10,  170,   10,   10,
 | 
				
			||||||
       13,   13,   13,   20,   10,   10,   10,   10,   10,   10,
 | 
					       13,   13,   13,   20,   10,   10,   10,   10,   10,   10,
 | 
				
			||||||
       15,   15,   15,   23,   22,  164,   17,   17,   17,   23,
 | 
					       15,   15,   15,   23,   22,   21,   17,   17,   17,   23,
 | 
				
			||||||
       24,  163,   20,   20,   22,  162,   20,   15,  160,   24,
 | 
					       24,  169,   20,   20,   22,  168,   20,   15,   21,   24,
 | 
				
			||||||
       34,   34,  158,   15,   16,   16,   16,   17,   26,   31,
 | 
					       34,   34,  167,   15,   16,   16,   16,   17,   26,  165,
 | 
				
			||||||
       31,   26,   31,  157,   33,   33,   26,   33,   16,   38,
 | 
					      163,   26,   17,  162,   31,   31,   26,   31,   16,   33,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
       38,   38,   43,   43,   43,  155,   16,  154,  153,   16,
 | 
					       33,  160,   33,   38,   38,   38,   16,  159,  158,   16,
 | 
				
			||||||
       39,   39,   39,  151,   39,   39,   67,   67,  150,   67,
 | 
					       39,   39,   39,  156,   39,   39,   43,   43,   43,  155,
 | 
				
			||||||
       39,   39,   39,   39,   39,   39,  149,  148,  146,  145,
 | 
					       39,   39,   39,   39,   39,   39,   69,   69,  154,   69,
 | 
				
			||||||
      144,   43,  169,  169,  170,  170,  171,  171,  172,  172,
 | 
					      153,  151,  150,  149,  148,  147,  146,  145,  144,  141,
 | 
				
			||||||
      173,  173,  174,  174,  143,  142,  141,  140,  139,  136,
 | 
					      140,  139,  138,  137,  136,   43,  174,  174,  175,  175,
 | 
				
			||||||
      135,  134,  133,  132,  131,  130,  128,  125,  124,  123,
 | 
					      176,  176,  177,  177,  178,  178,  179,  179,  135,  133,
 | 
				
			||||||
      122,  121,  119,  118,  117,  116,  115,  114,  113,  110,
 | 
					      130,  129,  128,  127,  126,  124,  123,  122,  121,  120,
 | 
				
			||||||
      109,  108,  106,  105,  104,  103,  102,  101,  100,   99,
 | 
					      119,  118,  115,  114,  113,  111,  110,  109,  108,  107,
 | 
				
			||||||
       98,   95,   94,   92,   90,   89,   85,   84,   83,   81,
 | 
					      106,  104,  103,  102,   99,   98,   96,   94,   93,   89,
 | 
				
			||||||
       80,   78,   77,   74,   73,   72,   71,   70,   68,   64,
 | 
					       88,   86,   84,   83,   81,   80,   79,   76,   75,   74,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
       63,   62,   61,   60,   59,   58,   56,   55,   54,   53,
 | 
					       73,   72,   70,   66,   65,   64,   63,   62,   61,   60,
 | 
				
			||||||
       52,   51,   50,   49,   48,   47,   46,   45,   44,   42,
 | 
					       58,   57,   56,   55,   54,   53,   52,   51,   50,   49,
 | 
				
			||||||
       41,   40,   35,   32,   29,   27,   25,   21,   19,   18,
 | 
					       48,   47,   46,   45,   44,   42,   41,   40,   35,   32,
 | 
				
			||||||
       14,   11,    7,    5,    3,  167,  167,  167,  167,  167,
 | 
					       29,   27,   25,   19,   18,   14,   11,    7,    5,    3,
 | 
				
			||||||
      167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
 | 
					      172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
 | 
				
			||||||
      167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
 | 
					      172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
 | 
				
			||||||
      167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
 | 
					      172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
 | 
				
			||||||
      167,  167,  167,  167
 | 
					      172,  172,  172,  172,  172,  172,  172,  172,  172
 | 
				
			||||||
    } ;
 | 
					    } ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static yy_state_type yy_last_accepting_state;
 | 
					static yy_state_type yy_last_accepting_state;
 | 
				
			||||||
@@ -807,13 +810,13 @@ yy_match:
 | 
				
			|||||||
			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 | 
								while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
				yy_current_state = (int) yy_def[yy_current_state];
 | 
									yy_current_state = (int) yy_def[yy_current_state];
 | 
				
			||||||
				if ( yy_current_state >= 168 )
 | 
									if ( yy_current_state >= 173 )
 | 
				
			||||||
					yy_c = yy_meta[yy_c];
 | 
										yy_c = yy_meta[yy_c];
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
 | 
								yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
 | 
				
			||||||
			++yy_cp;
 | 
								++yy_cp;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		while ( yy_base[yy_current_state] != 236 );
 | 
							while ( yy_base[yy_current_state] != 241 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
yy_find_action:
 | 
					yy_find_action:
 | 
				
			||||||
		yy_act = yy_accept[yy_current_state];
 | 
							yy_act = yy_accept[yy_current_state];
 | 
				
			||||||
@@ -929,47 +932,47 @@ YY_RULE_SETUP
 | 
				
			|||||||
	YY_BREAK
 | 
						YY_BREAK
 | 
				
			||||||
case 23:
 | 
					case 23:
 | 
				
			||||||
YY_RULE_SETUP
 | 
					YY_RULE_SETUP
 | 
				
			||||||
{yylval.number=IRQ; return(RESOURCE);}
 | 
					{yylval.number=LPC; return(BUS);}
 | 
				
			||||||
	YY_BREAK
 | 
						YY_BREAK
 | 
				
			||||||
case 24:
 | 
					case 24:
 | 
				
			||||||
YY_RULE_SETUP
 | 
					YY_RULE_SETUP
 | 
				
			||||||
{yylval.number=DRQ; return(RESOURCE);}
 | 
					{yylval.number=ESPI; return(BUS);}
 | 
				
			||||||
	YY_BREAK
 | 
						YY_BREAK
 | 
				
			||||||
case 25:
 | 
					case 25:
 | 
				
			||||||
YY_RULE_SETUP
 | 
					YY_RULE_SETUP
 | 
				
			||||||
{yylval.number=IO; return(RESOURCE);}
 | 
					{yylval.number=IRQ; return(RESOURCE);}
 | 
				
			||||||
	YY_BREAK
 | 
						YY_BREAK
 | 
				
			||||||
case 26:
 | 
					case 26:
 | 
				
			||||||
YY_RULE_SETUP
 | 
					YY_RULE_SETUP
 | 
				
			||||||
{return(IOAPIC_IRQ);}
 | 
					{yylval.number=DRQ; return(RESOURCE);}
 | 
				
			||||||
	YY_BREAK
 | 
						YY_BREAK
 | 
				
			||||||
case 27:
 | 
					case 27:
 | 
				
			||||||
YY_RULE_SETUP
 | 
					YY_RULE_SETUP
 | 
				
			||||||
{return(INHERIT);}
 | 
					{yylval.number=IO; return(RESOURCE);}
 | 
				
			||||||
	YY_BREAK
 | 
						YY_BREAK
 | 
				
			||||||
case 28:
 | 
					case 28:
 | 
				
			||||||
YY_RULE_SETUP
 | 
					YY_RULE_SETUP
 | 
				
			||||||
{return(SUBSYSTEMID);}
 | 
					{return(IOAPIC_IRQ);}
 | 
				
			||||||
	YY_BREAK
 | 
						YY_BREAK
 | 
				
			||||||
case 29:
 | 
					case 29:
 | 
				
			||||||
YY_RULE_SETUP
 | 
					YY_RULE_SETUP
 | 
				
			||||||
{return(END);}
 | 
					{return(INHERIT);}
 | 
				
			||||||
	YY_BREAK
 | 
						YY_BREAK
 | 
				
			||||||
case 30:
 | 
					case 30:
 | 
				
			||||||
YY_RULE_SETUP
 | 
					YY_RULE_SETUP
 | 
				
			||||||
{return(SLOT_DESC);}
 | 
					{return(SUBSYSTEMID);}
 | 
				
			||||||
	YY_BREAK
 | 
						YY_BREAK
 | 
				
			||||||
case 31:
 | 
					case 31:
 | 
				
			||||||
YY_RULE_SETUP
 | 
					YY_RULE_SETUP
 | 
				
			||||||
{return(EQUALS);}
 | 
					{return(END);}
 | 
				
			||||||
	YY_BREAK
 | 
						YY_BREAK
 | 
				
			||||||
case 32:
 | 
					case 32:
 | 
				
			||||||
YY_RULE_SETUP
 | 
					YY_RULE_SETUP
 | 
				
			||||||
{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);}
 | 
					{return(SLOT_DESC);}
 | 
				
			||||||
	YY_BREAK
 | 
						YY_BREAK
 | 
				
			||||||
case 33:
 | 
					case 33:
 | 
				
			||||||
YY_RULE_SETUP
 | 
					YY_RULE_SETUP
 | 
				
			||||||
{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);}
 | 
					{return(EQUALS);}
 | 
				
			||||||
	YY_BREAK
 | 
						YY_BREAK
 | 
				
			||||||
case 34:
 | 
					case 34:
 | 
				
			||||||
YY_RULE_SETUP
 | 
					YY_RULE_SETUP
 | 
				
			||||||
@@ -977,23 +980,31 @@ YY_RULE_SETUP
 | 
				
			|||||||
	YY_BREAK
 | 
						YY_BREAK
 | 
				
			||||||
case 35:
 | 
					case 35:
 | 
				
			||||||
YY_RULE_SETUP
 | 
					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
 | 
						YY_BREAK
 | 
				
			||||||
case 36:
 | 
					case 36:
 | 
				
			||||||
/* rule 36 can match eol */
 | 
					 | 
				
			||||||
YY_RULE_SETUP
 | 
					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
 | 
						YY_BREAK
 | 
				
			||||||
case 37:
 | 
					case 37:
 | 
				
			||||||
/* rule 37 can match eol */
 | 
					YY_RULE_SETUP
 | 
				
			||||||
 | 
					{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(PCIINT);}
 | 
				
			||||||
 | 
						YY_BREAK
 | 
				
			||||||
 | 
					case 38:
 | 
				
			||||||
 | 
					/* rule 38 can match eol */
 | 
				
			||||||
YY_RULE_SETUP
 | 
					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+1, yyleng-2); yylval.string[yyleng-2]='\0'; return(STRING);}
 | 
				
			||||||
	YY_BREAK
 | 
						YY_BREAK
 | 
				
			||||||
case 38:
 | 
					case 39:
 | 
				
			||||||
 | 
					/* rule 39 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);}
 | 
				
			||||||
 | 
						YY_BREAK
 | 
				
			||||||
 | 
					case 40:
 | 
				
			||||||
YY_RULE_SETUP
 | 
					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, yyleng); yylval.string[yyleng]='\0'; return(STRING);}
 | 
				
			||||||
	YY_BREAK
 | 
						YY_BREAK
 | 
				
			||||||
case 39:
 | 
					case 41:
 | 
				
			||||||
YY_RULE_SETUP
 | 
					YY_RULE_SETUP
 | 
				
			||||||
ECHO;
 | 
					ECHO;
 | 
				
			||||||
	YY_BREAK
 | 
						YY_BREAK
 | 
				
			||||||
@@ -1293,7 +1304,7 @@ static int yy_get_next_buffer (void)
 | 
				
			|||||||
		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 | 
							while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
			yy_current_state = (int) yy_def[yy_current_state];
 | 
								yy_current_state = (int) yy_def[yy_current_state];
 | 
				
			||||||
			if ( yy_current_state >= 168 )
 | 
								if ( yy_current_state >= 173 )
 | 
				
			||||||
				yy_c = yy_meta[yy_c];
 | 
									yy_c = yy_meta[yy_c];
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
 | 
							yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
 | 
				
			||||||
@@ -1321,11 +1332,11 @@ static int yy_get_next_buffer (void)
 | 
				
			|||||||
	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 | 
						while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
		yy_current_state = (int) yy_def[yy_current_state];
 | 
							yy_current_state = (int) yy_def[yy_current_state];
 | 
				
			||||||
		if ( yy_current_state >= 168 )
 | 
							if ( yy_current_state >= 173 )
 | 
				
			||||||
			yy_c = yy_meta[yy_c];
 | 
								yy_c = yy_meta[yy_c];
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
 | 
						yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
 | 
				
			||||||
	yy_is_jam = (yy_current_state == 167);
 | 
						yy_is_jam = (yy_current_state == 172);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		return yy_is_jam ? 0 : yy_current_state;
 | 
							return yy_is_jam ? 0 : yy_current_state;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -493,6 +493,14 @@ struct device *new_device(struct bus *parent,
 | 
				
			|||||||
	case MMIO:
 | 
						case MMIO:
 | 
				
			||||||
		new_d->path = ".type=DEVICE_PATH_MMIO,{.mmio={ .addr = 0x%x }}";
 | 
							new_d->path = ".type=DEVICE_PATH_MMIO,{.mmio={ .addr = 0x%x }}";
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						case ESPI:
 | 
				
			||||||
 | 
							new_d->path = ".type=DEVICE_PATH_ESPI,{.espi={ .addr = 0x%x }}";
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						case LPC:
 | 
				
			||||||
 | 
							new_d->path = ".type=DEVICE_PATH_LPC,{.lpc={ .addr = 0x%x }}";
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return new_d;
 | 
						return new_d;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,6 +30,8 @@ generic			{yylval.number=GENERIC; return(BUS);}
 | 
				
			|||||||
mmio			{yylval.number=MMIO; return(BUS);}
 | 
					mmio			{yylval.number=MMIO; return(BUS);}
 | 
				
			||||||
spi			{yylval.number=SPI; return(BUS);}
 | 
					spi			{yylval.number=SPI; return(BUS);}
 | 
				
			||||||
usb			{yylval.number=USB; return(BUS);}
 | 
					usb			{yylval.number=USB; return(BUS);}
 | 
				
			||||||
 | 
					lpc			{yylval.number=LPC; return(BUS);}
 | 
				
			||||||
 | 
					espi			{yylval.number=ESPI; return(BUS);}
 | 
				
			||||||
irq			{yylval.number=IRQ; return(RESOURCE);}
 | 
					irq			{yylval.number=IRQ; return(RESOURCE);}
 | 
				
			||||||
drq			{yylval.number=DRQ; return(RESOURCE);}
 | 
					drq			{yylval.number=DRQ; return(RESOURCE);}
 | 
				
			||||||
io			{yylval.number=IO; return(RESOURCE);}
 | 
					io			{yylval.number=IO; return(RESOURCE);}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -158,7 +158,9 @@ extern int yydebug;
 | 
				
			|||||||
    GENERIC = 287,
 | 
					    GENERIC = 287,
 | 
				
			||||||
    SPI = 288,
 | 
					    SPI = 288,
 | 
				
			||||||
    USB = 289,
 | 
					    USB = 289,
 | 
				
			||||||
    MMIO = 290
 | 
					    MMIO = 290,
 | 
				
			||||||
 | 
					    LPC = 291,
 | 
				
			||||||
 | 
					    ESPI = 292
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -493,7 +495,7 @@ union yyalloc
 | 
				
			|||||||
#define YYLAST   45
 | 
					#define YYLAST   45
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* YYNTOKENS -- Number of terminals.  */
 | 
					/* YYNTOKENS -- Number of terminals.  */
 | 
				
			||||||
#define YYNTOKENS  36
 | 
					#define YYNTOKENS  38
 | 
				
			||||||
/* YYNNTS -- Number of nonterminals.  */
 | 
					/* YYNNTS -- Number of nonterminals.  */
 | 
				
			||||||
#define YYNNTS  15
 | 
					#define YYNNTS  15
 | 
				
			||||||
/* YYNRULES -- Number of rules.  */
 | 
					/* YYNRULES -- Number of rules.  */
 | 
				
			||||||
@@ -502,7 +504,7 @@ union yyalloc
 | 
				
			|||||||
#define YYNSTATES  50
 | 
					#define YYNSTATES  50
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define YYUNDEFTOK  2
 | 
					#define YYUNDEFTOK  2
 | 
				
			||||||
#define YYMAXUTOK   290
 | 
					#define YYMAXUTOK   292
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
 | 
					/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
 | 
				
			||||||
@@ -543,7 +545,7 @@ static const yytype_int8 yytranslate[] =
 | 
				
			|||||||
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
 | 
					       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
 | 
				
			||||||
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
 | 
					      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
 | 
				
			||||||
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
 | 
					      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
 | 
				
			||||||
      35
 | 
					      35,    36,    37
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if YYDEBUG
 | 
					#if YYDEBUG
 | 
				
			||||||
@@ -565,10 +567,10 @@ static const char *const yytname[] =
 | 
				
			|||||||
  "STATUS", "MANDATORY", "BUS", "RESOURCE", "END", "EQUALS", "HEX",
 | 
					  "STATUS", "MANDATORY", "BUS", "RESOURCE", "END", "EQUALS", "HEX",
 | 
				
			||||||
  "STRING", "PCI", "PNP", "I2C", "APIC", "CPU_CLUSTER", "CPU", "DOMAIN",
 | 
					  "STRING", "PCI", "PNP", "I2C", "APIC", "CPU_CLUSTER", "CPU", "DOMAIN",
 | 
				
			||||||
  "IRQ", "DRQ", "SLOT_DESC", "IO", "NUMBER", "SUBSYSTEMID", "INHERIT",
 | 
					  "IRQ", "DRQ", "SLOT_DESC", "IO", "NUMBER", "SUBSYSTEMID", "INHERIT",
 | 
				
			||||||
  "IOAPIC_IRQ", "IOAPIC", "PCIINT", "GENERIC", "SPI", "USB", "MMIO",
 | 
					  "IOAPIC_IRQ", "IOAPIC", "PCIINT", "GENERIC", "SPI", "USB", "MMIO", "LPC",
 | 
				
			||||||
  "$accept", "devtree", "$@1", "chipchildren", "devicechildren", "chip",
 | 
					  "ESPI", "$accept", "devtree", "$@1", "chipchildren", "devicechildren",
 | 
				
			||||||
  "@2", "device", "@3", "status", "resource", "registers", "subsystemid",
 | 
					  "chip", "@2", "device", "@3", "status", "resource", "registers",
 | 
				
			||||||
  "ioapic_irq", "smbios_slot_desc", YY_NULLPTR
 | 
					  "subsystemid", "ioapic_irq", "smbios_slot_desc", YY_NULLPTR
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -580,7 +582,7 @@ static const yytype_int16 yytoknum[] =
 | 
				
			|||||||
       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
 | 
					       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
 | 
				
			||||||
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
 | 
					     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,   286,   287,   288,   289,   290
 | 
					     285,   286,   287,   288,   289,   290,   291,   292
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
# endif
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -656,19 +658,19 @@ static const yytype_int8 yycheck[] =
 | 
				
			|||||||
     symbol of state STATE-NUM.  */
 | 
					     symbol of state STATE-NUM.  */
 | 
				
			||||||
static const yytype_int8 yystos[] =
 | 
					static const yytype_int8 yystos[] =
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
       0,    37,    38,     0,     3,    41,    14,    42,    39,     4,
 | 
					       0,    39,    40,     0,     3,    43,    14,    44,    41,     4,
 | 
				
			||||||
       5,    11,    41,    43,    47,     9,    14,    26,    12,     6,
 | 
					       5,    11,    43,    45,    49,     9,    14,    26,    12,     6,
 | 
				
			||||||
       7,    45,    14,    44,    40,    10,    11,    24,    27,    29,
 | 
					       7,    47,    14,    46,    42,    10,    11,    24,    27,    29,
 | 
				
			||||||
      41,    43,    46,    47,    48,    49,    50,    26,    14,    26,
 | 
					      43,    45,    48,    49,    50,    51,    52,    26,    14,    26,
 | 
				
			||||||
      26,    12,    14,    26,    31,    26,    14,    28,    26,    14
 | 
					      26,    12,    14,    26,    31,    26,    14,    28,    26,    14
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 | 
					  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 | 
				
			||||||
static const yytype_int8 yyr1[] =
 | 
					static const yytype_int8 yyr1[] =
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
       0,    36,    38,    37,    39,    39,    39,    39,    40,    40,
 | 
					       0,    38,    40,    39,    41,    41,    41,    41,    42,    42,
 | 
				
			||||||
      40,    40,    40,    40,    40,    40,    42,    41,    44,    43,
 | 
					      42,    42,    42,    42,    42,    42,    44,    43,    46,    45,
 | 
				
			||||||
      45,    45,    46,    47,    48,    48,    49,    50,    50,    50
 | 
					      47,    47,    48,    49,    50,    50,    51,    52,    52,    52
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
 | 
					  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -81,7 +81,9 @@ extern int yydebug;
 | 
				
			|||||||
    GENERIC = 287,
 | 
					    GENERIC = 287,
 | 
				
			||||||
    SPI = 288,
 | 
					    SPI = 288,
 | 
				
			||||||
    USB = 289,
 | 
					    USB = 289,
 | 
				
			||||||
    MMIO = 290
 | 
					    MMIO = 290,
 | 
				
			||||||
 | 
					    LPC = 291,
 | 
				
			||||||
 | 
					    ESPI = 292
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,7 @@ static struct chip_instance *cur_chip_instance;
 | 
				
			|||||||
	int number;
 | 
						int number;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
%token CHIP DEVICE REGISTER BOOL STATUS MANDATORY BUS RESOURCE END EQUALS HEX STRING PCI PNP I2C APIC CPU_CLUSTER CPU DOMAIN IRQ DRQ SLOT_DESC IO NUMBER SUBSYSTEMID INHERIT IOAPIC_IRQ IOAPIC PCIINT GENERIC SPI USB MMIO
 | 
					%token CHIP DEVICE REGISTER BOOL STATUS MANDATORY BUS RESOURCE END EQUALS HEX STRING PCI PNP I2C APIC CPU_CLUSTER CPU DOMAIN IRQ DRQ SLOT_DESC IO NUMBER SUBSYSTEMID INHERIT IOAPIC_IRQ IOAPIC PCIINT GENERIC SPI USB MMIO LPC ESPI
 | 
				
			||||||
%%
 | 
					%%
 | 
				
			||||||
devtree: { cur_parent = root_parent; } chip;
 | 
					devtree: { cur_parent = root_parent; } chip;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user