diff --git a/util/sconfig/sconfig.tab.c_shipped b/util/sconfig/sconfig.tab.c_shipped
index c319a79..3df31a7 100644
--- a/util/sconfig/sconfig.tab.c_shipped
+++ b/util/sconfig/sconfig.tab.c_shipped
@@ -1,4 +1,4 @@
-/* A Bison parser, made by GNU Bison 3.8.1.  */
+/* A Bison parser, made by GNU Bison 3.8.2.  */
 
 /* Bison implementation for Yacc-like parsers in C
 
@@ -46,10 +46,10 @@
    USER NAME SPACE" below.  */
 
 /* Identify Bison output, and Bison version.  */
-#define YYBISON 30801
+#define YYBISON 30802
 
 /* Bison version string.  */
-#define YYBISON_VERSION "3.8.1"
+#define YYBISON_VERSION "3.8.2"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -156,38 +156,40 @@
   YYSYMBOL_FW_CONFIG_OPTION = 43,          /* FW_CONFIG_OPTION  */
   YYSYMBOL_FW_CONFIG_PROBE = 44,           /* FW_CONFIG_PROBE  */
   YYSYMBOL_PIPE = 45,                      /* PIPE  */
-  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_ioapic_irq = 64,                /* ioapic_irq  */
-  YYSYMBOL_smbios_slot_desc = 65,          /* smbios_slot_desc  */
-  YYSYMBOL_smbios_dev_info = 66,           /* smbios_dev_info  */
-  YYSYMBOL_fw_config_table = 67,           /* fw_config_table  */
-  YYSYMBOL_fw_config_table_children = 68,  /* fw_config_table_children  */
-  YYSYMBOL_fw_config_field_children = 69,  /* fw_config_field_children  */
-  YYSYMBOL_fw_config_field_bits = 70,      /* fw_config_field_bits  */
-  YYSYMBOL_fw_config_field_bits_repeating = 71, /* fw_config_field_bits_repeating  */
-  YYSYMBOL_fw_config_field = 72,           /* fw_config_field  */
-  YYSYMBOL_73_4 = 73,                      /* $@4  */
-  YYSYMBOL_74_5 = 74,                      /* $@5  */
-  YYSYMBOL_75_6 = 75,                      /* $@6  */
-  YYSYMBOL_fw_config_option = 76,          /* fw_config_option  */
-  YYSYMBOL_fw_config_probe = 77            /* fw_config_probe  */
+  YYSYMBOL_OPS = 46,                       /* OPS  */
+  YYSYMBOL_YYACCEPT = 47,                  /* $accept  */
+  YYSYMBOL_devtree = 48,                   /* devtree  */
+  YYSYMBOL_chipchild_nondev = 49,          /* chipchild_nondev  */
+  YYSYMBOL_chipchild = 50,                 /* chipchild  */
+  YYSYMBOL_chipchildren = 51,              /* chipchildren  */
+  YYSYMBOL_chipchildren_dev = 52,          /* chipchildren_dev  */
+  YYSYMBOL_devicechildren = 53,            /* devicechildren  */
+  YYSYMBOL_chip = 54,                      /* chip  */
+  YYSYMBOL_55_1 = 55,                      /* @1  */
+  YYSYMBOL_device = 56,                    /* device  */
+  YYSYMBOL_57_2 = 57,                      /* @2  */
+  YYSYMBOL_58_3 = 58,                      /* @3  */
+  YYSYMBOL_alias = 59,                     /* alias  */
+  YYSYMBOL_status = 60,                    /* status  */
+  YYSYMBOL_resource = 61,                  /* resource  */
+  YYSYMBOL_reference = 62,                 /* reference  */
+  YYSYMBOL_registers = 63,                 /* registers  */
+  YYSYMBOL_subsystemid = 64,               /* subsystemid  */
+  YYSYMBOL_ioapic_irq = 65,                /* ioapic_irq  */
+  YYSYMBOL_smbios_slot_desc = 66,          /* smbios_slot_desc  */
+  YYSYMBOL_smbios_dev_info = 67,           /* smbios_dev_info  */
+  YYSYMBOL_fw_config_table = 68,           /* fw_config_table  */
+  YYSYMBOL_fw_config_table_children = 69,  /* fw_config_table_children  */
+  YYSYMBOL_fw_config_field_children = 70,  /* fw_config_field_children  */
+  YYSYMBOL_fw_config_field_bits = 71,      /* fw_config_field_bits  */
+  YYSYMBOL_fw_config_field_bits_repeating = 72, /* fw_config_field_bits_repeating  */
+  YYSYMBOL_fw_config_field = 73,           /* fw_config_field  */
+  YYSYMBOL_74_4 = 74,                      /* $@4  */
+  YYSYMBOL_75_5 = 75,                      /* $@5  */
+  YYSYMBOL_76_6 = 76,                      /* $@6  */
+  YYSYMBOL_fw_config_option = 77,          /* fw_config_option  */
+  YYSYMBOL_fw_config_probe = 78,           /* fw_config_probe  */
+  YYSYMBOL_ops = 79                        /* ops  */
 };
 typedef enum yysymbol_kind_t yysymbol_kind_t;
 
@@ -515,19 +517,19 @@
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  2
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   98
+#define YYLAST   101
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  46
+#define YYNTOKENS  47
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  32
+#define YYNNTS  33
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  60
+#define YYNRULES  62
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  105
+#define YYNSTATES  108
 
 /* YYMAXUTOK -- Last valid token kind.  */
-#define YYMAXUTOK   300
+#define YYMAXUTOK   301
 
 
 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
@@ -571,7 +573,7 @@
       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45
+      45,    46
 };
 
 #if YYDEBUG
@@ -580,11 +582,11 @@
 {
        0,    26,    26,    26,    26,    29,    29,    29,    30,    30,
       31,    31,    32,    32,    34,    34,    34,    34,    34,    34,
-      34,    34,    34,    34,    36,    36,    45,    45,    53,    53,
-      61,    63,    67,    67,    69,    72,    75,    78,    81,    84,
-      87,    90,    93,    96,    99,   103,   106,   106,   109,   109,
-     112,   118,   118,   121,   120,   125,   125,   133,   133,   139,
-     143
+      34,    34,    34,    34,    34,    36,    36,    45,    45,    53,
+      53,    61,    63,    67,    67,    69,    72,    75,    78,    81,
+      84,    87,    90,    93,    96,    99,   103,   106,   106,   109,
+     109,   112,   118,   118,   121,   120,   125,   125,   133,   133,
+     139,   143,   146
 };
 #endif
 
@@ -607,15 +609,15 @@
   "SLOT_DESC", "SMBIOS_DEV_INFO", "IO", "NUMBER", "SUBSYSTEMID", "INHERIT",
   "IOAPIC_IRQ", "IOAPIC", "PCIINT", "GENERIC", "SPI", "USB", "MMIO",
   "GPIO", "FW_CONFIG_TABLE", "FW_CONFIG_FIELD", "FW_CONFIG_OPTION",
-  "FW_CONFIG_PROBE", "PIPE", "$accept", "devtree", "chipchild_nondev",
-  "chipchild", "chipchildren", "chipchildren_dev", "devicechildren",
-  "chip", "@1", "device", "@2", "@3", "alias", "status", "resource",
-  "reference", "registers", "subsystemid", "ioapic_irq",
+  "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", "ioapic_irq",
   "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", YY_NULLPTR
+  "fw_config_probe", "ops", YY_NULLPTR
 };
 
 static const char *
@@ -625,7 +627,7 @@
 }
 #endif
 
-#define YYPACT_NINF (-45)
+#define YYPACT_NINF (-57)
 
 #define yypact_value_is_default(Yyn) \
   ((Yyn) == YYPACT_NINF)
@@ -639,17 +641,17 @@
    STATE-NUM.  */
 static const yytype_int8 yypact[] =
 {
-     -45,     6,   -45,     4,   -45,   -45,   -45,   -45,   -12,    45,
-     -45,    15,   -45,    11,    17,    18,    45,    -3,   -45,   -45,
-     -45,   -45,    16,    34,    23,    14,    46,   -45,   -45,    45,
-      25,    19,   -45,    10,    51,    42,    43,   -45,   -45,   -45,
-     -45,   -45,    31,   -45,    -7,   -45,   -45,   -45,    49,    10,
-     -45,   -45,    -6,    25,    19,   -45,   -45,    50,   -45,   -45,
-     -45,   -45,   -45,   -45,    -2,    32,     0,   -45,   -45,   -45,
-      33,   -45,    52,    38,    40,    41,    55,   -45,   -45,   -45,
-     -45,   -45,   -45,   -45,   -45,   -45,    12,    58,    57,    59,
-      47,    44,    61,   -45,    53,    63,   -45,    54,    60,   -45,
-     -45,    64,   -45,   -45,   -45
+     -57,     6,   -57,     2,   -57,   -57,   -57,   -57,   -12,    45,
+     -57,     4,   -57,    11,     5,     7,    45,    -3,   -57,   -57,
+     -57,   -57,    21,    18,    25,    14,    34,   -57,   -57,    45,
+      27,    16,   -57,    44,    53,    46,    47,   -57,   -57,   -57,
+     -57,   -57,    32,   -57,    -7,   -57,   -57,   -57,    49,    44,
+     -57,   -57,    -6,    27,    16,   -57,   -57,    50,   -57,   -57,
+     -57,   -57,   -57,   -57,    -2,    38,     0,   -57,   -57,   -57,
+      39,   -57,    54,    40,    42,    43,    57,    58,   -57,   -57,
+     -57,   -57,   -57,   -57,   -57,   -57,   -57,   -57,    12,    61,
+      60,    62,    48,    51,    63,   -57,   -57,    52,    64,   -57,
+      56,    55,   -57,   -57,    66,   -57,   -57,   -57
 };
 
 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -657,35 +659,35 @@
    means the default is an error.  */
 static const yytype_int8 yydefact[] =
 {
-       2,     0,     1,     0,    47,     3,     4,    24,     0,     0,
-      45,     0,    46,     0,     0,     0,     0,     0,     5,    11,
-       7,     6,    57,     0,     0,     0,     0,    13,    25,    12,
-      55,    52,    49,     0,    30,     0,     0,     9,    10,     8,
-      50,    49,     0,    53,     0,    32,    33,    28,     0,     0,
-      36,    35,     0,     0,    52,    49,    58,     0,    48,    23,
-      31,    26,    56,    51,     0,     0,     0,    23,    54,    59,
-       0,    29,     0,     0,     0,     0,     0,    15,    14,    16,
-      21,    17,    18,    19,    20,    22,     0,     0,     0,    44,
-       0,     0,     0,    27,     0,    42,    43,    37,     0,    60,
-      34,    41,    38,    39,    40
+       2,     0,     1,     0,    48,     3,     4,    25,     0,     0,
+      46,     0,    47,     0,     0,     0,     0,     0,     5,    11,
+       7,     6,    58,     0,     0,     0,     0,    13,    26,    12,
+      56,    53,    50,     0,    31,     0,     0,     9,    10,     8,
+      51,    50,     0,    54,     0,    33,    34,    29,     0,     0,
+      37,    36,     0,     0,    53,    50,    59,     0,    49,    24,
+      32,    27,    57,    52,     0,     0,     0,    24,    55,    60,
+       0,    30,     0,     0,     0,     0,     0,     0,    15,    14,
+      16,    21,    17,    18,    19,    20,    22,    23,     0,     0,
+       0,    45,     0,     0,     0,    62,    28,     0,    43,    44,
+      38,     0,    61,    35,    42,    39,    40,    41
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int8 yypgoto[] =
 {
-     -45,   -45,    62,   -45,   -45,    66,     8,    -1,   -45,   -28,
-     -45,   -45,   -45,    35,   -45,   -45,   -44,   -45,   -45,   -45,
-     -45,   -45,   -45,   -31,    56,    39,   -45,   -45,   -45,   -45,
-     -45,   -45
+     -57,   -57,    65,   -57,   -57,    68,    22,    -1,   -57,   -28,
+     -57,   -57,   -57,    41,   -57,   -57,   -56,   -57,   -57,   -57,
+     -57,   -57,   -57,   -21,    59,    37,   -57,   -57,   -57,   -57,
+     -57,   -57,   -57
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int8 yydefgoto[] =
 {
        0,     1,    16,    38,    29,    17,    66,    18,     9,    19,
-      67,    59,    49,    47,    79,    20,    21,    81,    82,    83,
-      84,     6,     8,    44,    31,    43,    12,    55,    41,    32,
-      58,    85
+      67,    59,    49,    47,    80,    20,    21,    82,    83,    84,
+      85,     6,     8,    44,    31,    43,    12,    55,    41,    32,
+      58,    86,    87
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -694,58 +696,60 @@
 static const yytype_int8 yytable[] =
 {
        5,    39,    10,     3,    13,    14,     2,    56,    62,     3,
-      52,    28,    68,    70,    71,     3,    13,    14,    23,    45,
-      46,     7,    80,    24,    64,    70,    93,    72,    73,    35,
-      11,    74,    22,    75,    25,    26,    57,    57,    78,    72,
-      73,    57,    80,    74,    76,    75,    30,     4,     3,    13,
-      14,    33,    15,    34,    36,    40,    76,    48,    78,    50,
-      51,    53,    69,    87,    42,    77,    60,    65,    89,    88,
-      90,    91,    92,    94,    95,    86,    96,    97,    99,    98,
-     101,   104,    27,   100,    61,    77,   102,     0,     0,     0,
-     103,    37,     0,    63,     0,     0,     0,     0,    54
+      81,    28,    68,    70,    71,     3,    13,    14,    23,     7,
+      52,    22,    25,    24,    26,    70,    96,    72,    73,    35,
+      11,    74,    81,    75,    64,    33,    57,    57,    79,    72,
+      73,    57,    36,    74,    76,    75,    77,     4,     3,    13,
+      14,    30,    15,    45,    46,    34,    76,    40,    77,    48,
+      79,    42,    53,    50,    51,    78,    60,    65,    69,    89,
+      91,    90,    92,    93,    94,    95,    97,    98,   100,    99,
+     102,   104,   103,   107,    27,   106,   101,    78,   105,    88,
+      61,    63,     0,     0,    37,     0,     0,     0,     0,     0,
+       0,    54
 };
 
 static const yytype_int8 yycheck[] =
 {
        1,    29,    14,     3,     4,     5,     0,    14,    14,     3,
-      41,    14,    14,    13,    14,     3,     4,     5,     7,     9,
-      10,    17,    66,    12,    55,    13,    14,    27,    28,    15,
-      42,    31,    17,    33,    17,    17,    43,    43,    66,    27,
-      28,    43,    86,    31,    44,    33,    30,    41,     3,     4,
-       5,    17,     7,    30,     8,    30,    44,     6,    86,    17,
-      17,    30,    30,    30,    45,    66,    17,    17,    30,    17,
-      30,    30,    17,    15,    17,    67,    17,    30,    17,    35,
-      17,    17,    16,    30,    49,    86,    32,    -1,    -1,    -1,
-      30,    29,    -1,    54,    -1,    -1,    -1,    -1,    42
+      66,    14,    14,    13,    14,     3,     4,     5,     7,    17,
+      41,    17,    17,    12,    17,    13,    14,    27,    28,    15,
+      42,    31,    88,    33,    55,    17,    43,    43,    66,    27,
+      28,    43,     8,    31,    44,    33,    46,    41,     3,     4,
+       5,    30,     7,     9,    10,    30,    44,    30,    46,     6,
+      88,    45,    30,    17,    17,    66,    17,    17,    30,    30,
+      30,    17,    30,    30,    17,    17,    15,    17,    30,    17,
+      17,    17,    30,    17,    16,    30,    35,    88,    32,    67,
+      49,    54,    -1,    -1,    29,    -1,    -1,    -1,    -1,    -1,
+      -1,    42
 };
 
 /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
    state STATE-NUM.  */
 static const yytype_int8 yystos[] =
 {
-       0,    47,     0,     3,    41,    53,    67,    17,    68,    54,
-      14,    42,    72,     4,     5,     7,    48,    51,    53,    55,
-      61,    62,    17,     7,    12,    17,    17,    51,    14,    50,
-      30,    70,    75,    17,    30,    15,     8,    48,    49,    55,
-      30,    74,    45,    71,    69,     9,    10,    59,     6,    58,
-      17,    17,    69,    30,    70,    73,    14,    43,    76,    57,
-      17,    59,    14,    71,    69,    17,    52,    56,    14,    30,
-      13,    14,    27,    28,    31,    33,    44,    53,    55,    60,
-      62,    63,    64,    65,    66,    77,    52,    30,    17,    30,
-      30,    30,    17,    14,    15,    17,    17,    30,    35,    17,
-      30,    17,    32,    30,    17
+       0,    48,     0,     3,    41,    54,    68,    17,    69,    55,
+      14,    42,    73,     4,     5,     7,    49,    52,    54,    56,
+      62,    63,    17,     7,    12,    17,    17,    52,    14,    51,
+      30,    71,    76,    17,    30,    15,     8,    49,    50,    56,
+      30,    75,    45,    72,    70,     9,    10,    60,     6,    59,
+      17,    17,    70,    30,    71,    74,    14,    43,    77,    58,
+      17,    60,    14,    72,    70,    17,    53,    57,    14,    30,
+      13,    14,    27,    28,    31,    33,    44,    46,    54,    56,
+      61,    63,    64,    65,    66,    67,    78,    79,    53,    30,
+      17,    30,    30,    30,    17,    17,    14,    15,    17,    17,
+      30,    35,    17,    30,    17,    32,    30,    17
 };
 
 /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
 static const yytype_int8 yyr1[] =
 {
-       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,
-      65,    65,    65,    66,    66,    67,    68,    68,    69,    69,
-      70,    71,    71,    73,    72,    74,    72,    75,    72,    76,
-      77
+       0,    47,    48,    48,    48,    49,    49,    49,    50,    50,
+      51,    51,    52,    52,    53,    53,    53,    53,    53,    53,
+      53,    53,    53,    53,    53,    55,    54,    57,    56,    58,
+      56,    59,    59,    60,    60,    61,    62,    63,    64,    64,
+      65,    66,    66,    66,    67,    67,    68,    69,    69,    70,
+      70,    71,    72,    72,    74,    73,    75,    73,    76,    73,
+      77,    78,    79
 };
 
 /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
@@ -753,11 +757,11 @@
 {
        0,     2,     0,     2,     2,     1,     1,     1,     1,     1,
        2,     0,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     0,     0,     5,     0,     8,     0,     7,
-       0,     2,     1,     1,     4,     4,     4,     3,     4,     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,     2,     0,     0,     5,     0,     8,     0,
+       7,     0,     2,     1,     1,     4,     4,     4,     3,     4,
+       4,     5,     4,     3,     3,     2,     3,     2,     0,     2,
+       0,     2,     3,     0,     0,     7,     0,     6,     0,     5,
+       3,     3,     2
 };
 
 
@@ -1224,7 +1228,7 @@
          { cur_parent = root_parent; }
     break;
 
-  case 24: /* @1: %empty  */
+  case 25: /* @1: %empty  */
                                 {
 	(yyval.chip_instance) = new_chip_instance((yyvsp[0].string));
 	chip_enqueue_tail(cur_chip_instance);
@@ -1232,113 +1236,113 @@
 }
     break;
 
-  case 25: /* chip: CHIP STRING @1 chipchildren_dev END  */
+  case 26: /* chip: CHIP STRING @1 chipchildren_dev END  */
                              {
 	cur_chip_instance = chip_dequeue_tail();
 }
     break;
 
-  case 26: /* @2: %empty  */
+  case 27: /* @2: %empty  */
                                                        {
 	(yyval.dev) = new_device_raw(cur_parent, cur_chip_instance, (yyvsp[-3].number), (yyvsp[-2].string), (yyvsp[-1].string), (yyvsp[0].number));
 	cur_parent = (yyval.dev)->last_bus;
 }
     break;
 
-  case 27: /* device: DEVICE BUS NUMBER alias status @2 devicechildren END  */
+  case 28: /* device: DEVICE BUS NUMBER alias status @2 devicechildren END  */
                            {
 	cur_parent = (yyvsp[-2].dev)->parent;
 }
     break;
 
-  case 28: /* @3: %empty  */
+  case 29: /* @3: %empty  */
                                        {
 	(yyval.dev) = new_device_reference(cur_parent, cur_chip_instance, (yyvsp[-1].string), (yyvsp[0].number));
 	cur_parent = (yyval.dev)->last_bus;
 }
     break;
 
-  case 29: /* device: DEVICE REFERENCE STRING status @3 devicechildren END  */
+  case 30: /* device: DEVICE REFERENCE STRING status @3 devicechildren END  */
                            {
 	cur_parent = (yyvsp[-2].dev)->parent;
 }
     break;
 
-  case 30: /* alias: %empty  */
+  case 31: /* alias: %empty  */
                    {
 	(yyval.string) = NULL;
 }
     break;
 
-  case 31: /* alias: ALIAS STRING  */
+  case 32: /* alias: ALIAS STRING  */
                  {
 	(yyval.string) = (yyvsp[0].string);
 }
     break;
 
-  case 34: /* resource: RESOURCE NUMBER EQUALS NUMBER  */
+  case 35: /* resource: RESOURCE NUMBER EQUALS NUMBER  */
         { add_resource(cur_parent, (yyvsp[-3].number), strtol((yyvsp[-2].string), NULL, 0), strtol((yyvsp[0].string), NULL, 0)); }
     break;
 
-  case 35: /* reference: REFERENCE STRING ASSOCIATION STRING  */
+  case 36: /* reference: REFERENCE STRING ASSOCIATION STRING  */
         { add_reference(cur_chip_instance, (yyvsp[0].string), (yyvsp[-2].string)); }
     break;
 
-  case 36: /* registers: REGISTER STRING EQUALS STRING  */
+  case 37: /* registers: REGISTER STRING EQUALS STRING  */
         { add_register(cur_chip_instance, (yyvsp[-2].string), (yyvsp[0].string)); }
     break;
 
-  case 37: /* subsystemid: SUBSYSTEMID NUMBER NUMBER  */
+  case 38: /* subsystemid: SUBSYSTEMID NUMBER NUMBER  */
         { add_pci_subsystem_ids(cur_parent, strtol((yyvsp[-1].string), NULL, 16), strtol((yyvsp[0].string), NULL, 16), 0); }
     break;
 
-  case 38: /* subsystemid: SUBSYSTEMID NUMBER NUMBER INHERIT  */
+  case 39: /* subsystemid: SUBSYSTEMID NUMBER NUMBER INHERIT  */
         { add_pci_subsystem_ids(cur_parent, strtol((yyvsp[-2].string), NULL, 16), strtol((yyvsp[-1].string), NULL, 16), 1); }
     break;
 
-  case 39: /* ioapic_irq: IOAPIC_IRQ NUMBER PCIINT NUMBER  */
+  case 40: /* ioapic_irq: IOAPIC_IRQ NUMBER PCIINT NUMBER  */
         { add_ioapic_info(cur_parent, strtol((yyvsp[-2].string), NULL, 16), (yyvsp[-1].string), strtol((yyvsp[0].string), NULL, 16)); }
     break;
 
-  case 40: /* smbios_slot_desc: SLOT_DESC STRING STRING STRING STRING  */
+  case 41: /* smbios_slot_desc: SLOT_DESC STRING STRING STRING STRING  */
         { add_slot_desc(cur_parent, (yyvsp[-3].string), (yyvsp[-2].string), (yyvsp[-1].string), (yyvsp[0].string)); }
     break;
 
-  case 41: /* smbios_slot_desc: SLOT_DESC STRING STRING STRING  */
+  case 42: /* smbios_slot_desc: SLOT_DESC STRING STRING STRING  */
         { add_slot_desc(cur_parent, (yyvsp[-2].string), (yyvsp[-1].string), (yyvsp[0].string), NULL); }
     break;
 
-  case 42: /* smbios_slot_desc: SLOT_DESC STRING STRING  */
+  case 43: /* smbios_slot_desc: SLOT_DESC STRING STRING  */
         { add_slot_desc(cur_parent, (yyvsp[-1].string), (yyvsp[0].string), NULL, NULL); }
     break;
 
-  case 43: /* smbios_dev_info: SMBIOS_DEV_INFO NUMBER STRING  */
+  case 44: /* smbios_dev_info: SMBIOS_DEV_INFO NUMBER STRING  */
         { add_smbios_dev_info(cur_parent, strtol((yyvsp[-1].string), NULL, 0), (yyvsp[0].string)); }
     break;
 
-  case 44: /* smbios_dev_info: SMBIOS_DEV_INFO NUMBER  */
+  case 45: /* smbios_dev_info: SMBIOS_DEV_INFO NUMBER  */
         { add_smbios_dev_info(cur_parent, strtol((yyvsp[0].string), NULL, 0), NULL); }
     break;
 
-  case 45: /* fw_config_table: FW_CONFIG_TABLE fw_config_table_children END  */
+  case 46: /* fw_config_table: FW_CONFIG_TABLE fw_config_table_children END  */
                                                               { }
     break;
 
-  case 50: /* fw_config_field_bits: NUMBER NUMBER  */
+  case 51: /* fw_config_field_bits: NUMBER NUMBER  */
 {
 	append_fw_config_bits(&cur_bits, strtoul((yyvsp[-1].string), NULL, 0), strtoul((yyvsp[0].string), NULL, 0));
 }
     break;
 
-  case 53: /* $@4: %empty  */
+  case 54: /* $@4: %empty  */
         { cur_field = new_fw_config_field((yyvsp[-2].string), cur_bits); }
     break;
 
-  case 54: /* fw_config_field: FW_CONFIG_FIELD STRING fw_config_field_bits fw_config_field_bits_repeating $@4 fw_config_field_children END  */
+  case 55: /* fw_config_field: FW_CONFIG_FIELD STRING fw_config_field_bits fw_config_field_bits_repeating $@4 fw_config_field_children END  */
                                      { cur_bits = NULL; }
     break;
 
-  case 55: /* $@5: %empty  */
+  case 56: /* $@5: %empty  */
                                                             {
 	cur_bits = NULL;
 	append_fw_config_bits(&cur_bits, strtoul((yyvsp[0].string), NULL, 0), strtoul((yyvsp[0].string), NULL, 0));
@@ -1346,28 +1350,32 @@
 }
     break;
 
-  case 56: /* fw_config_field: FW_CONFIG_FIELD STRING NUMBER $@5 fw_config_field_children END  */
+  case 57: /* fw_config_field: FW_CONFIG_FIELD STRING NUMBER $@5 fw_config_field_children END  */
                                      { cur_bits = NULL; }
     break;
 
-  case 57: /* $@6: %empty  */
+  case 58: /* $@6: %empty  */
                                         {
 	cur_field = get_fw_config_field((yyvsp[0].string));
 }
     break;
 
-  case 58: /* fw_config_field: FW_CONFIG_FIELD STRING $@6 fw_config_field_children END  */
+  case 59: /* fw_config_field: FW_CONFIG_FIELD STRING $@6 fw_config_field_children END  */
                                      { cur_bits = NULL; }
     break;
 
-  case 59: /* fw_config_option: FW_CONFIG_OPTION STRING NUMBER  */
+  case 60: /* fw_config_option: FW_CONFIG_OPTION STRING NUMBER  */
         { add_fw_config_option(cur_field, (yyvsp[-1].string), strtoull((yyvsp[0].string), NULL, 0)); }
     break;
 
-  case 60: /* fw_config_probe: FW_CONFIG_PROBE STRING STRING  */
+  case 61: /* fw_config_probe: FW_CONFIG_PROBE STRING STRING  */
         { add_fw_config_probe(cur_parent, (yyvsp[-1].string), (yyvsp[0].string)); }
     break;
 
+  case 62: /* ops: OPS STRING  */
+        { add_device_ops(cur_parent, (yyvsp[0].string)); }
+    break;
+
 
 
       default: break;
