Changeset 102517 in vbox
- Timestamp:
- Dec 7, 2023 10:28:20 AM (12 months ago)
- Location:
- trunk/src/VBox/Main
- Files:
-
- 2 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/Makefile.kmk
r101556 r102517 1176 1176 src-client/MouseImpl.cpp \ 1177 1177 src-client/RemoteUSBDeviceImpl.cpp \ 1178 $(if $(VBOX_WITH_VIRT_ARMV8),src-client/ResourceAssignmentManager.cpp,) \ 1178 1179 $(if $(VBOX_WITH_VIRT_ARMV8),src-client/ResourceStoreImpl.cpp,) \ 1179 1180 src-client/SessionImpl.cpp \ -
trunk/src/VBox/Main/src-client/ConsoleImplConfigArmV8.cpp
r101622 r102517 67 67 68 68 #include "BusAssignmentManager.h" 69 #include "ResourceAssignmentManager.h" 69 70 #ifdef VBOX_WITH_EXTPACK 70 71 # include "ExtPackManagerImpl.h" … … 90 91 * to leave it in order to avoid deadlocks (ext packs and 91 92 * more). 92 *93 * @todo This is a big hack at the moment and provides a static VM config to work with, will be adjusted later94 * on to adhere to the VM config when sorting out the API bits.95 93 */ 96 94 int Console::i_configConstructorArmV8(PUVM pUVM, PVM pVM, PCVMMR3VTABLE pVMM, AutoWriteLock *pAlock) … … 178 176 179 177 BusAssignmentManager *pBusMgr = mBusMgr = BusAssignmentManager::createInstance(pVMM, chipsetType, IommuType_None); 178 ResourceAssignmentManager *pResMgr = ResourceAssignmentManager::createInstance(pVMM, chipsetType, IommuType_None, 179 GCPhysTopOfAddrSpace - sizeof(VBOXPLATFORMARMV8), 180 _1G, /*GCPhysRam*/ 181 128 * _1M, /*GCPhysMmio32Start*/ 182 _1G - 128 * _1M, /*cbMmio32*/ 183 32 /*cInterrupts*/); 180 184 181 185 /* … … 185 189 PCFGMNODE pRoot = pVMM->pfnCFGMR3GetRootU(pUVM); 186 190 Assert(pRoot); 191 192 RTGCPHYS GCPhysRam = NIL_RTGCPHYS; 187 193 188 194 // catching throws from InsertConfigString and friends. … … 271 277 InsertConfigNode(pMM, "MemRegions", &pMem); 272 278 279 hrc = pResMgr->assignRamRegion("Conventional", cbRam, &GCPhysRam); H(); 280 273 281 PCFGMNODE pMemRegion = NULL; 274 282 InsertConfigNode(pMem, "Conventional", &pMemRegion); 275 InsertConfigInteger(pMemRegion, "GCPhysStart", 0x40000000);283 InsertConfigInteger(pMemRegion, "GCPhysStart", GCPhysRam); 276 284 InsertConfigInteger(pMemRegion, "Size", cbRam); 277 285 278 vrc = RTFdtNodeAddF(hFdt, "memory@%R X32", 0x40000000);VRC();279 vrc = RTFdtNodePropertyAddCellsU64(hFdt, "reg", 2, 0x40000000, cbRam);VRC();286 vrc = RTFdtNodeAddF(hFdt, "memory@%RGp", GCPhysRam); VRC(); 287 vrc = RTFdtNodePropertyAddCellsU64(hFdt, "reg", 2, GCPhysRam, cbRam); VRC(); 280 288 vrc = RTFdtNodePropertyAddString( hFdt, "device_type", "memory"); VRC(); 281 289 vrc = RTFdtNodeFinalize(hFdt); VRC(); … … 386 394 * Configure the interrupt controller. 387 395 */ 396 RTGCPHYS GCPhysIntcDist; 397 RTGCPHYS GCPhysIntcReDist; 398 RTGCPHYS cbMmioIntcDist; 399 RTGCPHYS cbMmioIntcReDist; 400 401 /* Each vCPU needs on re-distributor, this would allow for up to 256 vCPUs in the future. */ 402 hrc = pResMgr->assignMmioRegion("gic", 256 * _64K, &GCPhysIntcReDist, &cbMmioIntcReDist); H(); 403 hrc = pResMgr->assignMmioRegion("gic", _64K, &GCPhysIntcDist, &cbMmioIntcDist); H(); 404 388 405 InsertConfigNode(pDevices, "gic", &pDev); 389 406 InsertConfigNode(pDev, "0", &pInst); 390 407 InsertConfigInteger(pInst, "Trusted", 1); 391 408 InsertConfigNode(pInst, "Config", &pCfg); 392 InsertConfigInteger(pCfg, "DistributorMmioBase", 0x08000000);393 InsertConfigInteger(pCfg, "RedistributorMmioBase", 0x080a0000);394 395 vrc = RTFdtNodeAddF(hFdt, "intc@%R X32", 0x08000000);VRC();396 vrc = RTFdtNodePropertyAddU32( hFdt, "phandle", idPHandleIntCtrl); VRC();409 InsertConfigInteger(pCfg, "DistributorMmioBase", GCPhysIntcDist); 410 InsertConfigInteger(pCfg, "RedistributorMmioBase", GCPhysIntcReDist); 411 412 vrc = RTFdtNodeAddF(hFdt, "intc@%RGp", GCPhysIntcDist); VRC(); 413 vrc = RTFdtNodePropertyAddU32( hFdt, "phandle", idPHandleIntCtrl); VRC(); 397 414 vrc = RTFdtNodePropertyAddCellsU64(hFdt, "reg", 4, 398 0x08000000, 0x10000,/* Distributor */399 0x080a0000, 0xf60000); /* Re-Distributor */VRC();400 vrc = RTFdtNodePropertyAddU32( hFdt, "#redistributor-regions", 1); VRC();401 vrc = RTFdtNodePropertyAddString( hFdt, "compatible", "arm,gic-v3"); VRC();402 vrc = RTFdtNodePropertyAddEmpty( hFdt, "ranges"); VRC();403 vrc = RTFdtNodePropertyAddU32( hFdt, "#size-cells", 2); VRC();404 vrc = RTFdtNodePropertyAddU32( hFdt, "#address-cells", 2); VRC();405 vrc = RTFdtNodePropertyAddEmpty( hFdt, "interrupt-controller"); VRC();406 vrc = RTFdtNodePropertyAddU32( hFdt, "#interrupt-cells", 3); VRC();415 GCPhysIntcDist, cbMmioIntcDist, /* Distributor */ 416 GCPhysIntcReDist, cbMmioIntcReDist); /* Re-Distributor */ VRC(); 417 vrc = RTFdtNodePropertyAddU32( hFdt, "#redistributor-regions", 1); VRC(); 418 vrc = RTFdtNodePropertyAddString( hFdt, "compatible", "arm,gic-v3"); VRC(); 419 vrc = RTFdtNodePropertyAddEmpty( hFdt, "ranges"); VRC(); 420 vrc = RTFdtNodePropertyAddU32( hFdt, "#size-cells", 2); VRC(); 421 vrc = RTFdtNodePropertyAddU32( hFdt, "#address-cells", 2); VRC(); 422 vrc = RTFdtNodePropertyAddEmpty( hFdt, "interrupt-controller"); VRC(); 423 vrc = RTFdtNodePropertyAddU32( hFdt, "#interrupt-cells", 3); VRC(); 407 424 408 425 #if 0 … … 418 435 vrc = RTFdtNodeFinalize(hFdt); VRC(); 419 436 437 RTGCPHYS GCPhysMmioStart; 438 RTGCPHYS cbMmio; 420 439 if (enmGraphicsController == GraphicsControllerType_QemuRamFB) 421 440 { 441 hrc = pResMgr->assignMmioRegion("qemu-fw-cfg", _4K, &GCPhysMmioStart, &cbMmio); H(); 442 422 443 InsertConfigNode(pDevices, "qemu-fw-cfg", &pDev); 423 444 InsertConfigNode(pDev, "0", &pInst); 424 445 InsertConfigNode(pInst, "Config", &pCfg); 425 InsertConfigInteger(pCfg, "MmioSize", 4096);426 InsertConfigInteger(pCfg, "MmioBase", 0x09020000);446 InsertConfigInteger(pCfg, "MmioSize", cbMmio); 447 InsertConfigInteger(pCfg, "MmioBase", GCPhysMmioStart); 427 448 InsertConfigInteger(pCfg, "DmaEnabled", 1); 428 449 InsertConfigInteger(pCfg, "QemuRamfbSupport", 1); … … 430 451 InsertConfigString(pLunL0, "Driver", "MainDisplay"); 431 452 432 vrc = RTFdtNodeAddF(hFdt, "fw-cfg@%R X32", 0x09020000);VRC();453 vrc = RTFdtNodeAddF(hFdt, "fw-cfg@%RGp", GCPhysMmioStart); VRC(); 433 454 vrc = RTFdtNodePropertyAddEmpty( hFdt, "dma-coherent"); VRC(); 434 vrc = RTFdtNodePropertyAddCellsU64(hFdt, "reg", 2, 0x09020000, 0x18);VRC();455 vrc = RTFdtNodePropertyAddCellsU64(hFdt, "reg", 2, GCPhysMmioStart, cbMmio); VRC(); 435 456 vrc = RTFdtNodePropertyAddString( hFdt, "compatible", "qemu,fw-cfg-mmio"); VRC(); 436 457 vrc = RTFdtNodeFinalize(hFdt); VRC(); … … 475 496 InsertConfigNode(pInst, "Config", &pCfg); 476 497 477 InsertConfigInteger(pCfg, "Irq", 1); 478 InsertConfigInteger(pCfg, "MmioBase", 0x09000000); 479 480 vrc = RTFdtNodeAddF(hFdt, "pl011@%RX32", 0x09000000); VRC(); 481 vrc = RTFdtNodePropertyAddStringList(hFdt, "clock-names", 2, "uartclk", "apb_pclk"); VRC(); 498 uint32_t iIrq = 0; 499 hrc = pResMgr->assignSingleInterrupt("arm-pl011", &iIrq); H(); 500 hrc = pResMgr->assignMmioRegion("arm-pl011", _4K, &GCPhysMmioStart, &cbMmio); H(); 501 502 InsertConfigInteger(pCfg, "Irq", iIrq); 503 InsertConfigInteger(pCfg, "MmioBase", GCPhysMmioStart); 504 505 vrc = RTFdtNodeAddF(hFdt, "pl011@%RGp", GCPhysMmioStart); VRC(); 506 vrc = RTFdtNodePropertyAddStringList(hFdt, "clock-names", 2, "uartclk", "apb_pclk"); VRC(); 482 507 vrc = RTFdtNodePropertyAddCellsU32(hFdt, "clocks", 2, 483 idPHandleAbpPClk, idPHandleAbpPClk); VRC();484 vrc = RTFdtNodePropertyAddCellsU32(hFdt, "interrupts", 3, 0x00, 0x01, 0x04);VRC();485 vrc = RTFdtNodePropertyAddCellsU64(hFdt, "reg", 2, 0x09000000, _4K);VRC();508 idPHandleAbpPClk, idPHandleAbpPClk); VRC(); 509 vrc = RTFdtNodePropertyAddCellsU32(hFdt, "interrupts", 3, 0x00, iIrq, 0x04); VRC(); 510 vrc = RTFdtNodePropertyAddCellsU64(hFdt, "reg", 2, GCPhysMmioStart, cbMmio); VRC(); 486 511 vrc = RTFdtNodePropertyAddStringList(hFdt, "compatible", 2, 487 "arm,pl011", "arm,primecell"); VRC();488 vrc = RTFdtNodeFinalize(hFdt); VRC();512 "arm,pl011", "arm,primecell"); VRC(); 513 vrc = RTFdtNodeFinalize(hFdt); VRC(); 489 514 490 515 BOOL fServer; … … 507 532 hrc = platform->COMGETTER(RTCUseUTC)(&fRTCUseUTC); H(); 508 533 534 uint32_t iIrq = 0; 535 hrc = pResMgr->assignSingleInterrupt("arm-pl031-rtc", &iIrq); H(); 536 hrc = pResMgr->assignMmioRegion("arm-pl031-rtc", _4K, &GCPhysMmioStart, &cbMmio); H(); 509 537 InsertConfigNode(pDevices, "arm-pl031-rtc", &pDev); 510 538 InsertConfigNode(pDev, "0", &pInst); 511 539 InsertConfigNode(pInst, "Config", &pCfg); 512 InsertConfigInteger(pCfg, "Irq", 2);513 InsertConfigInteger(pCfg, "MmioBase", 0x09010000);540 InsertConfigInteger(pCfg, "Irq", iIrq); 541 InsertConfigInteger(pCfg, "MmioBase", GCPhysMmioStart); 514 542 InsertConfigInteger(pCfg, "UtcOffset", fRTCUseUTC ? 1 : 0); 515 543 516 vrc = RTFdtNodeAddF(hFdt, "pl032@%R X32", 0x09010000);VRC();544 vrc = RTFdtNodeAddF(hFdt, "pl032@%RGp", GCPhysMmioStart); VRC(); 517 545 vrc = RTFdtNodePropertyAddString( hFdt, "clock-names", "apb_pclk"); VRC(); 518 546 vrc = RTFdtNodePropertyAddU32( hFdt, "clocks", idPHandleAbpPClk); VRC(); 519 vrc = RTFdtNodePropertyAddCellsU32(hFdt, "interrupts", 3, 0x00, 0x02, 0x04); VRC();520 vrc = RTFdtNodePropertyAddCellsU 32(hFdt, "reg", 4, 0, 0x09010000, 0, 0x1000);VRC();547 vrc = RTFdtNodePropertyAddCellsU32(hFdt, "interrupts", 3, 0x00, iIrq, 0x04); VRC(); 548 vrc = RTFdtNodePropertyAddCellsU64(hFdt, "reg", 2, GCPhysMmioStart, cbMmio); VRC(); 521 549 vrc = RTFdtNodePropertyAddStringList(hFdt, "compatible", 2, 522 550 "arm,pl031", "arm,primecell"); VRC(); … … 524 552 525 553 /* Configure gpio keys. */ 554 hrc = pResMgr->assignSingleInterrupt("arm-pl061-gpio", &iIrq); H(); 555 hrc = pResMgr->assignMmioRegion("arm-pl061-gpio", _4K, &GCPhysMmioStart, &cbMmio); H(); 526 556 InsertConfigNode(pDevices, "arm-pl061-gpio",&pDev); 527 557 InsertConfigNode(pDev, "0", &pInst); 528 558 InsertConfigNode(pInst, "Config", &pCfg); 529 InsertConfigInteger(pCfg, "Irq", 7);530 InsertConfigInteger(pCfg, "MmioBase", 0x09030000);531 vrc = RTFdtNodeAddF(hFdt, "pl061@%R X32", 0x09030000);VRC();559 InsertConfigInteger(pCfg, "Irq", iIrq); 560 InsertConfigInteger(pCfg, "MmioBase", GCPhysMmioStart); 561 vrc = RTFdtNodeAddF(hFdt, "pl061@%RGp", GCPhysMmioStart); VRC(); 532 562 vrc = RTFdtNodePropertyAddU32( hFdt, "phandle", idPHandleGpio); VRC(); 533 563 vrc = RTFdtNodePropertyAddString( hFdt, "clock-names", "apb_pclk"); VRC(); 534 564 vrc = RTFdtNodePropertyAddU32( hFdt, "clocks", idPHandleAbpPClk); VRC(); 535 vrc = RTFdtNodePropertyAddCellsU32(hFdt, "interrupts", 3, 0x00, 0x07, 0x04); VRC();565 vrc = RTFdtNodePropertyAddCellsU32(hFdt, "interrupts", 3, 0x00, iIrq, 0x04); VRC(); 536 566 vrc = RTFdtNodePropertyAddEmpty( hFdt, "gpio-controller"); VRC(); 537 567 vrc = RTFdtNodePropertyAddU32( hFdt, "#gpio-cells", 2); VRC(); 538 568 vrc = RTFdtNodePropertyAddStringList(hFdt, "compatible", 2, 539 569 "arm,pl061", "arm,primecell"); VRC(); 540 vrc = RTFdtNodePropertyAddCellsU64(hFdt, "reg", 2, 0x09030000, _4K);VRC();570 vrc = RTFdtNodePropertyAddCellsU64(hFdt, "reg", 2, GCPhysMmioStart, cbMmio); VRC(); 541 571 vrc = RTFdtNodeFinalize(hFdt); VRC(); 542 572 … … 564 594 vrc = RTFdtNodeFinalize(hFdt); VRC(); 565 595 566 uint32_t aPinIrqs[] = { 3, 4, 5, 6 }; 596 hrc = pResMgr->assignInterrupts("pci-generic-ecam", 4 /*cInterrupts*/, &iIrq); H(); 597 uint32_t aPinIrqs[] = { iIrq, iIrq + 1, iIrq + 2, iIrq + 3 }; 598 RTGCPHYS GCPhysPciMmioEcam, GCPhysPciMmio, GCPhysPciMmio32; 599 RTGCPHYS cbPciMmioEcam, cbPciMmio, cbPciMmio32; 600 hrc = pResMgr->assignMmioRegionAligned("pci-pio", _64K, _64K, &GCPhysMmioStart, &cbMmio); H(); 601 hrc = pResMgr->assignMmioRegion( "pci-ecam", 16 * _1M, &GCPhysPciMmioEcam, &cbPciMmioEcam); H(); 602 hrc = pResMgr->assignMmioRegion( "pci-mmio", _2G, &GCPhysPciMmio, &cbPciMmio); H(); 603 hrc = pResMgr->assignMmio32Region( "pci-mmio32", (1024 - 128) * _1M, &GCPhysPciMmio32, &cbPciMmio32); H(); 604 567 605 InsertConfigNode(pDevices, "pci-generic-ecam", &pDev); 568 606 InsertConfigNode(pDev, "0", &pInst); 569 607 InsertConfigNode(pInst, "Config", &pCfg); 570 InsertConfigInteger(pCfg, "MmioEcamBase", 0x3f000000);571 InsertConfigInteger(pCfg, "MmioEcamLength", 0x01000000);572 InsertConfigInteger(pCfg, "MmioPioBase", 0x3eff0000);573 InsertConfigInteger(pCfg, "MmioPioSize", 0x0000ffff);608 InsertConfigInteger(pCfg, "MmioEcamBase", GCPhysPciMmioEcam); 609 InsertConfigInteger(pCfg, "MmioEcamLength", cbPciMmioEcam); 610 InsertConfigInteger(pCfg, "MmioPioBase", GCPhysMmioStart); 611 InsertConfigInteger(pCfg, "MmioPioSize", cbMmio); 574 612 InsertConfigInteger(pCfg, "IntPinA", aPinIrqs[0]); 575 613 InsertConfigInteger(pCfg, "IntPinB", aPinIrqs[1]); 576 614 InsertConfigInteger(pCfg, "IntPinC", aPinIrqs[2]); 577 615 InsertConfigInteger(pCfg, "IntPinD", aPinIrqs[3]); 578 vrc = RTFdtNodeAddF(hFdt, "pcie@%R X32", 0x10000000);VRC();616 vrc = RTFdtNodeAddF(hFdt, "pcie@%RGp", GCPhysPciMmio); VRC(); 579 617 vrc = RTFdtNodePropertyAddCellsU32(hFdt, "interrupt-map-mask", 4, 0xf800, 0, 0, 7); VRC(); 580 618 … … 604 642 605 643 vrc = RTFdtNodePropertyAddCellsU32AsArray(hFdt, "interrupt-map", RT_ELEMENTS(aIrqCells), &aIrqCells[0]); 606 vrc = RTFdtNodePropertyAddU32( hFdt, "#interrupt-cells", 1); VRC(); 607 vrc = RTFdtNodePropertyAddCellsU32(hFdt, "ranges", 14, 608 0x1000000, 0, 0, 0, 0x3eff0000, 0, 0x10000, 609 0x2000000, 0, 0x10000000, 0, 0x10000000, 0, 610 0x2eff0000); VRC(); 611 vrc = RTFdtNodePropertyAddCellsU64(hFdt, "reg", 2, 0x3f000000, 0x1000000); VRC(); 644 vrc = RTFdtNodePropertyAddU32( hFdt, "#interrupt-cells", 1); VRC(); 645 vrc = RTFdtNodePropertyAddCellsU32(hFdt, "ranges", 21, 646 0x1000000, 0, 0, 647 GCPhysMmioStart >> 32, GCPhysMmioStart, cbMmio >> 32, cbMmio, 648 0x2000000, GCPhysPciMmio32 >> 32, GCPhysPciMmio32, GCPhysPciMmio32 >> 32, GCPhysPciMmio32, 649 cbPciMmio32 >> 32, cbPciMmio32, 650 0x3000000, GCPhysPciMmio >> 32, GCPhysPciMmio, GCPhysPciMmio >> 32, GCPhysPciMmio, 651 cbPciMmio >> 32, cbPciMmio); VRC(); 652 vrc = RTFdtNodePropertyAddCellsU64(hFdt, "reg", 2, GCPhysPciMmioEcam, cbPciMmioEcam); VRC(); 612 653 /** @todo msi-map */ 613 vrc = RTFdtNodePropertyAddEmpty( hFdt, "dma-coherent"); VRC();614 vrc = RTFdtNodePropertyAddCellsU32(hFdt, "bus-range", 2, 0, 0xf); VRC();615 vrc = RTFdtNodePropertyAddU32( hFdt, "linux,pci-domain", 0); VRC();616 vrc = RTFdtNodePropertyAddU32( hFdt, "#size-cells", 2); VRC();617 vrc = RTFdtNodePropertyAddU32( hFdt, "#address-cells", 3); VRC();618 vrc = RTFdtNodePropertyAddString( hFdt, "device_type", "pci"); VRC();619 vrc = RTFdtNodePropertyAddString( hFdt, "compatible", "pci-host-ecam-generic"); VRC();620 vrc = RTFdtNodeFinalize(hFdt); VRC();654 vrc = RTFdtNodePropertyAddEmpty( hFdt, "dma-coherent"); VRC(); 655 vrc = RTFdtNodePropertyAddCellsU32(hFdt, "bus-range", 2, 0, 0xf); VRC(); 656 vrc = RTFdtNodePropertyAddU32( hFdt, "linux,pci-domain", 0); VRC(); 657 vrc = RTFdtNodePropertyAddU32( hFdt, "#size-cells", 2); VRC(); 658 vrc = RTFdtNodePropertyAddU32( hFdt, "#address-cells", 3); VRC(); 659 vrc = RTFdtNodePropertyAddString( hFdt, "device_type", "pci"); VRC(); 660 vrc = RTFdtNodePropertyAddString( hFdt, "compatible", "pci-host-ecam-generic"); VRC(); 661 vrc = RTFdtNodeFinalize(hFdt); VRC(); 621 662 622 663 /* … … 725 766 AssertRCReturn(vrc, vrc); 726 767 768 RTGCPHYS GCPhysMmioStart; 769 RTGCPHYS cbMmio; 770 hrc = pResMgr->queryMmioRegion(&GCPhysMmioStart, &cbMmio); 771 Assert(SUCCEEDED(hrc)); 772 773 RTGCPHYS GCPhysMmio32Start; 774 RTGCPHYS cbMmio32; 775 hrc = pResMgr->queryMmio32Region(&GCPhysMmio32Start, &cbMmio32); 776 Assert(SUCCEEDED(hrc)); 777 727 778 ArmV8Platform.u32Magic = VBOXPLATFORMARMV8_MAGIC; 728 779 ArmV8Platform.u32Version = VBOXPLATFORMARMV8_VERSION; 729 780 ArmV8Platform.cbDesc = sizeof(ArmV8Platform); 730 781 ArmV8Platform.fFlags = 0; 731 ArmV8Platform.u64PhysAddrRamBase = UINT64_C(0x40000000);782 ArmV8Platform.u64PhysAddrRamBase = GCPhysRam; 732 783 ArmV8Platform.cbRamBase = cbRam; 733 784 ArmV8Platform.u64OffBackFdt = RT_ALIGN_64(ArmV8Platform.cbFdt, _64K); … … 737 788 ArmV8Platform.u64OffBackUefiRom = GCPhysTopOfAddrSpace - sizeof(ArmV8Platform); 738 789 ArmV8Platform.cbUefiRom = _64M; /** @todo Fixed reservation but the ROM region is usually much smaller. */ 739 ArmV8Platform.u64OffBackMmio = GCPhysTopOfAddrSpace - sizeof(ArmV8Platform) - 0x08000000; /** @todo Start of generic MMIO area containing the GIC,UART,RTC, etc. Will be changed soon */ 740 ArmV8Platform.cbMmio = _128M; 790 ArmV8Platform.u64OffBackMmio = GCPhysTopOfAddrSpace - sizeof(ArmV8Platform) - GCPhysMmioStart; 791 ArmV8Platform.cbMmio = cbMmio; 792 ArmV8Platform.u64OffBackMmio32 = GCPhysTopOfAddrSpace - sizeof(ArmV8Platform) - GCPhysMmio32Start; 793 ArmV8Platform.cbMmio32 = cbMmio32; 741 794 742 795 /* Add the VBox platform descriptor to the resource store. */ … … 758 811 } 759 812 813 delete pResMgr; /* Delete the address/interrupt assignment manager. */ 760 814 761 815 /*
Note:
See TracChangeset
for help on using the changeset viewer.