VirtualBox

Ignore:
Timestamp:
Nov 12, 2024 12:09:04 PM (4 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
165884
Message:

Main/ResourceAssignmentManager: Rewrite to accomodate for the fact that Windows guests have several requirements on where devices are located (TPM needs to be at fixed 0xfed40000, PL061 GPIO driver doesn't support 64bit MMIO, the GIC re-disitributor emulated by Hyper-V requires 128KiB of MMIO space rather than the 64KiB we currently reserve). This will break saved state compatibility (whether we want to restore this functionality is up for discussion), bugref:10732

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/platforms/vbox-armv8.h

    r106352 r106957  
    4646
    4747/**
     48 * Memory region type.
     49 */
     50typedef enum VBOXPLATFORMARMV8REGIONTYPE
     51{
     52    /** Invalid region type. */
     53    kVBoxPlatformArmv8RegionType_Invalid = 0,
     54    /** Region is RAM. */
     55    kVBoxPlatformArmv8RegionType_Ram,
     56    /** Region is ROM. */
     57    kVBoxPlatformArmv8RegionType_Rom,
     58    /** Region is MMIO. */
     59    kVBoxPlatformArmv8RegionType_Mmio,
     60    /** 32-bit hack. */
     61    kVBoxPlatformArmv8RegionType_32Bit_Hack = 0x7fffffff
     62} VBOXPLATFORMARMV8REGIONTYPE;
     63
     64
     65/**
     66 * Memory region descriptor.
     67 */
     68typedef struct VBOXPLATFORMARMV8REGIONDESC
     69{
     70    /** Base address of the region. */
     71    uint64_t                    u64PhysAddrBase;
     72    /** Size of the region in bytes. */
     73    uint64_t                    cbRegion;
     74    /** Region type. */
     75    VBOXPLATFORMARMV8REGIONTYPE enmType;
     76    /** Reserved. */
     77    uint32_t                    aRsvd[3];
     78} VBOXPLATFORMARMV8REGIONDESC;
     79AssertCompileSize(VBOXPLATFORMARMV8REGIONDESC, 32);
     80/** Pointer to a platform region descriptor. */
     81typedef VBOXPLATFORMARMV8REGIONDESC *PVBOXPLATFORMARMV8REGIONDESC;
     82/** Pointer to a const platform region descriptor. */
     83typedef const VBOXPLATFORMARMV8REGIONDESC *PCVBOXPLATFORMARMV8REGIONDESC;
     84
     85
     86/**
    4887 * The VBox region descriptor.
    4988 */
     
    86125    /** Size of the RDSP/XSDP table, 0 if not available. */
    87126    uint64_t                    cbAcpiXsdp;
     127    /** Offset to any additional memory region descriptors, 0 if not available. */
     128    int64_t                     i64OffRegions;
     129    /** Size of the memory region table in bytes, 0 if not available. */
     130    uint64_t                    cbRegions;
    88131    /** Padding to 64KiB. */
    89     uint8_t                     abPadding[_64K - 4 * sizeof(uint32_t) - 14 * sizeof(uint64_t)];
     132    uint8_t                     abPadding[_64K - 4 * sizeof(uint32_t) - 16 * sizeof(uint64_t)];
    90133} VBOXPLATFORMARMV8;
    91134AssertCompileSize(VBOXPLATFORMARMV8, _64K);
     
    98141#define VBOXPLATFORMARMV8_VERSION 0x1
    99142
    100 /** Physical address of the VBox platform descriptor (128MiB). */
    101 #define VBOXPLATFORMARMV8_PHYS_ADDR UINT64_C(0x08000000)
     143/** Physical address of the VBox platform descriptor (end of 4GiB address space). */
     144#define VBOXPLATFORMARMV8_PHYS_ADDR (_4G - _64K)
    102145
    103146#endif /* !VBOX_INCLUDED_platforms_vbox_armv8_h */
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette