Changeset 39274 in vbox for trunk/src/VBox/Devices/PC
- Timestamp:
- Nov 11, 2011 3:03:47 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/DevFwCommon.cpp
r39264 r39274 861 861 pCfgTab->u32OemTablePtr = 0; 862 862 pCfgTab->u16OemTableSize = 0; 863 pCfgTab->u16EntryCount = cCpus /* Processors */ 864 + 1 /* ISA Bus */ 865 + 1 /* PCI Bus */ 866 + 1 /* I/O-APIC */ 867 + 16 /* Interrupts */ 868 + 1 /* Local interrupts */; 863 pCfgTab->u16EntryCount = 0; /* Incremented as we go. */ 869 864 pCfgTab->u32AddrLocalApic = 0xfee00000; 870 865 pCfgTab->u16ExtTableLength = 0; … … 897 892 pProcEntry->u32Reserved[1] = 0; 898 893 pProcEntry++; 894 pCfgTab->u16EntryCount++; 899 895 } 900 896 … … 908 904 memcpy(pBusEntry->au8BusTypeStr, "ISA ", 6); 909 905 pBusEntry++; 906 pCfgTab->u16EntryCount++; 910 907 911 908 /* PCI bus */ … … 913 910 pBusEntry->u8BusId = iBusIdPci0; /* this ID can be referenced by the interrupt entries */ 914 911 memcpy(pBusEntry->au8BusTypeStr, "PCI ", 6); 912 pCfgTab->u16EntryCount++; 915 913 916 914 … … 925 923 pIOAPICEntry->u8Flags = 1 /* enable */; 926 924 pIOAPICEntry->u32Addr = 0xfec00000; 925 pCfgTab->u16EntryCount++; 927 926 928 927 /* Interrupt tables */ 929 928 /* Bus vectors */ 929 /* Note: The PIC is currently not routed to the I/O APIC. Therefore we skip 930 * pin 0 on the I/O APIC. 931 */ 930 932 PMPSIOIRQENTRY pIrqEntry = (PMPSIOIRQENTRY)(pIOAPICEntry+1); 931 for (int iPin = 0; iPin < 16; iPin++, pIrqEntry++)933 for (int iPin = 1; iPin < 16; iPin++, pIrqEntry++) 932 934 { 933 935 pIrqEntry->u8EntryType = 3; /* I/O interrupt entry */ … … 946 948 pIrqEntry->u8DstIOAPICId = iApicId; /* destination IO-APIC */ 947 949 pIrqEntry->u8DstIOAPICInt = iPin; /* pin on destination IO-APIC */ 950 pCfgTab->u16EntryCount++; 948 951 } 949 952 /* Local delivery */ … … 956 959 pIrqEntry->u8DstIOAPICInt = 0; 957 960 pIrqEntry++; 961 pCfgTab->u16EntryCount++; 962 pIrqEntry->u8EntryType = 4; /* Local interrupt entry */ 963 pIrqEntry->u8Type = 1; /* NMI */ 964 pIrqEntry->u16Flags = (1 << 2) | 1; /* active-high, edge-triggered */ 965 pIrqEntry->u8SrcBusId = iBusIdIsa; 966 pIrqEntry->u8SrcBusIrq = 0; 967 pIrqEntry->u8DstIOAPICId = 0xff; 968 pIrqEntry->u8DstIOAPICInt = 1; 969 pIrqEntry++; 970 pCfgTab->u16EntryCount++; 958 971 959 972 pCfgTab->u16Length = (uint8_t*)pIrqEntry - pTable;
Note:
See TracChangeset
for help on using the changeset viewer.