1414// Authors:
1515//
1616use crate :: pci_dev;
17- use crate :: { arch:: zone:: HvArchZoneConfig , config:: * , memory:: GuestPhysAddr } ;
17+ use crate :: {
18+ arch:: zone:: HvArchZoneConfig , config:: * , memory:: GuestPhysAddr , pci:: vpci_dev:: VpciDevType ,
19+ } ;
1820
1921pub const MEM_TYPE_RESERVED : u32 = 5 ;
2022
@@ -117,7 +119,8 @@ const ROOT_ZONE_SETUP_ADDR: GuestPhysAddr = 0xa000;
117119const ROOT_ZONE_VMLINUX_ENTRY_ADDR : GuestPhysAddr = 0x10_0000 ;
118120const ROOT_ZONE_SCREEN_BASE_ADDR : GuestPhysAddr = 0x8000_0000 ;
119121
120- pub const ROOT_ZONE_IRQS : [ u32 ; 32 ] = [ 0 ; 32 ] ;
122+ pub const IRQ_WAKEUP_VIRTIO_DEVICE : usize = 0x6 ;
123+ pub const ROOT_ZONE_IRQS_BITMAP : & [ BitmapWord ] = & get_irqs_bitmap ( & [ 0 ; 32 ] ) ;
121124pub const ROOT_ZONE_IOAPIC_BASE : usize = 0xfec0_0000 ;
122125pub const ROOT_ARCH_ZONE_CONFIG : HvArchZoneConfig = HvArchZoneConfig {
123126 ioapic_base : ROOT_ZONE_IOAPIC_BASE ,
@@ -135,6 +138,8 @@ pub const ROOT_ARCH_ZONE_CONFIG: HvArchZoneConfig = HvArchZoneConfig {
135138} ;
136139
137140pub const ROOT_PCI_CONFIG : [ HvPciConfig ; 1 ] = [ HvPciConfig {
141+ bus_range_begin : 0x0 ,
142+ bus_range_end : 0x1f ,
138143 ecam_base : 0xe0000000 ,
139144 ecam_size : 0x400000 ,
140145 io_base : 0x0 ,
@@ -146,32 +151,33 @@ pub const ROOT_PCI_CONFIG: [HvPciConfig; 1] = [HvPciConfig {
146151 mem64_base : 0x0 ,
147152 mem64_size : 0x0 ,
148153 pci_mem64_base : 0x0 ,
154+ domain : 0x0 ,
149155} ] ;
150156
151157pub const ROOT_PCI_MAX_BUS : usize = 3 ;
152158pub const ROOT_PCI_DEVS : [ HvPciDevConfig ; 19 ] = [
153- pci_dev ! ( 0x0 , 0x0 , 0x0 ) , // host bridge
154- pci_dev ! ( 0x0 , 0x1 , 0x0 ) , // PCI bridge
155- pci_dev ! ( 0x0 , 0x1 , 0x1 ) , // PCI bridge
156- // pci_dev!(0x0, 0x2, 0x0), // display controller
157- pci_dev ! ( 0x0 , 0x8 , 0x0 ) , // system peripheral
158- pci_dev ! ( 0x0 , 0x12 , 0x0 ) , // signal processing controller
159- pci_dev ! ( 0x0 , 0x14 , 0x0 ) , // USB controller
160- pci_dev ! ( 0x0 , 0x14 , 0x2 ) , // RAM memory
161- pci_dev ! ( 0x0 , 0x14 , 0x5 ) , // SD host controller
162- pci_dev ! ( 0x0 , 0x15 , 0x0 ) , // serial bus controller
163- pci_dev ! ( 0x0 , 0x16 , 0x0 ) , // communication controller
164- pci_dev ! ( 0x0 , 0x16 , 0x3 ) , // serial controller
165- pci_dev ! ( 0x0 , 0x17 , 0x0 ) , // SATA controller
166- pci_dev ! ( 0x0 , 0x1d , 0x0 ) , // PCI bridge
167- // pci_dev!(0x0, 0x1f, 0x0), // ISA bridge
168- pci_dev ! ( 0x0 , 0x1f , 0x3 ) , // audio device
169- pci_dev ! ( 0x0 , 0x1f , 0x4 ) , // SMBus
170- pci_dev ! ( 0x0 , 0x1f , 0x5 ) , // serial bus controller
171- // pci_dev!(0x0, 0x1f, 0x6), // ethernet controller
172- pci_dev ! ( 0x2 , 0x0 , 0x0 ) , // VGA controller
173- pci_dev ! ( 0x2 , 0x0 , 0x1 ) , // audio device
174- pci_dev ! ( 0x3 , 0x0 , 0x0 ) , // ethernet controller
159+ pci_dev ! ( 0x0 , 0x0 , 0x0 , 0x0 , VpciDevType :: Physical ) , // host bridge
160+ pci_dev ! ( 0x0 , 0x0 , 0x1 , 0x0 , VpciDevType :: Physical ) , // PCI bridge
161+ pci_dev ! ( 0x0 , 0x0 , 0x1 , 0x1 , VpciDevType :: Physical ) , // PCI bridge
162+ // pci_dev!(0x0, 0x0, 0x2, 0x0, VpciDevType::Physical ), // display controller
163+ pci_dev ! ( 0x0 , 0x0 , 0x8 , 0x0 , VpciDevType :: Physical ) , // system peripheral
164+ pci_dev ! ( 0x0 , 0x0 , 0x12 , 0x0 , VpciDevType :: Physical ) , // signal processing controller
165+ pci_dev ! ( 0x0 , 0x0 , 0x14 , 0x0 , VpciDevType :: Physical ) , // USB controller
166+ pci_dev ! ( 0x0 , 0x0 , 0x14 , 0x2 , VpciDevType :: Physical ) , // RAM memory
167+ pci_dev ! ( 0x0 , 0x0 , 0x14 , 0x5 , VpciDevType :: Physical ) , // SD host controller
168+ pci_dev ! ( 0x0 , 0x0 , 0x15 , 0x0 , VpciDevType :: Physical ) , // serial bus controller
169+ pci_dev ! ( 0x0 , 0x0 , 0x16 , 0x0 , VpciDevType :: Physical ) , // communication controller
170+ pci_dev ! ( 0x0 , 0x0 , 0x16 , 0x3 , VpciDevType :: Physical ) , // serial controller
171+ pci_dev ! ( 0x0 , 0x0 , 0x17 , 0x0 , VpciDevType :: Physical ) , // SATA controller
172+ pci_dev ! ( 0x0 , 0x0 , 0x1d , 0x0 , VpciDevType :: Physical ) , // PCI bridge
173+ // pci_dev!(0x0, 0x0, 0x1f, 0x0, VpciDevType::Physical ), // ISA bridge
174+ pci_dev ! ( 0x0 , 0x0 , 0x1f , 0x3 , VpciDevType :: Physical ) , // audio device
175+ pci_dev ! ( 0x0 , 0x0 , 0x1f , 0x4 , VpciDevType :: Physical ) , // SMBus
176+ pci_dev ! ( 0x0 , 0x0 , 0x1f , 0x5 , VpciDevType :: Physical ) , // serial bus controller
177+ // pci_dev!(0x0, 0x0, 0x1f, 0x6, VpciDevType::Physical ), // ethernet controller
178+ pci_dev ! ( 0x0 , 0x2 , 0x0 , 0x0 , VpciDevType :: Physical ) , // VGA controller
179+ pci_dev ! ( 0x0 , 0x2 , 0x0 , 0x1 , VpciDevType :: Physical ) , // audio device
180+ pci_dev ! ( 0x0 , 0x3 , 0x0 , 0x0 , VpciDevType :: Physical ) , // ethernet controller
175181] ;
176182
177183#[ cfg( all( feature = "graphics" ) ) ]
0 commit comments