VirtualBox

Changeset 105600 in vbox for trunk/include


Ignore:
Timestamp:
Aug 6, 2024 9:39:44 AM (6 months ago)
Author:
vboxsync
Message:

VMM/ARM: Move the VBox ARMv8 platform descriptor from the end of the address space right after the UEFI region, bugref:10746

The original solution was to avoid as many hardcoded addresses as possible by placing the VBox region descriptor right at the end
of the guest physical address space. This turned out to be a bad idea because on M3 the host maximum physical address width and
guest maxmium physical address width differ so mapping the platform descriptor fails. Also saved states would not be portable if
a saved state is mvoed between systems with different physical address widths.
The solution is to move the platform descriptor right after the UEFI region and move the MMIO region, which grew from top to bottom
to start right after the base RAM region and grow upwards.

File:
1 edited

Legend:

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

    r102514 r105600  
    6262    /** Size of the base RAM region in bytes. */
    6363    uint64_t                    cbRamBase;
    64     /** Offset to the beginning of the FDT backwards from the start of this descriptor, 0 if not available. */
    65     uint64_t                    u64OffBackFdt;
     64    /** Offset to the beginning of the FDT from the start of this descriptor, 0 if not available. */
     65    int64_t                     i64OffFdt;
    6666    /** Size of the FDT in bytes, 0 if not available. */
    6767    uint64_t                    cbFdt;
    68     /** Offset to the RDSP/XSDP table for ACPI backwards from the start of this descriptor, 0 if not available. */
    69     uint64_t                    u64OffBackAcpiXsdp;
     68    /** Offset to the RDSP/XSDP table for ACPI from the start of this descriptor, 0 if not available. */
     69    int64_t                     i64OffAcpiXsdp;
    7070    /** Size of the RDSP/XSDP table, 0 if not available. */
    7171    uint64_t                    cbAcpiXsdp;
    72     /** Offset backwards to the start of the UEFI ROM region from the start of this descriptor, 0 if not available (doesn't make much sense though). */
    73     uint64_t                    u64OffBackUefiRom;
     72    /** Offset to the start of the UEFI ROM region from the start of this descriptor, 0 if not available (doesn't make much sense though). */
     73    int64_t                     i64OffUefiRom;
    7474    /** Size if the UEFI ROM region in bytes, 0 if not available. */
    7575    uint64_t                    cbUefiRom;
    76     /** Offset backwards to the start of the MMIO region from the start of this descriptor, 0 if not available (doesn't make much sense though). */
    77     uint64_t                    u64OffBackMmio;
     76    /** Offset to the start of the MMIO region from the start of this descriptor, 0 if not available (doesn't make much sense though). */
     77    int64_t                     i64OffMmio;
    7878    /** Size of the MMIO region in bytes, 0 if not available. */
    7979    uint64_t                    cbMmio;
    80     /** Offset backwards to the start of the MMIO32 region from the start of this descriptor, 0 if not available. */
    81     uint64_t                    u64OffBackMmio32;
     80    /** Offset to the start of the MMIO32 region from the start of this descriptor, 0 if not available. */
     81    int64_t                     i64OffMmio32;
    8282    /** Size of the MMIO32 region in bytes, 0 if not available. */
    8383    uint64_t                    cbMmio32;
     
    9494#define VBOXPLATFORMARMV8_VERSION 0x1
    9595
     96/** Physical address of the VBox platform descriptor (128MiB). */
     97#define VBOXPLATFORMARMV8_PHYS_ADDR UINT64_C(0x08000000)
     98
    9699#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