Skip to content

Expand ARMv8 MMIO32 for 256 MiB VMSVGA VRAM#743

Draft
moreaki wants to merge 1 commit into
VirtualBox:mainfrom
moreaki:agent/armv8-vmsvga-256m-mmio
Draft

Expand ARMv8 MMIO32 for 256 MiB VMSVGA VRAM#743
moreaki wants to merge 1 commit into
VirtualBox:mainfrom
moreaki:agent/armv8-vmsvga-256m-mmio

Conversation

@moreaki

@moreaki moreaki commented Jul 8, 2026

Copy link
Copy Markdown

Summary

Expand the Armv8 PCI 32-bit MMIO aperture from 256 MiB to 448 MiB.

The source change is one value in the Armv8 machine configuration. The accompanying comment explains the alignment/layout constraint.

Why

A VMSVGA guest configured with 256 MiB VRAM needs a 256 MiB prefetchable VRAM BAR as well as the VMSVGA device MMIO BAR in low PCI address space. The existing 256 MiB Armv8 aperture cannot contain both.

A 448 MiB request is placed by the resource manager at the required 256 MiB-aligned 0xe0000000 base and ends at 0xfbffffff, below the platform devices already reserved at the top of the low MMIO hole.

Minimal reproduction

Host/guest configuration:

  • macOS Arm64 host
  • Windows 11 Arm guest
  • VMSVGA with 3D acceleration enabled
  • --vram 256

After starting the current patched build, inspect VBox.log:

rg "pci-mmio32|VRamSize|VMSVGA3dEnabled|VMSVGAEnabled" "$HOME/VirtualBox VMs/Win11/Logs/VBox.log"

Current patched result:

00000000e0000000 - 00000000fbffffff (469762048) MMIO pci-mmio32
VMSVGA3dEnabled       <integer> = 0x0000000000000001 (1)
VMSVGAEnabled         <integer> = 0x0000000000000001 (1)
VRamSize              <integer> = 0x0000000010000000 (268435456, 256.0 MiB)

The same guest reaches Guest Additions run level 3 and a 5760x3240x32 mode on the current integrated build.

Validation status

  • Rebased independently on origin/main at 5ac81eda707fcf3fcb49f9281401ceac0fc70f4a.
  • One source file, one functional value change; git diff --check passes.
  • Included in a clean Darwin/Arm full build and a strictly signed staged app.
  • Patched runtime log confirms the 448 MiB aperture, 256 MiB VRAM, VMSVGA, and 3D configuration shown above.
  • The negative runtime A/B with the aperture change removed is still required before this should be merged. Exact failure/log output from that run will be added rather than inferred.

Refs #742.

@oracle-contributor-agreement

Copy link
Copy Markdown

Thank you for your pull request and welcome to our community! To contribute, please sign the Oracle Contributor Agreement (OCA).
The following contributors of this PR have not signed the OCA:

To sign the OCA, please create an Oracle account and sign the OCA in Oracle's Contributor Agreement Application.

When signing the OCA, please provide your GitHub username. After signing the OCA and getting an OCA approval from Oracle, this PR will be automatically updated.

If you are an Oracle employee, please make sure that you are a member of the main Oracle GitHub organization, and your membership in this organization is public.

@oracle-contributor-agreement oracle-contributor-agreement Bot added the OCA Required At least one contributor does not have an approved Oracle Contributor Agreement. label Jul 8, 2026
@moreaki
moreaki marked this pull request as ready for review July 8, 2026 08:09
@moreaki moreaki changed the title Main: expand ARMv8 MMIO32 for 256 MiB VMSVGA VRAM Expand ARMv8 MMIO32 for 256 MiB VMSVGA VRAM Jul 8, 2026
Signed-off-by: Roberto Nibali <rnibali@gmail.com>
@moreaki
moreaki force-pushed the agent/armv8-vmsvga-256m-mmio branch from 1efd1fb to 2497a9b Compare July 16, 2026 15:49
@moreaki
moreaki marked this pull request as draft July 16, 2026 15:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCA Required At least one contributor does not have an approved Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant