util/sconfig: Remove unused ioapic and irq keywords

Ioapic information in the devicetree was only used to set up mptables
but this generic driver was removed (ca5a793 drivers/generic/ioapic:
Drop poor implementation).

This removes the unused remainders from mainboard devicetrees.
Remove ioapic setup from sconfig.

Change-Id: Ib3fef0bf923ab3f02f3aeed2e55cf662a3dc3a1b
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/71789
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
This commit is contained in:
Arthur Heymans 2023-01-10 15:22:58 +01:00 committed by Felix Held
parent 8b8400a889
commit e84b095d3a
12 changed files with 367 additions and 513 deletions

View File

@ -101,13 +101,6 @@ struct bus {
* combination: * combination:
*/ */
struct pci_irq_info {
unsigned int ioapic_irq_pin;
unsigned int ioapic_src_pin;
unsigned int ioapic_dst_id;
unsigned int ioapic_flags;
};
struct device { struct device {
DEVTREE_CONST struct bus *bus; /* bus this device is on, for bridge DEVTREE_CONST struct bus *bus; /* bus this device is on, for bridge
* devices, it is the up stream bus */ * devices, it is the up stream bus */
@ -144,7 +137,6 @@ struct device {
DEVTREE_CONST struct bus *link_list; DEVTREE_CONST struct bus *link_list;
#if !DEVTREE_EARLY #if !DEVTREE_EARLY
struct pci_irq_info pci_irq_info[4];
struct device_operations *ops; struct device_operations *ops;
struct chip_operations *chip_ops; struct chip_operations *chip_ops;
const char *name; const char *name;

View File

@ -11,11 +11,9 @@ chip northbridge/intel/i945
end end
device pci 01.0 on # i945 PCIe root port device pci 01.0 on # i945 PCIe root port
subsystemid 0x1458 0x5000 subsystemid 0x1458 0x5000
ioapic_irq 2 INTA 0x10
end end
device pci 02.0 on # vga controller device pci 02.0 on # vga controller
subsystemid 0x1458 0xd000 subsystemid 0x1458 0xd000
ioapic_irq 2 INTA 0x10
end end
chip southbridge/intel/i82801gx chip southbridge/intel/i82801gx
@ -38,34 +36,21 @@ chip northbridge/intel/i945
# SuperIO Power Management Events # SuperIO Power Management Events
register "gen1_dec" = "0x00040291" register "gen1_dec" = "0x00040291"
device pci 1b.0 on # High Definition Audio device pci 1b.0 on end # High Definition Audio
ioapic_irq 2 INTA 0x10
end
device pci 1c.0 on end # PCIe device pci 1c.0 on end # PCIe
device pci 1c.1 on end # PCIe device pci 1c.1 on end # PCIe
device pci 1c.2 off end # PCIe port 3 device pci 1c.2 off end # PCIe port 3
device pci 1c.3 off end # PCIe port 4 device pci 1c.3 off end # PCIe port 4
device pci 1d.0 on # USB UHCI device pci 1d.0 on end # USB UHCI
ioapic_irq 2 INTA 0x10 device pci 1d.1 on end # USB UHCI
end device pci 1d.2 on end # USB UHCI
device pci 1d.1 on # USB UHCI device pci 1d.3 on end # USB UHCI
ioapic_irq 2 INTB 0x11 device pci 1d.7 on end # USB2 EHCI
end
device pci 1d.2 on # USB UHCI
ioapic_irq 2 INTC 0x12
end
device pci 1d.3 on # USB UHCI
ioapic_irq 2 INTD 0x13
end
device pci 1d.7 on # USB2 EHCI
ioapic_irq 2 INTA 0x10
end
device pci 1e.0 on end # PCI bridge device pci 1e.0 on end # PCI bridge
device pci 1e.2 off end # AC'97 Audio device pci 1e.2 off end # AC'97 Audio
device pci 1e.3 off end # AC'97 Modem device pci 1e.3 off end # AC'97 Modem
device pci 1f.0 on # LPC bridge device pci 1f.0 on # LPC bridge
ioapic_irq 2 INTA 0x10
chip superio/winbond/w83627dhg chip superio/winbond/w83627dhg
device pnp 2e.0 on # Floppy device pnp 2e.0 on # Floppy
io 0x60 = 0x3f0 io 0x60 = 0x3f0
@ -116,15 +101,9 @@ chip northbridge/intel/i945
device pnp 2e.c on end # PECI, SST device pnp 2e.c on end # PECI, SST
end end
end end
device pci 1f.1 on # IDE device pci 1f.1 on end # IDE
ioapic_irq 2 INTB 0x11 device pci 1f.2 on end # SATA
end device pci 1f.3 on end # SMBus
device pci 1f.2 on # SATA
ioapic_irq 2 INTC 0x12
end
device pci 1f.3 on # SMBus
ioapic_irq 2 INTD 0x13
end
end end
end end
end end

View File

@ -14,11 +14,9 @@ chip northbridge/intel/i945
end end
device pci 01.0 on # i945 PCIe root port device pci 01.0 on # i945 PCIe root port
subsystemid 0x1458 0x5000 subsystemid 0x1458 0x5000
ioapic_irq 2 INTA 0x10
end end
device pci 02.0 on # vga controller device pci 02.0 on # vga controller
subsystemid 0x1458 0xd000 subsystemid 0x1458 0xd000
ioapic_irq 2 INTA 0x10
end end
chip southbridge/intel/i82801gx chip southbridge/intel/i82801gx
@ -63,36 +61,23 @@ chip northbridge/intel/i945
register "gen1_dec" = "0x000c0801" # ??? register "gen1_dec" = "0x000c0801" # ???
register "gen2_dec" = "0x00040291" # Environment Controller register "gen2_dec" = "0x00040291" # Environment Controller
device pci 1b.0 on # High Definition Audio device pci 1b.0 on end # High Definition Audio
ioapic_irq 2 INTA 0x10
end
device pci 1c.0 on end # PCIe device pci 1c.0 on end # PCIe
device pci 1c.1 on end # PCIe device pci 1c.1 on end # PCIe
device pci 1c.2 off end # PCIe port 3 device pci 1c.2 off end # PCIe port 3
device pci 1c.3 off end # PCIe port 4 device pci 1c.3 off end # PCIe port 4
device pci 1c.4 off end # PCIe port 5 device pci 1c.4 off end # PCIe port 5
device pci 1c.5 off end # PCIe port 6 device pci 1c.5 off end # PCIe port 6
device pci 1d.0 on # USB UHCI device pci 1d.0 on end # USB UHCI
ioapic_irq 2 INTA 0x10 device pci 1d.1 on end # USB UHCI
end device pci 1d.2 on end # USB UHCI
device pci 1d.1 on # USB UHCI device pci 1d.3 on end # USB UHCI
ioapic_irq 2 INTB 0x11 device pci 1d.7 on end # USB2 EHCI
end
device pci 1d.2 on # USB UHCI
ioapic_irq 2 INTC 0x12
end
device pci 1d.3 on # USB UHCI
ioapic_irq 2 INTD 0x13
end
device pci 1d.7 on # USB2 EHCI
ioapic_irq 2 INTA 0x10
end
device pci 1e.0 on end # PCI bridge device pci 1e.0 on end # PCI bridge
device pci 1e.2 off end # AC'97 Audio device pci 1e.2 off end # AC'97 Audio
device pci 1e.3 off end # AC'97 Modem device pci 1e.3 off end # AC'97 Modem
device pci 1f.0 on # LPC bridge device pci 1f.0 on # LPC bridge
ioapic_irq 2 INTA 0x10
chip superio/ite/it8718f # Super I/O chip superio/ite/it8718f # Super I/O
register "TMPIN1.mode" = "THERMAL_RESISTOR" register "TMPIN1.mode" = "THERMAL_RESISTOR"
register "TMPIN2.mode" = "THERMAL_RESISTOR" register "TMPIN2.mode" = "THERMAL_RESISTOR"
@ -158,15 +143,9 @@ chip northbridge/intel/i945
end end
end end
end end
device pci 1f.1 on # IDE device pci 1f.1 on end # IDE
ioapic_irq 2 INTB 0x11 device pci 1f.2 on end # SATA
end device pci 1f.3 on end # SMBus
device pci 1f.2 on # SATA
ioapic_irq 2 INTC 0x12
end
device pci 1f.3 on # SMBus
ioapic_irq 2 INTD 0x13
end
end end
end end
end end

View File

@ -32,7 +32,6 @@ chip northbridge/intel/gm45
end end
device pci 1f.3 on # SMBus device pci 1f.3 on # SMBus
subsystemid 0x17aa 0x20f9 subsystemid 0x17aa 0x20f9
ioapic_irq 2 INTC 0x12
# eeprom, 4 virtual devices, same chip # eeprom, 4 virtual devices, same chip
chip drivers/i2c/at24rf08c chip drivers/i2c/at24rf08c
device i2c 54 on end device i2c 54 on end

View File

@ -25,7 +25,6 @@ chip northbridge/intel/gm45
end end
device pci 1f.3 on # SMBus device pci 1f.3 on # SMBus
subsystemid 0x17aa 0x20f9 subsystemid 0x17aa 0x20f9
ioapic_irq 2 INTC 0x12
# eeprom, 8 virtual devices, same chip # eeprom, 8 virtual devices, same chip
chip drivers/i2c/at24rf08c chip drivers/i2c/at24rf08c
device i2c 54 on end device i2c 54 on end

View File

@ -349,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 51 #define YY_NUM_RULES 48
#define YY_END_OF_BUFFER 52 #define YY_END_OF_BUFFER 49
/* 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
@ -358,31 +358,30 @@ 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[209] = static const flex_int16_t yy_accept[197] =
{ 0, { 0,
0, 0, 52, 50, 1, 3, 50, 50, 50, 45, 0, 0, 49, 47, 1, 3, 47, 47, 47, 43,
45, 42, 46, 50, 46, 46, 46, 46, 46, 50, 43, 40, 44, 44, 44, 44, 44, 44, 47, 47,
50, 50, 50, 50, 50, 50, 50, 50, 43, 50, 47, 47, 47, 47, 47, 47, 47, 41, 47, 1,
1, 3, 50, 0, 50, 50, 0, 2, 45, 46, 3, 47, 0, 47, 47, 0, 2, 43, 44, 47,
50, 50, 50, 10, 50, 50, 46, 50, 50, 50, 47, 10, 47, 47, 44, 47, 47, 47, 47, 47,
50, 50, 50, 50, 50, 50, 50, 35, 50, 50, 47, 47, 47, 47, 47, 34, 47, 47, 47, 47,
50, 50, 50, 16, 50, 50, 50, 50, 50, 50, 47, 16, 47, 47, 47, 47, 47, 47, 47, 47,
50, 50, 50, 49, 49, 50, 0, 44, 50, 50, 47, 46, 46, 47, 0, 42, 47, 47, 24, 47,
50, 25, 50, 50, 34, 39, 50, 50, 50, 50, 47, 33, 37, 47, 47, 47, 47, 47, 22, 47,
50, 23, 50, 50, 33, 50, 50, 50, 17, 7, 32, 47, 47, 47, 17, 7, 47, 20, 21, 47,
50, 20, 22, 50, 9, 50, 50, 29, 50, 30, 9, 47, 47, 28, 47, 29, 8, 47, 0, 47,
8, 50, 0, 47, 50, 4, 50, 50, 50, 50, 4, 47, 47, 47, 47, 47, 47, 30, 47, 47,
50, 50, 31, 50, 50, 50, 50, 32, 28, 50, 47, 31, 27, 47, 47, 47, 47, 47, 45, 45,
50, 50, 50, 50, 48, 48, 6, 50, 50, 50, 6, 47, 47, 47, 13, 47, 47, 47, 47, 47,
13, 50, 50, 50, 50, 50, 50, 50, 15, 50, 47, 15, 47, 47, 47, 47, 5, 25, 47, 47,
50, 50, 50, 5, 26, 50, 50, 18, 50, 21, 18, 47, 47, 14, 47, 47, 47, 47, 47, 26,
50, 14, 50, 50, 50, 50, 50, 27, 37, 50, 35, 47, 47, 47, 47, 47, 47, 47, 11, 47,
50, 50, 50, 50, 50, 50, 50, 50, 11, 50, 47, 47, 47, 12, 19, 47, 47, 47, 47, 47,
50, 50, 50, 12, 50, 19, 50, 50, 50, 50, 47, 47, 23, 47, 47, 36, 47, 47, 47, 47,
36, 50, 50, 50, 24, 50, 50, 38, 50, 50, 47, 47, 39, 47, 38, 0
50, 50, 50, 50, 41, 50, 40, 0
} ; } ;
static const YY_CHAR yy_ec[256] = static const YY_CHAR yy_ec[256] =
@ -393,14 +392,14 @@ static const YY_CHAR yy_ec[256] =
1, 2, 1, 5, 6, 1, 1, 1, 1, 1, 1, 2, 1, 5, 6, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 7, 1, 8, 7, 9, 1, 1, 1, 1, 1, 7, 1, 8, 7, 9,
7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1,
10, 1, 1, 1, 11, 11, 11, 11, 12, 12, 10, 1, 1, 1, 11, 11, 11, 11, 11, 11,
1, 1, 13, 1, 1, 1, 1, 14, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 15, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 16, 1, 17, 18, 19, 20, 1, 1, 1, 1, 12, 1, 13, 14, 15, 16,
21, 22, 23, 24, 25, 1, 1, 26, 27, 28, 17, 18, 19, 20, 21, 1, 1, 22, 23, 24,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
39, 1, 1, 40, 1, 1, 1, 1, 1, 1, 35, 1, 1, 36, 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,
@ -417,148 +416,142 @@ static const YY_CHAR yy_ec[256] =
1, 1, 1, 1, 1 1, 1, 1, 1, 1
} ; } ;
static const YY_CHAR yy_meta[41] = static const YY_CHAR yy_meta[37] =
{ 0, { 0,
1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 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
} ; } ;
static const flex_int16_t yy_base[216] = static const flex_int16_t yy_base[204] =
{ 0, { 0,
0, 0, 282, 0, 279, 283, 277, 39, 43, 40, 0, 0, 265, 0, 262, 266, 260, 35, 39, 36,
241, 0, 46, 264, 56, 60, 64, 67, 72, 56, 228, 0, 48, 51, 55, 75, 61, 58, 22, 240,
252, 74, 71, 77, 82, 255, 81, 242, 0, 0, 62, 81, 75, 74, 243, 82, 230, 0, 0, 256,
272, 283, 110, 268, 115, 119, 269, 283, 0, 116, 266, 104, 252, 109, 74, 253, 266, 0, 108, 111,
119, 256, 245, 0, 244, 233, 125, 240, 235, 245, 234, 0, 233, 222, 123, 229, 224, 234, 232, 236,
243, 247, 234, 236, 240, 240, 234, 240, 225, 227, 223, 225, 229, 229, 223, 0, 215, 217, 219, 218,
229, 228, 230, 0, 109, 226, 220, 220, 122, 230, 220, 0, 66, 216, 210, 210, 115, 220, 212, 218,
222, 228, 128, 0, 283, 145, 240, 0, 233, 226, 121, 0, 266, 134, 226, 0, 217, 203, 216, 206,
212, 225, 215, 222, 0, 0, 212, 218, 215, 206, 213, 0, 0, 203, 209, 206, 197, 205, 0, 203,
214, 0, 212, 202, 0, 211, 201, 200, 0, 0, 0, 203, 193, 192, 0, 0, 195, 0, 0, 201,
203, 0, 0, 209, 0, 201, 200, 0, 191, 0, 0, 193, 192, 0, 183, 0, 0, 206, 205, 180,
0, 218, 217, 0, 188, 0, 201, 200, 193, 197, 0, 193, 192, 185, 189, 179, 175, 0, 185, 173,
187, 183, 0, 193, 181, 187, 194, 0, 0, 181, 187, 0, 0, 174, 181, 168, 171, 160, 0, 266,
188, 175, 178, 167, 0, 283, 0, 179, 183, 175, 0, 172, 176, 168, 0, 167, 169, 165, 167, 157,
0, 174, 176, 172, 174, 179, 163, 168, 0, 161, 162, 0, 155, 155, 154, 151, 0, 0, 163, 165,
161, 160, 157, 0, 0, 169, 171, 0, 155, 172, 0, 149, 153, 0, 160, 164, 145, 145, 152, 0,
158, 0, 165, 169, 150, 150, 157, 0, 0, 156, 0, 144, 143, 45, 153, 139, 149, 119, 0, 136,
148, 147, 23, 157, 143, 153, 143, 135, 0, 139, 130, 128, 133, 0, 0, 117, 123, 126, 118, 133,
133, 131, 136, 0, 125, 0, 119, 125, 128, 120, 114, 127, 0, 121, 129, 0, 116, 107, 103, 93,
0, 135, 101, 109, 0, 94, 88, 0, 72, 74, 63, 49, 0, 57, 0, 266, 45, 155, 157, 159,
70, 66, 49, 37, 0, 47, 0, 283, 49, 161, 161, 163, 165
163, 165, 167, 169, 171
} ; } ;
static const flex_int16_t yy_def[216] = static const flex_int16_t yy_def[204] =
{ 0, { 0,
208, 1, 208, 209, 208, 208, 209, 210, 211, 209, 196, 1, 196, 197, 196, 196, 197, 198, 199, 197,
10, 209, 10, 209, 10, 10, 10, 10, 10, 209, 10, 197, 10, 10, 10, 10, 10, 10, 197, 197,
209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 197, 197, 197, 197, 197, 197, 197, 197, 197, 196,
208, 208, 210, 212, 213, 211, 214, 208, 10, 10, 196, 198, 200, 201, 199, 202, 196, 10, 10, 10,
10, 209, 209, 209, 209, 209, 10, 209, 209, 209, 197, 197, 197, 197, 10, 197, 197, 197, 197, 197,
209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
209, 209, 209, 209, 208, 213, 215, 41, 209, 209, 197, 197, 196, 201, 203, 40, 197, 197, 197, 197,
209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 197, 197, 197, 197, 197, 197, 197, 197, 196, 197,
209, 209, 208, 209, 209, 209, 209, 209, 209, 209, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 197, 197, 197, 197, 197, 197, 197, 197, 197, 196,
209, 209, 209, 209, 209, 208, 209, 209, 209, 209, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 197, 197, 197, 197, 197, 0, 196, 196, 196, 196,
209, 209, 209, 209, 209, 209, 209, 0, 208, 208, 196, 196, 196
208, 208, 208, 208, 208
} ; } ;
static const flex_int16_t yy_nxt[324] = static const flex_int16_t yy_nxt[303] =
{ 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, 15, 13, 16, 17, 13, 4, 14, 13, 15, 16, 17, 18, 19, 20,
18, 19, 20, 21, 22, 4, 23, 4, 24, 25, 21, 4, 22, 4, 23, 24, 4, 25, 26, 4,
4, 26, 27, 4, 28, 4, 4, 4, 4, 29, 27, 4, 4, 4, 4, 28, 33, 33, 51, 34,
34, 34, 180, 35, 37, 38, 39, 39, 39, 30, 36, 37, 38, 38, 38, 29, 39, 52, 39, 39,
40, 40, 40, 40, 40, 181, 40, 40, 40, 40, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
40, 40, 40, 40, 40, 207, 40, 40, 40, 206, 170, 39, 39, 39, 39, 39, 39, 39, 39, 39,
40, 40, 40, 40, 40, 40, 53, 205, 40, 40, 54, 195, 41, 171, 43, 36, 37, 194, 49, 42,
40, 43, 56, 45, 47, 54, 204, 60, 44, 46, 44, 39, 39, 39, 48, 55, 56, 193, 64, 57,
61, 203, 48, 202, 50, 49, 51, 62, 63, 201, 50, 45, 61, 58, 96, 97, 59, 65, 62, 46,
66, 57, 58, 200, 64, 59, 65, 70, 52, 67, 63, 66, 47, 60, 68, 33, 33, 69, 72, 192,
71, 34, 34, 68, 74, 72, 77, 77, 199, 30, 75, 75, 70, 29, 39, 39, 39, 76, 76, 76,
37, 38, 40, 40, 40, 78, 78, 78, 198, 78, 191, 76, 190, 76, 76, 76, 76, 76, 76, 39,
78, 40, 40, 40, 197, 78, 78, 78, 78, 78, 39, 39, 101, 102, 106, 75, 75, 107, 108, 189,
78, 100, 101, 105, 106, 110, 77, 77, 111, 112, 188, 187, 186, 185, 184, 183, 182, 181, 180, 179,
196, 195, 194, 193, 192, 191, 190, 189, 188, 187, 178, 177, 176, 175, 80, 32, 32, 35, 35, 33,
83, 33, 33, 36, 36, 34, 34, 76, 76, 37, 33, 74, 74, 36, 36, 75, 75, 174, 173, 172,
37, 77, 77, 186, 185, 184, 183, 182, 179, 178, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160,
177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 159, 158, 157, 156, 155, 154, 153, 152, 151, 150,
167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140,
157, 156, 155, 154, 153, 152, 151, 150, 149, 148, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130,
147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120,
137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110,
127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 109, 105, 104, 103, 100, 99, 98, 95, 94, 93,
117, 116, 115, 114, 113, 109, 108, 107, 104, 103, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83,
102, 99, 98, 97, 96, 95, 94, 93, 92, 91, 82, 81, 79, 78, 77, 37, 73, 30, 71, 67,
90, 89, 88, 87, 86, 85, 84, 82, 81, 80, 53, 40, 31, 30, 196, 3, 196, 196, 196, 196,
79, 38, 75, 31, 73, 69, 55, 42, 41, 32, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
31, 208, 3, 208, 208, 208, 208, 208, 208, 208, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 196, 196
208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
208, 208, 208
} ; } ;
static const flex_int16_t yy_chk[324] = static const flex_int16_t yy_chk[303] =
{ 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, 1, 1, 1, 1, 1, 1, 1, 1, 8, 8, 19, 8,
8, 8, 173, 8, 9, 9, 10, 10, 10, 209, 9, 9, 10, 10, 10, 197, 10, 19, 10, 10,
10, 10, 13, 13, 13, 173, 10, 10, 10, 10, 10, 10, 10, 10, 13, 13, 13, 14, 14, 14,
10, 10, 15, 15, 15, 206, 16, 16, 16, 204, 164, 15, 15, 15, 18, 18, 18, 17, 17, 17,
17, 17, 17, 18, 18, 18, 20, 203, 19, 19, 21, 194, 14, 164, 15, 35, 35, 192, 18, 14,
19, 15, 22, 16, 17, 20, 202, 23, 15, 16, 15, 16, 16, 16, 17, 21, 21, 191, 24, 21,
23, 201, 17, 200, 18, 17, 19, 23, 24, 199, 18, 16, 23, 22, 63, 63, 22, 24, 23, 16,
25, 22, 22, 197, 24, 22, 24, 27, 19, 25, 23, 24, 16, 22, 26, 32, 32, 26, 32, 190,
27, 33, 33, 25, 33, 27, 35, 35, 196, 35, 34, 34, 26, 34, 39, 39, 39, 40, 40, 40,
36, 36, 40, 40, 40, 41, 41, 41, 194, 41, 189, 40, 188, 40, 40, 40, 40, 40, 40, 45,
41, 47, 47, 47, 193, 41, 41, 41, 41, 41, 45, 45, 67, 67, 71, 74, 74, 71, 74, 187,
41, 65, 65, 69, 69, 73, 76, 76, 73, 76, 185, 184, 182, 181, 180, 179, 178, 177, 176, 173,
192, 190, 189, 188, 187, 185, 183, 182, 181, 180, 172, 171, 170, 168, 45, 198, 198, 199, 199, 200,
47, 210, 210, 211, 211, 212, 212, 213, 213, 214, 200, 201, 201, 202, 202, 203, 203, 167, 166, 165,
214, 215, 215, 178, 177, 176, 175, 174, 172, 171, 163, 162, 159, 158, 157, 156, 155, 153, 152, 150,
170, 167, 166, 165, 164, 163, 161, 160, 159, 157, 149, 146, 145, 144, 143, 141, 140, 139, 138, 137,
156, 153, 152, 151, 150, 148, 147, 146, 145, 144, 136, 134, 133, 132, 128, 127, 126, 125, 124, 121,
143, 142, 140, 139, 138, 134, 133, 132, 131, 130, 120, 119, 117, 116, 115, 114, 113, 112, 110, 109,
127, 126, 125, 124, 122, 121, 120, 119, 118, 117, 108, 105, 103, 102, 100, 97, 94, 93, 92, 90,
115, 113, 112, 109, 107, 106, 104, 101, 98, 97, 88, 87, 86, 85, 84, 81, 80, 79, 78, 77,
96, 94, 93, 91, 90, 89, 88, 87, 84, 83, 75, 70, 69, 68, 66, 65, 64, 61, 60, 59,
82, 81, 80, 79, 77, 72, 71, 70, 68, 67, 58, 57, 55, 54, 53, 52, 51, 50, 49, 48,
66, 63, 62, 61, 60, 59, 58, 57, 56, 55, 47, 46, 44, 43, 41, 36, 33, 30, 27, 25,
54, 53, 52, 51, 50, 49, 48, 46, 45, 43, 20, 11, 7, 5, 3, 196, 196, 196, 196, 196,
42, 37, 34, 31, 28, 26, 21, 14, 11, 7, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
5, 3, 208, 208, 208, 208, 208, 208, 208, 208, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 196, 196
208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
208, 208, 208
} ; } ;
static yy_state_type yy_last_accepting_state; static yy_state_type yy_last_accepting_state;
@ -823,13 +816,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 >= 209 ) if ( yy_current_state >= 197 )
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] != 283 ); while ( yy_base[yy_current_state] != 266 );
yy_find_action: yy_find_action:
yy_act = yy_accept[yy_current_state]; yy_act = yy_accept[yy_current_state];
@ -937,127 +930,115 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 21: case 21:
YY_RULE_SETUP YY_RULE_SETUP
{yylval.number=IOAPIC; return(BUS);} {yylval.number=PNP; return(BUS);}
YY_BREAK YY_BREAK
case 22: case 22:
YY_RULE_SETUP YY_RULE_SETUP
{yylval.number=PNP; return(BUS);} {yylval.number=I2C; return(BUS);}
YY_BREAK YY_BREAK
case 23: case 23:
YY_RULE_SETUP YY_RULE_SETUP
{yylval.number=I2C; return(BUS);} {yylval.number=CPU_CLUSTER; return(BUS);}
YY_BREAK YY_BREAK
case 24: case 24:
YY_RULE_SETUP YY_RULE_SETUP
{yylval.number=CPU_CLUSTER; return(BUS);} {yylval.number=CPU; return(BUS);}
YY_BREAK YY_BREAK
case 25: case 25:
YY_RULE_SETUP YY_RULE_SETUP
{yylval.number=CPU; return(BUS);} {yylval.number=DOMAIN; return(BUS);}
YY_BREAK YY_BREAK
case 26: case 26:
YY_RULE_SETUP YY_RULE_SETUP
{yylval.number=DOMAIN; return(BUS);} {yylval.number=GENERIC; return(BUS);}
YY_BREAK YY_BREAK
case 27: case 27:
YY_RULE_SETUP YY_RULE_SETUP
{yylval.number=GENERIC; return(BUS);} {yylval.number=MMIO; return(BUS);}
YY_BREAK YY_BREAK
case 28: case 28:
YY_RULE_SETUP YY_RULE_SETUP
{yylval.number=MMIO; return(BUS);} {yylval.number=SPI; return(BUS);}
YY_BREAK YY_BREAK
case 29: case 29:
YY_RULE_SETUP YY_RULE_SETUP
{yylval.number=SPI; return(BUS);} {yylval.number=USB; return(BUS);}
YY_BREAK YY_BREAK
case 30: case 30:
YY_RULE_SETUP YY_RULE_SETUP
{yylval.number=USB; return(BUS);} {yylval.number=GPIO; return(BUS);}
YY_BREAK YY_BREAK
case 31: case 31:
YY_RULE_SETUP YY_RULE_SETUP
{yylval.number=GPIO; return(BUS);} {yylval.number=MDIO; return(BUS);}
YY_BREAK YY_BREAK
case 32: case 32:
YY_RULE_SETUP YY_RULE_SETUP
{yylval.number=MDIO; return(BUS);} {yylval.number=IRQ; return(RESOURCE);}
YY_BREAK YY_BREAK
case 33: case 33:
YY_RULE_SETUP YY_RULE_SETUP
{yylval.number=IRQ; return(RESOURCE);} {yylval.number=DRQ; return(RESOURCE);}
YY_BREAK YY_BREAK
case 34: case 34:
YY_RULE_SETUP YY_RULE_SETUP
{yylval.number=DRQ; return(RESOURCE);} {yylval.number=IO; return(RESOURCE);}
YY_BREAK YY_BREAK
case 35: case 35:
YY_RULE_SETUP YY_RULE_SETUP
{yylval.number=IO; return(RESOURCE);} {return(INHERIT);}
YY_BREAK YY_BREAK
case 36: case 36:
YY_RULE_SETUP YY_RULE_SETUP
{return(IOAPIC_IRQ);} {return(SUBSYSTEMID);}
YY_BREAK YY_BREAK
case 37: case 37:
YY_RULE_SETUP YY_RULE_SETUP
{return(INHERIT);} {return(END);}
YY_BREAK YY_BREAK
case 38: case 38:
YY_RULE_SETUP YY_RULE_SETUP
{return(SUBSYSTEMID);} {return(SLOT_DESC);}
YY_BREAK YY_BREAK
case 39: case 39:
YY_RULE_SETUP YY_RULE_SETUP
{return(END);} {return(SMBIOS_DEV_INFO);}
YY_BREAK YY_BREAK
case 40: case 40:
YY_RULE_SETUP YY_RULE_SETUP
{return(SLOT_DESC);} {return(EQUALS);}
YY_BREAK YY_BREAK
case 41: case 41:
YY_RULE_SETUP YY_RULE_SETUP
{return(SMBIOS_DEV_INFO);} {return(PIPE);}
YY_BREAK YY_BREAK
case 42: case 42:
YY_RULE_SETUP YY_RULE_SETUP
{return(EQUALS);} {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);}
YY_BREAK YY_BREAK
case 43: case 43:
YY_RULE_SETUP YY_RULE_SETUP
{return(PIPE);} {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);}
YY_BREAK YY_BREAK
case 44: case 44:
YY_RULE_SETUP YY_RULE_SETUP
{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);} {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);}
YY_BREAK YY_BREAK
case 45: case 45:
/* rule 45 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);} {yylval.string = malloc(yyleng-1); strncpy(yylval.string, yytext+1, yyleng-2); yylval.string[yyleng-2]='\0'; return(STRING);}
YY_BREAK YY_BREAK
case 46: case 46:
/* rule 46 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);} {yylval.string = malloc(yyleng-1); strncpy(yylval.string, yytext+1, yyleng-2); yylval.string[yyleng-2]='\0'; return(STRING);}
YY_BREAK YY_BREAK
case 47: case 47:
YY_RULE_SETUP YY_RULE_SETUP
{yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(PCIINT);}
YY_BREAK
case 48:
/* rule 48 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 49:
/* rule 49 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 50:
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 51: case 48:
YY_RULE_SETUP YY_RULE_SETUP
ECHO; ECHO;
YY_BREAK YY_BREAK
@ -1357,7 +1338,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 >= 209 ) if ( yy_current_state >= 197 )
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];
@ -1385,11 +1366,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 >= 209 ) if ( yy_current_state >= 197 )
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 == 208); yy_is_jam = (yy_current_state == 196);
return yy_is_jam ? 0 : yy_current_state; return yy_is_jam ? 0 : yy_current_state;
} }

View File

@ -881,10 +881,6 @@ static struct device *new_device_with_path(struct bus *parent,
new_d->path = ".type=DEVICE_PATH_DOMAIN,{.domain={ .domain = 0x%x }}"; new_d->path = ".type=DEVICE_PATH_DOMAIN,{.domain={ .domain = 0x%x }}";
break; break;
case IOAPIC:
new_d->path = ".type=DEVICE_PATH_IOAPIC,{.ioapic={ .ioapic_id = 0x%x }}";
break;
case GENERIC: case GENERIC:
new_d->path = ".type=DEVICE_PATH_GENERIC,{.generic={ .id = 0x%x, .subid = 0x%x }}"; new_d->path = ".type=DEVICE_PATH_GENERIC,{.generic={ .id = 0x%x, .subid = 0x%x }}";
break; break;
@ -1084,33 +1080,6 @@ void add_pci_subsystem_ids(struct bus *bus, int vendor, int device,
dev->inherit_subsystem = inherit; dev->inherit_subsystem = inherit;
} }
void add_ioapic_info(struct bus *bus, int apicid, const char *_srcpin,
int irqpin)
{
int srcpin;
struct device *dev = bus->dev;
if (!_srcpin || strlen(_srcpin) < 4 || strncasecmp(_srcpin, "INT", 3) ||
_srcpin[3] < 'A' || _srcpin[3] > 'D') {
printf("ERROR: malformed ioapic_irq args: %s\n", _srcpin);
exit(1);
}
srcpin = _srcpin[3] - 'A';
if (dev->bustype != PCI && dev->bustype != DOMAIN) {
printf("ERROR: ioapic config only allowed for PCI devices\n");
exit(1);
}
if (srcpin > 3) {
printf("ERROR: srcpin '%d' invalid\n", srcpin);
exit(1);
}
dev->pci_irq_info[srcpin].ioapic_irq_pin = irqpin;
dev->pci_irq_info[srcpin].ioapic_dst_id = apicid;
}
static int dev_has_children(struct device *dev) static int dev_has_children(struct device *dev)
{ {
struct bus *bus = dev->bus; struct bus *bus = dev->bus;
@ -1269,7 +1238,6 @@ static struct chip_instance *get_chip_instance(const struct device *dev)
static void pass1(FILE *fil, FILE *head, struct device *ptr, struct device *next) static void pass1(FILE *fil, FILE *head, struct device *ptr, struct device *next)
{ {
int pin;
struct chip_instance *chip_ins = get_chip_instance(ptr); struct chip_instance *chip_ins = get_chip_instance(ptr);
int has_children = dev_has_children(ptr); int has_children = dev_has_children(ptr);
@ -1333,17 +1301,6 @@ static void pass1(FILE *fil, FILE *head, struct device *ptr, struct device *next
if (ptr->probe) if (ptr->probe)
fprintf(fil, "\t.probe_list = %s_probe_list,\n", ptr->name); fprintf(fil, "\t.probe_list = %s_probe_list,\n", ptr->name);
fprintf(fil, "#if !DEVTREE_EARLY\n"); fprintf(fil, "#if !DEVTREE_EARLY\n");
for (pin = 0; pin < 4; pin++) {
if (ptr->pci_irq_info[pin].ioapic_irq_pin > 0)
fprintf(fil,
"\t.pci_irq_info[%d].ioapic_irq_pin = %d,\n",
pin, ptr->pci_irq_info[pin].ioapic_irq_pin);
if (ptr->pci_irq_info[pin].ioapic_dst_id > 0)
fprintf(fil,
"\t.pci_irq_info[%d].ioapic_dst_id = %d,\n",
pin, ptr->pci_irq_info[pin].ioapic_dst_id);
}
fprintf(fil, "\t.chip_ops = &%s_ops,\n", fprintf(fil, "\t.chip_ops = &%s_ops,\n",
chip_ins->chip->name_underscore); chip_ins->chip->name_underscore);
if (chip_ins == &mainboard_instance) if (chip_ins == &mainboard_instance)

View File

@ -24,11 +24,6 @@ struct reg {
struct reg *next; struct reg *next;
}; };
struct pci_irq_info {
int ioapic_irq_pin;
int ioapic_dst_id;
};
struct fw_config_option; struct fw_config_option;
struct fw_config_option { struct fw_config_option {
const char *name; const char *name;
@ -150,9 +145,6 @@ struct device {
/* Type of bus that exists under this device. */ /* Type of bus that exists under this device. */
int bustype; int bustype;
/* PCI IRQ info. */
struct pci_irq_info pci_irq_info[4];
/* Pointer to bus of parent on which this device resides. */ /* Pointer to bus of parent on which this device resides. */
struct bus *parent; struct bus *parent;
@ -210,9 +202,6 @@ void add_resource(struct bus *bus, int type, int index, int base);
void add_pci_subsystem_ids(struct bus *bus, int vendor, int device, void add_pci_subsystem_ids(struct bus *bus, int vendor, int device,
int inherit); int inherit);
void add_ioapic_info(struct bus *bus, int apicid, const char *_srcpin,
int irqpin);
void add_slot_desc(struct bus *bus, char *type, char *length, char *designation, void add_slot_desc(struct bus *bus, char *type, char *length, char *designation,
char *data_width); char *data_width);

View File

@ -28,7 +28,6 @@ off {yylval.number=0; return(BOOL);}
hidden {yylval.number=3; return(STATUS);} hidden {yylval.number=3; return(STATUS);}
mandatory {yylval.number=5; return(STATUS);} mandatory {yylval.number=5; return(STATUS);}
pci {yylval.number=PCI; return(BUS);} pci {yylval.number=PCI; return(BUS);}
ioapic {yylval.number=IOAPIC; return(BUS);}
pnp {yylval.number=PNP; return(BUS);} pnp {yylval.number=PNP; return(BUS);}
i2c {yylval.number=I2C; return(BUS);} i2c {yylval.number=I2C; return(BUS);}
cpu_cluster {yylval.number=CPU_CLUSTER; return(BUS);} cpu_cluster {yylval.number=CPU_CLUSTER; return(BUS);}
@ -43,7 +42,6 @@ mdio {yylval.number=MDIO; 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);}
ioapic_irq {return(IOAPIC_IRQ);}
inherit {return(INHERIT);} inherit {return(INHERIT);}
subsystemid {return(SUBSYSTEMID);} subsystemid {return(SUBSYSTEMID);}
end {return(END);} end {return(END);}
@ -54,7 +52,6 @@ smbios_dev_info {return(SMBIOS_DEV_INFO);}
0x[0-9a-fA-F.]+ {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);} 0x[0-9a-fA-F.]+ {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);}
[0-9.]+ {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);} [0-9.]+ {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);}
[0-9a-fA-F.]+ {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);} [0-9a-fA-F.]+ {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(NUMBER);}
INT[A-D] {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+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);}
\"[^\"]+\" {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);}
[^ \n\t]+ {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(STRING);} [^ \n\t]+ {yylval.string = malloc(yyleng+1); strncpy(yylval.string, yytext, yyleng); yylval.string[yyleng]='\0'; return(STRING);}

View File

@ -142,54 +142,51 @@ enum yysymbol_kind_t
YYSYMBOL_NUMBER = 29, /* NUMBER */ YYSYMBOL_NUMBER = 29, /* NUMBER */
YYSYMBOL_SUBSYSTEMID = 30, /* SUBSYSTEMID */ YYSYMBOL_SUBSYSTEMID = 30, /* SUBSYSTEMID */
YYSYMBOL_INHERIT = 31, /* INHERIT */ YYSYMBOL_INHERIT = 31, /* INHERIT */
YYSYMBOL_IOAPIC_IRQ = 32, /* IOAPIC_IRQ */ YYSYMBOL_PCIINT = 32, /* PCIINT */
YYSYMBOL_IOAPIC = 33, /* IOAPIC */ YYSYMBOL_GENERIC = 33, /* GENERIC */
YYSYMBOL_PCIINT = 34, /* PCIINT */ YYSYMBOL_SPI = 34, /* SPI */
YYSYMBOL_GENERIC = 35, /* GENERIC */ YYSYMBOL_USB = 35, /* USB */
YYSYMBOL_SPI = 36, /* SPI */ YYSYMBOL_MMIO = 36, /* MMIO */
YYSYMBOL_USB = 37, /* USB */ YYSYMBOL_GPIO = 37, /* GPIO */
YYSYMBOL_MMIO = 38, /* MMIO */ YYSYMBOL_MDIO = 38, /* MDIO */
YYSYMBOL_GPIO = 39, /* GPIO */ YYSYMBOL_FW_CONFIG_TABLE = 39, /* FW_CONFIG_TABLE */
YYSYMBOL_MDIO = 40, /* MDIO */ YYSYMBOL_FW_CONFIG_FIELD = 40, /* FW_CONFIG_FIELD */
YYSYMBOL_FW_CONFIG_TABLE = 41, /* FW_CONFIG_TABLE */ YYSYMBOL_FW_CONFIG_OPTION = 41, /* FW_CONFIG_OPTION */
YYSYMBOL_FW_CONFIG_FIELD = 42, /* FW_CONFIG_FIELD */ YYSYMBOL_FW_CONFIG_PROBE = 42, /* FW_CONFIG_PROBE */
YYSYMBOL_FW_CONFIG_OPTION = 43, /* FW_CONFIG_OPTION */ YYSYMBOL_PIPE = 43, /* PIPE */
YYSYMBOL_FW_CONFIG_PROBE = 44, /* FW_CONFIG_PROBE */ YYSYMBOL_OPS = 44, /* OPS */
YYSYMBOL_PIPE = 45, /* PIPE */ YYSYMBOL_YYACCEPT = 45, /* $accept */
YYSYMBOL_OPS = 46, /* OPS */ YYSYMBOL_devtree = 46, /* devtree */
YYSYMBOL_YYACCEPT = 47, /* $accept */ YYSYMBOL_chipchild_nondev = 47, /* chipchild_nondev */
YYSYMBOL_devtree = 48, /* devtree */ YYSYMBOL_chipchild = 48, /* chipchild */
YYSYMBOL_chipchild_nondev = 49, /* chipchild_nondev */ YYSYMBOL_chipchildren = 49, /* chipchildren */
YYSYMBOL_chipchild = 50, /* chipchild */ YYSYMBOL_chipchildren_dev = 50, /* chipchildren_dev */
YYSYMBOL_chipchildren = 51, /* chipchildren */ YYSYMBOL_devicechildren = 51, /* devicechildren */
YYSYMBOL_chipchildren_dev = 52, /* chipchildren_dev */ YYSYMBOL_chip = 52, /* chip */
YYSYMBOL_devicechildren = 53, /* devicechildren */ YYSYMBOL_53_1 = 53, /* @1 */
YYSYMBOL_chip = 54, /* chip */ YYSYMBOL_device = 54, /* device */
YYSYMBOL_55_1 = 55, /* @1 */ YYSYMBOL_55_2 = 55, /* @2 */
YYSYMBOL_device = 56, /* device */ YYSYMBOL_56_3 = 56, /* @3 */
YYSYMBOL_57_2 = 57, /* @2 */ YYSYMBOL_alias = 57, /* alias */
YYSYMBOL_58_3 = 58, /* @3 */ YYSYMBOL_status = 58, /* status */
YYSYMBOL_alias = 59, /* alias */ YYSYMBOL_resource = 59, /* resource */
YYSYMBOL_status = 60, /* status */ YYSYMBOL_reference = 60, /* reference */
YYSYMBOL_resource = 61, /* resource */ YYSYMBOL_registers = 61, /* registers */
YYSYMBOL_reference = 62, /* reference */ YYSYMBOL_subsystemid = 62, /* subsystemid */
YYSYMBOL_registers = 63, /* registers */ YYSYMBOL_smbios_slot_desc = 63, /* smbios_slot_desc */
YYSYMBOL_subsystemid = 64, /* subsystemid */ YYSYMBOL_smbios_dev_info = 64, /* smbios_dev_info */
YYSYMBOL_ioapic_irq = 65, /* ioapic_irq */ YYSYMBOL_fw_config_table = 65, /* fw_config_table */
YYSYMBOL_smbios_slot_desc = 66, /* smbios_slot_desc */ YYSYMBOL_fw_config_table_children = 66, /* fw_config_table_children */
YYSYMBOL_smbios_dev_info = 67, /* smbios_dev_info */ YYSYMBOL_fw_config_field_children = 67, /* fw_config_field_children */
YYSYMBOL_fw_config_table = 68, /* fw_config_table */ YYSYMBOL_fw_config_field_bits = 68, /* fw_config_field_bits */
YYSYMBOL_fw_config_table_children = 69, /* fw_config_table_children */ YYSYMBOL_fw_config_field_bits_repeating = 69, /* fw_config_field_bits_repeating */
YYSYMBOL_fw_config_field_children = 70, /* fw_config_field_children */ YYSYMBOL_fw_config_field = 70, /* fw_config_field */
YYSYMBOL_fw_config_field_bits = 71, /* fw_config_field_bits */ YYSYMBOL_71_4 = 71, /* $@4 */
YYSYMBOL_fw_config_field_bits_repeating = 72, /* fw_config_field_bits_repeating */ YYSYMBOL_72_5 = 72, /* $@5 */
YYSYMBOL_fw_config_field = 73, /* fw_config_field */ YYSYMBOL_73_6 = 73, /* $@6 */
YYSYMBOL_74_4 = 74, /* $@4 */ YYSYMBOL_fw_config_option = 74, /* fw_config_option */
YYSYMBOL_75_5 = 75, /* $@5 */ YYSYMBOL_fw_config_probe = 75, /* fw_config_probe */
YYSYMBOL_76_6 = 76, /* $@6 */ YYSYMBOL_ops = 76 /* ops */
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; typedef enum yysymbol_kind_t yysymbol_kind_t;
@ -517,19 +514,19 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */ /* YYFINAL -- State number of the termination state. */
#define YYFINAL 2 #define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */ /* YYLAST -- Last index in YYTABLE. */
#define YYLAST 113 #define YYLAST 94
/* YYNTOKENS -- Number of terminals. */ /* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 47 #define YYNTOKENS 45
/* YYNNTS -- Number of nonterminals. */ /* YYNNTS -- Number of nonterminals. */
#define YYNNTS 33 #define YYNNTS 32
/* YYNRULES -- Number of rules. */ /* YYNRULES -- Number of rules. */
#define YYNRULES 62 #define YYNRULES 60
/* YYNSTATES -- Number of states. */ /* YYNSTATES -- Number of states. */
#define YYNSTATES 108 #define YYNSTATES 103
/* YYMAXUTOK -- Last valid token kind. */ /* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 301 #define YYMAXUTOK 299
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
@ -572,8 +569,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, 36, 37, 38, 39, 40, 41, 42, 43, 44, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44
45, 46
}; };
#if YYDEBUG #if YYDEBUG
@ -582,11 +578,11 @@ static const yytype_uint8 yyrline[] =
{ {
0, 26, 26, 26, 26, 29, 29, 29, 30, 30, 0, 26, 26, 26, 26, 29, 29, 29, 30, 30,
31, 31, 32, 32, 34, 34, 34, 34, 34, 34, 31, 31, 32, 32, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 36, 36, 45, 45, 53, 34, 34, 34, 34, 36, 36, 45, 45, 53, 53,
53, 61, 63, 67, 67, 69, 72, 75, 78, 81, 61, 63, 67, 67, 69, 72, 75, 78, 81, 84,
84, 87, 90, 93, 96, 99, 103, 106, 106, 109, 87, 90, 93, 96, 100, 103, 103, 106, 106, 109,
109, 112, 118, 118, 121, 120, 125, 125, 133, 133, 115, 115, 118, 117, 122, 122, 130, 130, 136, 140,
139, 143, 146 143
}; };
#endif #endif
@ -606,13 +602,12 @@ static const char *const yytname[] =
"REGISTER", "ALIAS", "REFERENCE", "ASSOCIATION", "BOOL", "STATUS", "REGISTER", "ALIAS", "REFERENCE", "ASSOCIATION", "BOOL", "STATUS",
"MANDATORY", "BUS", "RESOURCE", "END", "EQUALS", "HEX", "STRING", "PCI", "MANDATORY", "BUS", "RESOURCE", "END", "EQUALS", "HEX", "STRING", "PCI",
"PNP", "I2C", "CPU_CLUSTER", "CPU", "DOMAIN", "IRQ", "DRQ", "SLOT_DESC", "PNP", "I2C", "CPU_CLUSTER", "CPU", "DOMAIN", "IRQ", "DRQ", "SLOT_DESC",
"SMBIOS_DEV_INFO", "IO", "NUMBER", "SUBSYSTEMID", "INHERIT", "SMBIOS_DEV_INFO", "IO", "NUMBER", "SUBSYSTEMID", "INHERIT", "PCIINT",
"IOAPIC_IRQ", "IOAPIC", "PCIINT", "GENERIC", "SPI", "USB", "MMIO", "GENERIC", "SPI", "USB", "MMIO", "GPIO", "MDIO", "FW_CONFIG_TABLE",
"GPIO", "MDIO", "FW_CONFIG_TABLE", "FW_CONFIG_FIELD", "FW_CONFIG_OPTION", "FW_CONFIG_FIELD", "FW_CONFIG_OPTION", "FW_CONFIG_PROBE", "PIPE", "OPS",
"FW_CONFIG_PROBE", "PIPE", "OPS", "$accept", "devtree", "$accept", "devtree", "chipchild_nondev", "chipchild", "chipchildren",
"chipchild_nondev", "chipchild", "chipchildren", "chipchildren_dev", "chipchildren_dev", "devicechildren", "chip", "@1", "device", "@2", "@3",
"devicechildren", "chip", "@1", "device", "@2", "@3", "alias", "status", "alias", "status", "resource", "reference", "registers", "subsystemid",
"resource", "reference", "registers", "subsystemid", "ioapic_irq",
"smbios_slot_desc", "smbios_dev_info", "fw_config_table", "smbios_slot_desc", "smbios_dev_info", "fw_config_table",
"fw_config_table_children", "fw_config_field_children", "fw_config_table_children", "fw_config_field_children",
"fw_config_field_bits", "fw_config_field_bits_repeating", "fw_config_field_bits", "fw_config_field_bits_repeating",
@ -627,7 +622,7 @@ yysymbol_name (yysymbol_kind_t yysymbol)
} }
#endif #endif
#define YYPACT_NINF (-49) #define YYPACT_NINF (-51)
#define yypact_value_is_default(Yyn) \ #define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF) ((Yyn) == YYPACT_NINF)
@ -641,17 +636,17 @@ yysymbol_name (yysymbol_kind_t yysymbol)
STATE-NUM. */ STATE-NUM. */
static const yytype_int8 yypact[] = static const yytype_int8 yypact[] =
{ {
-49, 6, -49, 8, -49, -49, -49, -49, 1, 45, -51, 12, -51, 6, -51, -51, -51, -51, -3, 49,
-49, 18, -49, 12, 24, 25, 45, 3, -49, -49, -51, 7, -51, 10, 23, 24, 49, 14, -51, -51,
-49, -49, -6, 37, 26, 41, 49, -49, -49, 45, -51, -51, 16, 26, 17, 33, 42, -51, -51, 49,
29, 14, -49, 19, 55, 46, 47, -49, -49, -49, 28, 18, -51, 11, 53, 38, 43, -51, -51, -51,
-49, -49, 33, -49, -12, -49, -49, -49, 50, 19, -51, -51, 34, -51, -12, -51, -51, -51, 45, 11,
-49, -49, -7, 29, 14, -49, -49, 51, -49, -49, -51, -51, -8, 28, 18, -51, -51, 47, -51, -51,
-49, -49, -49, -49, 2, 40, 0, -49, -49, -49, -51, -51, -51, -51, -7, 37, 0, -51, -51, -51,
42, -49, 53, 43, 44, 48, 57, 58, -49, -49, 39, -51, 50, 40, 41, 54, 55, -51, -51, -51,
-49, -49, -49, -49, -49, -49, -49, -49, 7, 61, -51, -51, -51, -51, -51, -51, 5, 58, 57, 59,
62, 63, 52, 32, 65, -49, -49, 54, 67, -49, 46, 60, -51, -51, 51, 61, -51, 48, -51, -51,
59, 56, -49, -49, 69, -49, -49, -49 64, -51, -51
}; };
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@ -659,35 +654,35 @@ static const yytype_int8 yypact[] =
means the default is an error. */ means the default is an error. */
static const yytype_int8 yydefact[] = static const yytype_int8 yydefact[] =
{ {
2, 0, 1, 0, 48, 3, 4, 25, 0, 0, 2, 0, 1, 0, 46, 3, 4, 24, 0, 0,
46, 0, 47, 0, 0, 0, 0, 0, 5, 11, 44, 0, 45, 0, 0, 0, 0, 0, 5, 11,
7, 6, 58, 0, 0, 0, 0, 13, 26, 12, 7, 6, 56, 0, 0, 0, 0, 13, 25, 12,
56, 53, 50, 0, 31, 0, 0, 9, 10, 8, 54, 51, 48, 0, 30, 0, 0, 9, 10, 8,
51, 50, 0, 54, 0, 33, 34, 29, 0, 0, 49, 48, 0, 52, 0, 32, 33, 28, 0, 0,
37, 36, 0, 0, 53, 50, 59, 0, 49, 24, 36, 35, 0, 0, 51, 48, 57, 0, 47, 23,
32, 27, 57, 52, 0, 0, 0, 24, 55, 60, 31, 26, 55, 50, 0, 0, 0, 23, 53, 58,
0, 30, 0, 0, 0, 0, 0, 0, 15, 14, 0, 29, 0, 0, 0, 0, 0, 15, 14, 16,
16, 21, 17, 18, 19, 20, 22, 23, 0, 0, 20, 17, 18, 19, 21, 22, 0, 0, 0, 43,
0, 45, 0, 0, 0, 62, 28, 0, 43, 44, 0, 0, 60, 27, 0, 41, 42, 37, 59, 34,
38, 0, 61, 35, 42, 39, 40, 41 40, 38, 39
}; };
/* YYPGOTO[NTERM-NUM]. */ /* YYPGOTO[NTERM-NUM]. */
static const yytype_int8 yypgoto[] = static const yytype_int8 yypgoto[] =
{ {
-49, -49, 60, -49, -49, 72, 11, -1, -49, -28, -51, -51, 62, -51, -51, 66, 19, -1, -51, -28,
-49, -49, -49, 64, -49, -49, -48, -49, -49, -49, -51, -51, -51, 35, -51, -51, -50, -51, -51, -51,
-49, -49, -49, -33, 66, 38, -49, -49, -49, -49, -51, -51, -16, 52, 29, -51, -51, -51, -51, -51,
-49, -49, -49 -51, -51
}; };
/* YYDEFGOTO[NTERM-NUM]. */ /* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int8 yydefgoto[] = static const yytype_int8 yydefgoto[] =
{ {
0, 1, 16, 38, 29, 17, 66, 18, 9, 19, 0, 1, 16, 38, 29, 17, 66, 18, 9, 19,
67, 59, 49, 47, 80, 20, 21, 82, 83, 84, 67, 59, 49, 47, 79, 20, 21, 81, 82, 83,
85, 6, 8, 44, 31, 43, 12, 55, 41, 32, 6, 8, 44, 31, 43, 12, 55, 41, 32, 58,
58, 86, 87 84, 85
}; };
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@ -695,63 +690,59 @@ static const yytype_int8 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */ number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int8 yytable[] = static const yytype_int8 yytable[] =
{ {
5, 39, 56, 3, 13, 14, 2, 62, 52, 3, 5, 39, 56, 3, 13, 14, 62, 68, 3, 13,
3, 13, 14, 70, 71, 10, 68, 28, 81, 23, 14, 10, 2, 70, 71, 3, 80, 23, 70, 93,
70, 96, 64, 30, 24, 7, 72, 73, 45, 46, 45, 46, 24, 7, 22, 52, 72, 73, 28, 57,
74, 57, 75, 72, 73, 22, 57, 74, 79, 75, 74, 72, 73, 57, 57, 74, 80, 11, 78, 64,
81, 25, 26, 11, 76, 57, 77, 4, 3, 13, 25, 26, 75, 33, 76, 30, 34, 75, 35, 76,
14, 76, 15, 77, 33, 34, 35, 36, 40, 42, 36, 4, 3, 13, 14, 50, 15, 40, 78, 48,
79, 48, 53, 50, 51, 78, 101, 60, 65, 69, 51, 42, 60, 53, 65, 77, 69, 88, 87, 89,
90, 89, 91, 92, 94, 95, 97, 93, 88, 98, 90, 91, 92, 94, 95, 97, 96, 98, 100, 101,
99, 100, 102, 103, 104, 106, 107, 78, 27, 37, 99, 102, 27, 63, 61, 77, 86, 0, 0, 0,
105, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 54
0, 0, 0, 0, 0, 0, 0, 0, 54, 0,
0, 0, 0, 61
}; };
static const yytype_int8 yycheck[] = static const yytype_int8 yycheck[] =
{ {
1, 29, 14, 3, 4, 5, 0, 14, 41, 3, 1, 29, 14, 3, 4, 5, 14, 14, 3, 4,
3, 4, 5, 13, 14, 14, 14, 14, 66, 7, 5, 14, 0, 13, 14, 3, 66, 7, 13, 14,
13, 14, 55, 29, 12, 17, 26, 27, 9, 10, 9, 10, 12, 17, 17, 41, 26, 27, 14, 41,
30, 43, 32, 26, 27, 17, 43, 30, 66, 32, 30, 26, 27, 41, 41, 30, 86, 40, 66, 55,
88, 17, 17, 42, 44, 43, 46, 41, 3, 4, 17, 17, 42, 17, 44, 29, 29, 42, 15, 44,
5, 44, 7, 46, 17, 29, 15, 8, 29, 45, 8, 39, 3, 4, 5, 17, 7, 29, 86, 6,
88, 6, 29, 17, 17, 66, 34, 17, 17, 29, 17, 43, 17, 29, 17, 66, 29, 17, 29, 29,
17, 29, 29, 29, 17, 17, 15, 29, 67, 17, 29, 17, 17, 15, 17, 29, 17, 17, 17, 31,
17, 29, 17, 29, 17, 29, 17, 88, 16, 29, 29, 17, 16, 54, 49, 86, 67, -1, -1, -1,
31, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, -1, 42
-1, -1, -1, -1, -1, -1, -1, -1, 42, -1,
-1, -1, -1, 49
}; };
/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
state STATE-NUM. */ state STATE-NUM. */
static const yytype_int8 yystos[] = static const yytype_int8 yystos[] =
{ {
0, 48, 0, 3, 41, 54, 68, 17, 69, 55, 0, 46, 0, 3, 39, 52, 65, 17, 66, 53,
14, 42, 73, 4, 5, 7, 49, 52, 54, 56, 14, 40, 70, 4, 5, 7, 47, 50, 52, 54,
62, 63, 17, 7, 12, 17, 17, 52, 14, 51, 60, 61, 17, 7, 12, 17, 17, 50, 14, 49,
29, 71, 76, 17, 29, 15, 8, 49, 50, 56, 29, 68, 73, 17, 29, 15, 8, 47, 48, 54,
29, 75, 45, 72, 70, 9, 10, 60, 6, 59, 29, 72, 43, 69, 67, 9, 10, 58, 6, 57,
17, 17, 70, 29, 71, 74, 14, 43, 77, 58, 17, 17, 67, 29, 68, 71, 14, 41, 74, 56,
17, 60, 14, 72, 70, 17, 53, 57, 14, 29, 17, 58, 14, 69, 67, 17, 51, 55, 14, 29,
13, 14, 26, 27, 30, 32, 44, 46, 54, 56, 13, 14, 26, 27, 30, 42, 44, 52, 54, 59,
61, 63, 64, 65, 66, 67, 78, 79, 53, 29, 61, 62, 63, 64, 75, 76, 51, 29, 17, 29,
17, 29, 29, 29, 17, 17, 14, 15, 17, 17, 29, 17, 17, 14, 15, 17, 17, 29, 17, 29,
29, 34, 17, 29, 17, 31, 29, 17 17, 31, 17
}; };
/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
static const yytype_int8 yyr1[] = static const yytype_int8 yyr1[] =
{ {
0, 47, 48, 48, 48, 49, 49, 49, 50, 50, 0, 45, 46, 46, 46, 47, 47, 47, 48, 48,
51, 51, 52, 52, 53, 53, 53, 53, 53, 53, 49, 49, 50, 50, 51, 51, 51, 51, 51, 51,
53, 53, 53, 53, 53, 55, 54, 57, 56, 58, 51, 51, 51, 51, 53, 52, 55, 54, 56, 54,
56, 59, 59, 60, 60, 61, 62, 63, 64, 64, 57, 57, 58, 58, 59, 60, 61, 62, 62, 63,
65, 66, 66, 66, 67, 67, 68, 69, 69, 70, 63, 63, 64, 64, 65, 66, 66, 67, 67, 68,
70, 71, 72, 72, 74, 73, 75, 73, 76, 73, 69, 69, 71, 70, 72, 70, 73, 70, 74, 75,
77, 78, 79 76
}; };
/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
@ -759,11 +750,11 @@ static const yytype_int8 yyr2[] =
{ {
0, 2, 0, 2, 2, 1, 1, 1, 1, 1, 0, 2, 0, 2, 2, 1, 1, 1, 1, 1,
2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 0, 0, 5, 0, 8, 0, 2, 2, 2, 0, 0, 5, 0, 8, 0, 7,
7, 0, 2, 1, 1, 4, 4, 4, 3, 4, 0, 2, 1, 1, 4, 4, 4, 3, 4, 5,
4, 5, 4, 3, 3, 2, 3, 2, 0, 2, 4, 3, 3, 2, 3, 2, 0, 2, 0, 2,
0, 2, 3, 0, 0, 7, 0, 6, 0, 5, 3, 0, 0, 7, 0, 6, 0, 5, 3, 3,
3, 3, 2 2
}; };
@ -1230,7 +1221,7 @@ yyreduce:
{ cur_parent = root_parent; } { cur_parent = root_parent; }
break; break;
case 25: /* @1: %empty */ case 24: /* @1: %empty */
{ {
(yyval.chip_instance) = new_chip_instance((yyvsp[0].string)); (yyval.chip_instance) = new_chip_instance((yyvsp[0].string));
chip_enqueue_tail(cur_chip_instance); chip_enqueue_tail(cur_chip_instance);
@ -1238,113 +1229,109 @@ yyreduce:
} }
break; break;
case 26: /* chip: CHIP STRING @1 chipchildren_dev END */ case 25: /* chip: CHIP STRING @1 chipchildren_dev END */
{ {
cur_chip_instance = chip_dequeue_tail(); cur_chip_instance = chip_dequeue_tail();
} }
break; break;
case 27: /* @2: %empty */ case 26: /* @2: %empty */
{ {
(yyval.dev) = new_device_raw(cur_parent, cur_chip_instance, (yyvsp[-3].number), (yyvsp[-2].string), (yyvsp[-1].string), (yyvsp[0].number)); (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; cur_parent = (yyval.dev)->last_bus;
} }
break; break;
case 28: /* device: DEVICE BUS NUMBER alias status @2 devicechildren END */ case 27: /* device: DEVICE BUS NUMBER alias status @2 devicechildren END */
{ {
cur_parent = (yyvsp[-2].dev)->parent; cur_parent = (yyvsp[-2].dev)->parent;
} }
break; break;
case 29: /* @3: %empty */ case 28: /* @3: %empty */
{ {
(yyval.dev) = new_device_reference(cur_parent, cur_chip_instance, (yyvsp[-1].string), (yyvsp[0].number)); (yyval.dev) = new_device_reference(cur_parent, cur_chip_instance, (yyvsp[-1].string), (yyvsp[0].number));
cur_parent = (yyval.dev)->last_bus; cur_parent = (yyval.dev)->last_bus;
} }
break; break;
case 30: /* device: DEVICE REFERENCE STRING status @3 devicechildren END */ case 29: /* device: DEVICE REFERENCE STRING status @3 devicechildren END */
{ {
cur_parent = (yyvsp[-2].dev)->parent; cur_parent = (yyvsp[-2].dev)->parent;
} }
break; break;
case 31: /* alias: %empty */ case 30: /* alias: %empty */
{ {
(yyval.string) = NULL; (yyval.string) = NULL;
} }
break; break;
case 32: /* alias: ALIAS STRING */ case 31: /* alias: ALIAS STRING */
{ {
(yyval.string) = (yyvsp[0].string); (yyval.string) = (yyvsp[0].string);
} }
break; break;
case 35: /* resource: RESOURCE NUMBER EQUALS NUMBER */ case 34: /* resource: RESOURCE NUMBER EQUALS NUMBER */
{ add_resource(cur_parent, (yyvsp[-3].number), strtol((yyvsp[-2].string), NULL, 0), strtol((yyvsp[0].string), NULL, 0)); } { add_resource(cur_parent, (yyvsp[-3].number), strtol((yyvsp[-2].string), NULL, 0), strtol((yyvsp[0].string), NULL, 0)); }
break; break;
case 36: /* reference: REFERENCE STRING ASSOCIATION STRING */ case 35: /* reference: REFERENCE STRING ASSOCIATION STRING */
{ add_reference(cur_chip_instance, (yyvsp[0].string), (yyvsp[-2].string)); } { add_reference(cur_chip_instance, (yyvsp[0].string), (yyvsp[-2].string)); }
break; break;
case 37: /* registers: REGISTER STRING EQUALS STRING */ case 36: /* registers: REGISTER STRING EQUALS STRING */
{ add_register(cur_chip_instance, (yyvsp[-2].string), (yyvsp[0].string)); } { add_register(cur_chip_instance, (yyvsp[-2].string), (yyvsp[0].string)); }
break; break;
case 38: /* subsystemid: SUBSYSTEMID NUMBER NUMBER */ case 37: /* subsystemid: SUBSYSTEMID NUMBER NUMBER */
{ add_pci_subsystem_ids(cur_parent, strtol((yyvsp[-1].string), NULL, 16), strtol((yyvsp[0].string), NULL, 16), 0); } { add_pci_subsystem_ids(cur_parent, strtol((yyvsp[-1].string), NULL, 16), strtol((yyvsp[0].string), NULL, 16), 0); }
break; break;
case 39: /* subsystemid: SUBSYSTEMID NUMBER NUMBER INHERIT */ case 38: /* subsystemid: SUBSYSTEMID NUMBER NUMBER INHERIT */
{ add_pci_subsystem_ids(cur_parent, strtol((yyvsp[-2].string), NULL, 16), strtol((yyvsp[-1].string), NULL, 16), 1); } { add_pci_subsystem_ids(cur_parent, strtol((yyvsp[-2].string), NULL, 16), strtol((yyvsp[-1].string), NULL, 16), 1); }
break; break;
case 40: /* ioapic_irq: IOAPIC_IRQ NUMBER PCIINT NUMBER */ case 39: /* smbios_slot_desc: SLOT_DESC STRING STRING STRING STRING */
{ add_ioapic_info(cur_parent, strtol((yyvsp[-2].string), NULL, 16), (yyvsp[-1].string), strtol((yyvsp[0].string), NULL, 16)); }
break;
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)); } { add_slot_desc(cur_parent, (yyvsp[-3].string), (yyvsp[-2].string), (yyvsp[-1].string), (yyvsp[0].string)); }
break; break;
case 42: /* smbios_slot_desc: SLOT_DESC STRING STRING STRING */ case 40: /* smbios_slot_desc: SLOT_DESC STRING STRING STRING */
{ add_slot_desc(cur_parent, (yyvsp[-2].string), (yyvsp[-1].string), (yyvsp[0].string), NULL); } { add_slot_desc(cur_parent, (yyvsp[-2].string), (yyvsp[-1].string), (yyvsp[0].string), NULL); }
break; break;
case 43: /* smbios_slot_desc: SLOT_DESC STRING STRING */ case 41: /* smbios_slot_desc: SLOT_DESC STRING STRING */
{ add_slot_desc(cur_parent, (yyvsp[-1].string), (yyvsp[0].string), NULL, NULL); } { add_slot_desc(cur_parent, (yyvsp[-1].string), (yyvsp[0].string), NULL, NULL); }
break; break;
case 44: /* smbios_dev_info: SMBIOS_DEV_INFO NUMBER STRING */ case 42: /* smbios_dev_info: SMBIOS_DEV_INFO NUMBER STRING */
{ add_smbios_dev_info(cur_parent, strtol((yyvsp[-1].string), NULL, 0), (yyvsp[0].string)); } { add_smbios_dev_info(cur_parent, strtol((yyvsp[-1].string), NULL, 0), (yyvsp[0].string)); }
break; break;
case 45: /* smbios_dev_info: SMBIOS_DEV_INFO NUMBER */ case 43: /* smbios_dev_info: SMBIOS_DEV_INFO NUMBER */
{ add_smbios_dev_info(cur_parent, strtol((yyvsp[0].string), NULL, 0), NULL); } { add_smbios_dev_info(cur_parent, strtol((yyvsp[0].string), NULL, 0), NULL); }
break; break;
case 46: /* fw_config_table: FW_CONFIG_TABLE fw_config_table_children END */ case 44: /* fw_config_table: FW_CONFIG_TABLE fw_config_table_children END */
{ } { }
break; break;
case 51: /* fw_config_field_bits: NUMBER NUMBER */ case 49: /* fw_config_field_bits: NUMBER NUMBER */
{ {
append_fw_config_bits(&cur_bits, strtoul((yyvsp[-1].string), NULL, 0), strtoul((yyvsp[0].string), NULL, 0)); append_fw_config_bits(&cur_bits, strtoul((yyvsp[-1].string), NULL, 0), strtoul((yyvsp[0].string), NULL, 0));
} }
break; break;
case 54: /* $@4: %empty */ case 52: /* $@4: %empty */
{ cur_field = new_fw_config_field((yyvsp[-2].string), cur_bits); } { cur_field = new_fw_config_field((yyvsp[-2].string), cur_bits); }
break; break;
case 55: /* fw_config_field: FW_CONFIG_FIELD STRING fw_config_field_bits fw_config_field_bits_repeating $@4 fw_config_field_children END */ case 53: /* 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; } { cur_bits = NULL; }
break; break;
case 56: /* $@5: %empty */ case 54: /* $@5: %empty */
{ {
cur_bits = NULL; cur_bits = NULL;
append_fw_config_bits(&cur_bits, strtoul((yyvsp[0].string), NULL, 0), strtoul((yyvsp[0].string), NULL, 0)); append_fw_config_bits(&cur_bits, strtoul((yyvsp[0].string), NULL, 0), strtoul((yyvsp[0].string), NULL, 0));
@ -1352,29 +1339,29 @@ yyreduce:
} }
break; break;
case 57: /* fw_config_field: FW_CONFIG_FIELD STRING NUMBER $@5 fw_config_field_children END */ case 55: /* fw_config_field: FW_CONFIG_FIELD STRING NUMBER $@5 fw_config_field_children END */
{ cur_bits = NULL; } { cur_bits = NULL; }
break; break;
case 58: /* $@6: %empty */ case 56: /* $@6: %empty */
{ {
cur_field = get_fw_config_field((yyvsp[0].string)); cur_field = get_fw_config_field((yyvsp[0].string));
} }
break; break;
case 59: /* fw_config_field: FW_CONFIG_FIELD STRING $@6 fw_config_field_children END */ case 57: /* fw_config_field: FW_CONFIG_FIELD STRING $@6 fw_config_field_children END */
{ cur_bits = NULL; } { cur_bits = NULL; }
break; break;
case 60: /* fw_config_option: FW_CONFIG_OPTION STRING NUMBER */ case 58: /* fw_config_option: FW_CONFIG_OPTION STRING NUMBER */
{ add_fw_config_option(cur_field, (yyvsp[-1].string), strtoull((yyvsp[0].string), NULL, 0)); } { add_fw_config_option(cur_field, (yyvsp[-1].string), strtoull((yyvsp[0].string), NULL, 0)); }
break; break;
case 61: /* fw_config_probe: FW_CONFIG_PROBE STRING STRING */ case 59: /* fw_config_probe: FW_CONFIG_PROBE STRING STRING */
{ add_fw_config_probe(cur_parent, (yyvsp[-1].string), (yyvsp[0].string)); } { add_fw_config_probe(cur_parent, (yyvsp[-1].string), (yyvsp[0].string)); }
break; break;
case 62: /* ops: OPS STRING */ case 60: /* ops: OPS STRING */
{ add_device_ops(cur_parent, (yyvsp[0].string)); } { add_device_ops(cur_parent, (yyvsp[0].string)); }
break; break;

View File

@ -83,21 +83,19 @@ extern int yydebug;
NUMBER = 284, /* NUMBER */ NUMBER = 284, /* NUMBER */
SUBSYSTEMID = 285, /* SUBSYSTEMID */ SUBSYSTEMID = 285, /* SUBSYSTEMID */
INHERIT = 286, /* INHERIT */ INHERIT = 286, /* INHERIT */
IOAPIC_IRQ = 287, /* IOAPIC_IRQ */ PCIINT = 287, /* PCIINT */
IOAPIC = 288, /* IOAPIC */ GENERIC = 288, /* GENERIC */
PCIINT = 289, /* PCIINT */ SPI = 289, /* SPI */
GENERIC = 290, /* GENERIC */ USB = 290, /* USB */
SPI = 291, /* SPI */ MMIO = 291, /* MMIO */
USB = 292, /* USB */ GPIO = 292, /* GPIO */
MMIO = 293, /* MMIO */ MDIO = 293, /* MDIO */
GPIO = 294, /* GPIO */ FW_CONFIG_TABLE = 294, /* FW_CONFIG_TABLE */
MDIO = 295, /* MDIO */ FW_CONFIG_FIELD = 295, /* FW_CONFIG_FIELD */
FW_CONFIG_TABLE = 296, /* FW_CONFIG_TABLE */ FW_CONFIG_OPTION = 296, /* FW_CONFIG_OPTION */
FW_CONFIG_FIELD = 297, /* FW_CONFIG_FIELD */ FW_CONFIG_PROBE = 297, /* FW_CONFIG_PROBE */
FW_CONFIG_OPTION = 298, /* FW_CONFIG_OPTION */ PIPE = 298, /* PIPE */
FW_CONFIG_PROBE = 299, /* FW_CONFIG_PROBE */ OPS = 299 /* OPS */
PIPE = 300, /* PIPE */
OPS = 301 /* OPS */
}; };
typedef enum yytokentype yytoken_kind_t; typedef enum yytokentype yytoken_kind_t;
#endif #endif

View File

@ -21,7 +21,7 @@ static struct fw_config_field_bits *cur_bits;
uint64_t number; uint64_t number;
} }
%token CHIP DEVICE REGISTER ALIAS REFERENCE ASSOCIATION BOOL STATUS MANDATORY BUS RESOURCE END EQUALS HEX STRING PCI PNP I2C CPU_CLUSTER CPU DOMAIN IRQ DRQ SLOT_DESC SMBIOS_DEV_INFO IO NUMBER SUBSYSTEMID INHERIT IOAPIC_IRQ IOAPIC PCIINT GENERIC SPI USB MMIO GPIO MDIO FW_CONFIG_TABLE FW_CONFIG_FIELD FW_CONFIG_OPTION FW_CONFIG_PROBE PIPE OPS %token CHIP DEVICE REGISTER ALIAS REFERENCE ASSOCIATION BOOL STATUS MANDATORY BUS RESOURCE END EQUALS HEX STRING PCI PNP I2C CPU_CLUSTER CPU DOMAIN IRQ DRQ SLOT_DESC SMBIOS_DEV_INFO IO NUMBER SUBSYSTEMID INHERIT PCIINT GENERIC SPI USB MMIO GPIO MDIO FW_CONFIG_TABLE FW_CONFIG_FIELD FW_CONFIG_OPTION FW_CONFIG_PROBE PIPE OPS
%% %%
devtree: { cur_parent = root_parent; } | devtree chip | devtree fw_config_table; devtree: { cur_parent = root_parent; } | devtree chip | devtree fw_config_table;
@ -31,7 +31,7 @@ chipchild: device | chipchild_nondev;
chipchildren: chipchildren chipchild | /* empty */ ; chipchildren: chipchildren chipchild | /* empty */ ;
chipchildren_dev: device chipchildren | chipchild_nondev chipchildren_dev; chipchildren_dev: device chipchildren | chipchild_nondev chipchildren_dev;
devicechildren: devicechildren device | devicechildren chip | devicechildren resource | devicechildren subsystemid | devicechildren ioapic_irq | devicechildren smbios_slot_desc | devicechildren smbios_dev_info | devicechildren registers | devicechildren fw_config_probe | devicechildren ops | /* empty */ ; devicechildren: devicechildren device | devicechildren chip | devicechildren resource | devicechildren subsystemid | devicechildren smbios_slot_desc | devicechildren smbios_dev_info | devicechildren registers | devicechildren fw_config_probe | devicechildren ops | /* empty */ ;
chip: CHIP STRING /* == path */ { chip: CHIP STRING /* == path */ {
$<chip_instance>$ = new_chip_instance($<string>2); $<chip_instance>$ = new_chip_instance($<string>2);
@ -81,9 +81,6 @@ subsystemid: SUBSYSTEMID NUMBER NUMBER
subsystemid: SUBSYSTEMID NUMBER NUMBER INHERIT subsystemid: SUBSYSTEMID NUMBER NUMBER INHERIT
{ add_pci_subsystem_ids(cur_parent, strtol($<string>2, NULL, 16), strtol($<string>3, NULL, 16), 1); }; { add_pci_subsystem_ids(cur_parent, strtol($<string>2, NULL, 16), strtol($<string>3, NULL, 16), 1); };
ioapic_irq: IOAPIC_IRQ NUMBER PCIINT NUMBER
{ add_ioapic_info(cur_parent, strtol($<string>2, NULL, 16), $<string>3, strtol($<string>4, NULL, 16)); };
smbios_slot_desc: SLOT_DESC STRING STRING STRING STRING smbios_slot_desc: SLOT_DESC STRING STRING STRING STRING
{ add_slot_desc(cur_parent, $<string>2, $<string>3, $<string>4, $<string>5); }; { add_slot_desc(cur_parent, $<string>2, $<string>3, $<string>4, $<string>5); };