diff --git a/util/sconfig/sconfig.tab.c_shipped b/util/sconfig/sconfig.tab.c_shipped
index a8d1e1d..68421a1 100644
--- a/util/sconfig/sconfig.tab.c_shipped
+++ b/util/sconfig/sconfig.tab.c_shipped
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.7.2.  */
+/* A Bison parser, made by GNU Bison 3.7.5.  */
 
 /* Bison implementation for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -45,11 +45,11 @@
    define necessary library symbols; they are noted "INFRINGES ON
    USER NAME SPACE" below.  */
 
-/* Identify Bison output.  */
-#define YYBISON 1
+/* Identify Bison output, and Bison version.  */
+#define YYBISON 30705
 
-/* Bison version.  */
-#define YYBISON_VERSION "3.7.2"
+/* Bison version string.  */
+#define YYBISON_VERSION "3.7.5"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -80,6 +80,7 @@
 static struct bus *cur_parent;
 static struct chip_instance *cur_chip_instance;
 static struct fw_config_field *cur_field;
+static struct fw_config_field_bits *cur_bits;
 
 
 
@@ -155,32 +156,35 @@
   YYSYMBOL_FW_CONFIG_FIELD = 43,           /* FW_CONFIG_FIELD  */
   YYSYMBOL_FW_CONFIG_OPTION = 44,          /* FW_CONFIG_OPTION  */
   YYSYMBOL_FW_CONFIG_PROBE = 45,           /* FW_CONFIG_PROBE  */
-  YYSYMBOL_YYACCEPT = 46,                  /* $accept  */
-  YYSYMBOL_devtree = 47,                   /* devtree  */
-  YYSYMBOL_chipchildren = 48,              /* chipchildren  */
-  YYSYMBOL_devicechildren = 49,            /* devicechildren  */
-  YYSYMBOL_chip = 50,                      /* chip  */
-  YYSYMBOL_51_1 = 51,                      /* @1  */
-  YYSYMBOL_device = 52,                    /* device  */
-  YYSYMBOL_53_2 = 53,                      /* @2  */
-  YYSYMBOL_54_3 = 54,                      /* @3  */
-  YYSYMBOL_alias = 55,                     /* alias  */
-  YYSYMBOL_status = 56,                    /* status  */
-  YYSYMBOL_resource = 57,                  /* resource  */
-  YYSYMBOL_reference = 58,                 /* reference  */
-  YYSYMBOL_registers = 59,                 /* registers  */
-  YYSYMBOL_subsystemid = 60,               /* subsystemid  */
-  YYSYMBOL_ioapic_irq = 61,                /* ioapic_irq  */
-  YYSYMBOL_smbios_slot_desc = 62,          /* smbios_slot_desc  */
-  YYSYMBOL_fw_config_table = 63,           /* fw_config_table  */
-  YYSYMBOL_fw_config_table_children = 64,  /* fw_config_table_children  */
-  YYSYMBOL_fw_config_field_children = 65,  /* fw_config_field_children  */
-  YYSYMBOL_fw_config_field = 66,           /* fw_config_field  */
-  YYSYMBOL_67_4 = 67,                      /* $@4  */
-  YYSYMBOL_68_5 = 68,                      /* $@5  */
-  YYSYMBOL_69_6 = 69,                      /* $@6  */
-  YYSYMBOL_fw_config_option = 70,          /* fw_config_option  */
-  YYSYMBOL_fw_config_probe = 71            /* fw_config_probe  */
+  YYSYMBOL_PIPE = 46,                      /* PIPE  */
+  YYSYMBOL_YYACCEPT = 47,                  /* $accept  */
+  YYSYMBOL_devtree = 48,                   /* devtree  */
+  YYSYMBOL_chipchildren = 49,              /* chipchildren  */
+  YYSYMBOL_devicechildren = 50,            /* devicechildren  */
+  YYSYMBOL_chip = 51,                      /* chip  */
+  YYSYMBOL_52_1 = 52,                      /* @1  */
+  YYSYMBOL_device = 53,                    /* device  */
+  YYSYMBOL_54_2 = 54,                      /* @2  */
+  YYSYMBOL_55_3 = 55,                      /* @3  */
+  YYSYMBOL_alias = 56,                     /* alias  */
+  YYSYMBOL_status = 57,                    /* status  */
+  YYSYMBOL_resource = 58,                  /* resource  */
+  YYSYMBOL_reference = 59,                 /* reference  */
+  YYSYMBOL_registers = 60,                 /* registers  */
+  YYSYMBOL_subsystemid = 61,               /* subsystemid  */
+  YYSYMBOL_ioapic_irq = 62,                /* ioapic_irq  */
+  YYSYMBOL_smbios_slot_desc = 63,          /* smbios_slot_desc  */
+  YYSYMBOL_fw_config_table = 64,           /* fw_config_table  */
+  YYSYMBOL_fw_config_table_children = 65,  /* fw_config_table_children  */
+  YYSYMBOL_fw_config_field_children = 66,  /* fw_config_field_children  */
+  YYSYMBOL_fw_config_field_bits = 67,      /* fw_config_field_bits  */
+  YYSYMBOL_fw_config_field_bits_repeating = 68, /* fw_config_field_bits_repeating  */
+  YYSYMBOL_fw_config_field = 69,           /* fw_config_field  */
+  YYSYMBOL_70_4 = 70,                      /* $@4  */
+  YYSYMBOL_71_5 = 71,                      /* $@5  */
+  YYSYMBOL_72_6 = 72,                      /* $@6  */
+  YYSYMBOL_fw_config_option = 73,          /* fw_config_option  */
+  YYSYMBOL_fw_config_probe = 74            /* fw_config_probe  */
 };
 typedef enum yysymbol_kind_t yysymbol_kind_t;
 
@@ -224,6 +228,18 @@
 typedef short yytype_int16;
 #endif
 
+/* Work around bug in HP-UX 11.23, which defines these macros
+   incorrectly for preprocessor constants.  This workaround can likely
+   be removed in 2023, as HPE has promised support for HP-UX 11.23
+   (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
+   <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
+#ifdef __hpux
+# undef UINT_LEAST8_MAX
+# undef UINT_LEAST16_MAX
+# define UINT_LEAST8_MAX 255
+# define UINT_LEAST16_MAX 65535
+#endif
+
 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
@@ -321,9 +337,9 @@
 
 /* Suppress unused-variable warnings by "using" E.  */
 #if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
+# define YY_USE(E) ((void) (E))
 #else
-# define YYUSE(E) /* empty */
+# define YY_USE(E) /* empty */
 #endif
 
 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
@@ -490,19 +506,19 @@
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  2
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   79
+#define YYLAST   83
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  46
+#define YYNTOKENS  47
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  26
+#define YYNNTS  28
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  50
+#define YYNRULES  53
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  89
+#define YYNSTATES  95
 
 /* YYMAXUTOK -- Last valid token kind.  */
-#define YYMAXUTOK   300
+#define YYMAXUTOK   301
 
 
 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
@@ -546,19 +562,19 @@
       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
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
-static const yytype_int8 yyrline[] =
+static const yytype_uint8 yyrline[] =
 {
-       0,    25,    25,    25,    25,    27,    27,    27,    27,    27,
-      29,    29,    29,    29,    29,    29,    29,    29,    29,    31,
-      31,    40,    40,    48,    48,    56,    58,    62,    62,    64,
-      67,    70,    73,    76,    79,    82,    85,    88,    92,    95,
-      95,    98,    98,   101,   101,   107,   107,   113,   113,   119,
-     123
+       0,    26,    26,    26,    26,    28,    28,    28,    28,    28,
+      30,    30,    30,    30,    30,    30,    30,    30,    30,    32,
+      32,    41,    41,    49,    49,    57,    59,    63,    63,    65,
+      68,    71,    74,    77,    80,    83,    86,    89,    93,    96,
+      96,    99,    99,   102,   108,   108,   111,   110,   115,   115,
+     123,   123,   129,   133
 };
 #endif
 
@@ -581,11 +597,12 @@
   "SLOT_DESC", "IO", "NUMBER", "SUBSYSTEMID", "INHERIT", "IOAPIC_IRQ",
   "IOAPIC", "PCIINT", "GENERIC", "SPI", "USB", "MMIO", "LPC", "ESPI",
   "GPIO", "FW_CONFIG_TABLE", "FW_CONFIG_FIELD", "FW_CONFIG_OPTION",
-  "FW_CONFIG_PROBE", "$accept", "devtree", "chipchildren",
+  "FW_CONFIG_PROBE", "PIPE", "$accept", "devtree", "chipchildren",
   "devicechildren", "chip", "@1", "device", "@2", "@3", "alias", "status",
   "resource", "reference", "registers", "subsystemid", "ioapic_irq",
   "smbios_slot_desc", "fw_config_table", "fw_config_table_children",
-  "fw_config_field_children", "fw_config_field", "$@4", "$@5", "$@6",
+  "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
 };
 
@@ -605,11 +622,11 @@
      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
-     295,   296,   297,   298,   299,   300
+     295,   296,   297,   298,   299,   300,   301
 };
 #endif
 
-#define YYPACT_NINF (-15)
+#define YYPACT_NINF (-21)
 
 #define yypact_value_is_default(Yyn) \
   ((Yyn) == YYPACT_NINF)
@@ -623,15 +640,16 @@
      STATE-NUM.  */
 static const yytype_int8 yypact[] =
 {
-     -15,     9,   -15,     0,   -15,   -15,   -15,   -15,   -11,   -15,
-     -15,     2,   -15,    45,    -8,    13,     6,    19,   -15,   -15,
-     -15,   -15,   -15,    10,   -15,    23,    12,    11,    36,   -15,
-     -15,    -7,    25,    39,    30,    37,   -15,    -6,   -15,    38,
-     -15,   -15,   -15,   -15,    40,    25,   -15,   -15,    -1,   -15,
-      24,   -15,   -15,   -15,   -15,   -15,    -3,   -15,    27,   -15,
-      41,    31,    32,    46,   -15,   -15,   -15,   -15,   -15,   -15,
-     -15,   -15,     1,    47,    48,    35,    33,    49,   -15,    42,
-      51,    43,    44,   -15,   -15,    52,   -15,   -15,   -15
+     -21,     9,   -21,     2,   -21,   -21,   -21,   -21,   -11,   -21,
+     -21,     8,   -21,    45,   -13,    10,    18,    19,   -21,   -21,
+     -21,   -21,   -21,    12,   -20,   -21,    22,    15,    25,    37,
+     -21,   -21,    24,   -21,    -7,    11,    41,    38,    39,    -6,
+      12,   -20,   -21,   -21,    40,   -21,   -21,   -21,   -21,    43,
+      11,   -21,   -21,   -21,   -21,    -1,    29,   -21,   -21,   -21,
+     -21,   -21,    -3,   -21,    32,   -21,    46,    33,    35,    48,
+     -21,   -21,   -21,   -21,   -21,   -21,   -21,   -21,     1,    51,
+      50,    42,    20,    52,   -21,    44,    53,    47,    54,   -21,
+     -21,    55,   -21,   -21,   -21
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -640,30 +658,31 @@
 static const yytype_int8 yydefact[] =
 {
        2,     0,     1,     0,    40,     3,     4,    19,     0,     9,
-      38,     0,    39,     0,    47,     0,     0,     0,    20,     6,
-       5,     8,     7,    45,    42,     0,     0,     0,     0,    43,
-      42,     0,     0,    25,     0,     0,    42,     0,    48,     0,
-      41,    27,    28,    23,     0,     0,    31,    30,     0,    46,
-       0,    18,    26,    21,    44,    49,     0,    18,     0,    24,
-       0,     0,     0,     0,    11,    10,    12,    16,    13,    14,
-      15,    17,     0,     0,     0,     0,     0,     0,    22,     0,
-      37,    32,     0,    50,    29,    36,    33,    34,    35
+      38,     0,    39,     0,    50,     0,     0,     0,    20,     6,
+       5,     8,     7,    48,    45,    42,     0,     0,     0,     0,
+      43,    42,     0,    46,     0,     0,    25,     0,     0,     0,
+       0,    45,    42,    51,     0,    41,    27,    28,    23,     0,
+       0,    31,    30,    49,    44,     0,     0,    18,    26,    21,
+      47,    52,     0,    18,     0,    24,     0,     0,     0,     0,
+      11,    10,    12,    16,    13,    14,    15,    17,     0,     0,
+       0,     0,     0,     0,    22,     0,    37,    32,     0,    53,
+      29,    36,    33,    34,    35
 };
 
   /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int8 yypgoto[] =
 {
-     -15,   -15,   -15,    15,    17,   -15,    57,   -15,   -15,   -15,
-      34,   -15,   -15,    62,   -15,   -15,   -15,   -15,   -15,   -14,
-     -15,   -15,   -15,   -15,   -15,   -15
+     -21,   -21,   -21,     5,    17,   -21,    61,   -21,   -21,   -21,
+      26,   -21,   -21,    62,   -21,   -21,   -21,   -21,   -21,    -8,
+      49,    36,   -21,   -21,   -21,   -21,   -21,   -21
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int8 yydefgoto[] =
 {
-      -1,     1,    13,    56,    64,     9,    65,    57,    51,    45,
-      43,    66,    21,    67,    68,    69,    70,     6,     8,    31,
-      12,    36,    30,    24,    40,    71
+       0,     1,    13,    62,    70,     9,    71,    63,    57,    50,
+      48,    72,    21,    73,    74,    75,    76,     6,     8,    34,
+      24,    33,    12,    42,    31,    25,    45,    77
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -671,52 +690,55 @@
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int8 yytable[] =
 {
-       3,    15,    16,    10,     3,    15,    16,    38,    49,     2,
-      58,    59,     3,    54,    58,    78,    37,     7,     5,    14,
-      25,    23,    48,    27,    60,    26,    34,    61,    60,    62,
-      19,    61,    11,    62,    41,    42,    28,    39,    39,    29,
-      32,    33,    63,    39,    35,    44,    63,    46,     3,    15,
-      16,     4,    17,    55,    47,    50,    73,    52,    74,    18,
-      75,    76,    79,    77,    81,    80,    83,    82,    85,    88,
-      20,    84,    72,    87,    86,    22,     0,     0,     0,    53
+       3,    15,    16,    10,     3,    15,    16,    43,    53,     2,
+      64,    65,     3,    60,    64,    84,    23,    26,     5,     7,
+      46,    47,    27,    39,    66,    14,    32,    67,    66,    68,
+      19,    67,    11,    68,    55,    28,    29,    44,    44,    35,
+      37,    30,    69,    44,    36,    38,    69,    49,     3,    15,
+      16,     4,    17,    40,    88,    51,    52,    56,    61,    18,
+      58,    79,    81,    80,    82,    83,    85,    86,    78,    89,
+      91,    87,    94,    90,    20,    22,    59,    54,    92,     0,
+       0,    41,     0,    93
 };
 
 static const yytype_int8 yycheck[] =
 {
        3,     4,     5,    14,     3,     4,     5,    14,    14,     0,
-      13,    14,     3,    14,    13,    14,    30,    17,     1,    17,
-       7,    29,    36,    17,    27,    12,    15,    30,    27,    32,
-      13,    30,    43,    32,     9,    10,    17,    44,    44,    29,
-      17,    29,    45,    44,     8,     6,    45,    17,     3,     4,
-       5,    42,     7,    29,    17,    17,    29,    17,    17,    14,
-      29,    29,    15,    17,    29,    17,    17,    34,    17,    17,
-      13,    29,    57,    29,    31,    13,    -1,    -1,    -1,    45
+      13,    14,     3,    14,    13,    14,    29,     7,     1,    17,
+       9,    10,    12,    31,    27,    17,    46,    30,    27,    32,
+      13,    30,    43,    32,    42,    17,    17,    44,    44,    17,
+      15,    29,    45,    44,    29,     8,    45,     6,     3,     4,
+       5,    42,     7,    29,    34,    17,    17,    17,    29,    14,
+      17,    29,    29,    17,    29,    17,    15,    17,    63,    17,
+      17,    29,    17,    29,    13,    13,    50,    41,    31,    -1,
+      -1,    32,    -1,    29
 };
 
   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
      symbol of state STATE-NUM.  */
 static const yytype_int8 yystos[] =
 {
-       0,    47,     0,     3,    42,    50,    63,    17,    64,    51,
-      14,    43,    66,    48,    17,     4,     5,     7,    14,    50,
-      52,    58,    59,    29,    69,     7,    12,    17,    17,    29,
-      68,    65,    17,    29,    15,     8,    67,    65,    14,    44,
-      70,     9,    10,    56,     6,    55,    17,    17,    65,    14,
-      17,    54,    17,    56,    14,    29,    49,    53,    13,    14,
-      27,    30,    32,    45,    50,    52,    57,    59,    60,    61,
-      62,    71,    49,    29,    17,    29,    29,    17,    14,    15,
-      17,    29,    34,    17,    29,    17,    31,    29,    17
+       0,    48,     0,     3,    42,    51,    64,    17,    65,    52,
+      14,    43,    69,    49,    17,     4,     5,     7,    14,    51,
+      53,    59,    60,    29,    67,    72,     7,    12,    17,    17,
+      29,    71,    46,    68,    66,    17,    29,    15,     8,    66,
+      29,    67,    70,    14,    44,    73,     9,    10,    57,     6,
+      56,    17,    17,    14,    68,    66,    17,    55,    17,    57,
+      14,    29,    50,    54,    13,    14,    27,    30,    32,    45,
+      51,    53,    58,    60,    61,    62,    63,    74,    50,    29,
+      17,    29,    29,    17,    14,    15,    17,    29,    34,    17,
+      29,    17,    31,    29,    17
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_int8 yyr1[] =
 {
-       0,    46,    47,    47,    47,    48,    48,    48,    48,    48,
-      49,    49,    49,    49,    49,    49,    49,    49,    49,    51,
-      50,    53,    52,    54,    52,    55,    55,    56,    56,    57,
-      58,    59,    60,    60,    61,    62,    62,    62,    63,    64,
-      64,    65,    65,    67,    66,    68,    66,    69,    66,    70,
-      71
+       0,    47,    48,    48,    48,    49,    49,    49,    49,    49,
+      50,    50,    50,    50,    50,    50,    50,    50,    50,    52,
+      51,    54,    53,    55,    53,    56,    56,    57,    57,    58,
+      59,    60,    61,    61,    62,    63,    63,    63,    64,    65,
+      65,    66,    66,    67,    68,    68,    70,    69,    71,    69,
+      72,    69,    73,    74
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
@@ -726,8 +748,8 @@
        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,
-       0,     2,     0,     0,     7,     0,     6,     0,     5,     3,
-       3
+       0,     2,     0,     2,     3,     0,     0,     7,     0,     6,
+       0,     5,     3,     3
 };
 
 
@@ -806,7 +828,7 @@
                        yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
 {
   FILE *yyoutput = yyo;
-  YYUSE (yyoutput);
+  YY_USE (yyoutput);
   if (!yyvaluep)
     return;
 # ifdef YYPRINT
@@ -814,7 +836,7 @@
     YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
 # endif
   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  YYUSE (yykind);
+  YY_USE (yykind);
   YY_IGNORE_MAYBE_UNINITIALIZED_END
 }
 
@@ -928,13 +950,13 @@
 yydestruct (const char *yymsg,
             yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
 {
-  YYUSE (yyvaluep);
+  YY_USE (yyvaluep);
   if (!yymsg)
     yymsg = "Deleting";
   YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
 
   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  YYUSE (yykind);
+  YY_USE (yykind);
   YY_IGNORE_MAYBE_UNINITIALIZED_END
 }
 
@@ -1290,41 +1312,47 @@
                                                               { }
     break;
 
-  case 43: /* $@4: %empty  */
-                                                                                          {
-	cur_field = new_fw_config_field((yyvsp[-2].string), strtoul((yyvsp[-1].string), NULL, 0), strtoul((yyvsp[0].string), NULL, 0));
+  case 43: /* 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 44: /* fw_config_field: FW_CONFIG_FIELD STRING NUMBER NUMBER $@4 fw_config_field_children END  */
-                                     { }
+  case 46: /* $@4: %empty  */
+        { cur_field = new_fw_config_field((yyvsp[-2].string), cur_bits); }
     break;
 
-  case 45: /* $@5: %empty  */
+  case 47: /* 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 48: /* $@5: %empty  */
                                                             {
-	cur_field = new_fw_config_field((yyvsp[-1].string), strtoul((yyvsp[0].string), NULL, 0), strtoul((yyvsp[0].string), NULL, 0));
+	cur_bits = NULL;
+	append_fw_config_bits(&cur_bits, strtoul((yyvsp[0].string), NULL, 0), strtoul((yyvsp[0].string), NULL, 0));
+	cur_field = new_fw_config_field((yyvsp[-1].string), cur_bits);
 }
     break;
 
-  case 46: /* fw_config_field: FW_CONFIG_FIELD STRING NUMBER $@5 fw_config_field_children END  */
-                                     { }
+  case 49: /* fw_config_field: FW_CONFIG_FIELD STRING NUMBER $@5 fw_config_field_children END  */
+                                     { cur_bits = NULL; }
     break;
 
-  case 47: /* $@6: %empty  */
+  case 50: /* $@6: %empty  */
                                         {
 	cur_field = get_fw_config_field((yyvsp[0].string));
 }
     break;
 
-  case 48: /* fw_config_field: FW_CONFIG_FIELD STRING $@6 fw_config_field_children END  */
-                                     { }
+  case 51: /* fw_config_field: FW_CONFIG_FIELD STRING $@6 fw_config_field_children END  */
+                                     { cur_bits = NULL; }
     break;
 
-  case 49: /* fw_config_option: FW_CONFIG_OPTION STRING NUMBER  */
+  case 52: /* 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 50: /* fw_config_probe: FW_CONFIG_PROBE STRING STRING  */
+  case 53: /* fw_config_probe: FW_CONFIG_PROBE STRING STRING  */
         { add_fw_config_probe(cur_parent, (yyvsp[-1].string), (yyvsp[0].string)); }
     break;
 
