VirtualBox

Ignore:
Timestamp:
Apr 11, 2016 12:39:13 PM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
106508
Message:

VGABIOS,PCBIOS: Build variants for 80286 and 8086 in addition to the default 80386 one. Added build time checking of the BIOSORG results (sed + map file). Fixed shutdown code 0ah jump.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Graphics/DevVGA.cpp

    r60369 r60422  
    64476447    if (pThis->pbVgaBios == NULL)
    64486448    {
    6449         pbVgaBiosBinary = g_abVgaBiosBinary;
    6450         cbVgaBiosBinary = g_cbVgaBiosBinary;
     6449        PVM pVM = PDMDevHlpGetVM(pDevIns);
     6450        CPUMMICROARCH enmMicroarch = pVM ? pVM->cpum.ro.GuestFeatures.enmMicroarch : kCpumMicroarch_Intel_P6;
     6451        if (   enmMicroarch == kCpumMicroarch_Intel_8086
     6452            || enmMicroarch == kCpumMicroarch_Intel_80186
     6453            || enmMicroarch == kCpumMicroarch_NEC_V20
     6454            || enmMicroarch == kCpumMicroarch_NEC_V30)
     6455        {
     6456            pbVgaBiosBinary = g_abVgaBiosBinary8086;
     6457            cbVgaBiosBinary = g_cbVgaBiosBinary8086;
     6458            LogRel(("VGA: Using the 8086 BIOS image!\n"));
     6459        }
     6460        else if (enmMicroarch == kCpumMicroarch_Intel_80286)
     6461        {
     6462            pbVgaBiosBinary = g_abVgaBiosBinary286;
     6463            cbVgaBiosBinary = g_cbVgaBiosBinary286;
     6464            LogRel(("VGA: Using the 286 BIOS image!\n"));
     6465        }
     6466        else
     6467        {
     6468            pbVgaBiosBinary = g_abVgaBiosBinary386;
     6469            cbVgaBiosBinary = g_cbVgaBiosBinary386;
     6470            LogRel(("VGA: Using the 386+ BIOS image.\n"));
     6471        }
    64516472        fFlags          = PGMPHYS_ROM_FLAGS_PERMANENT_BINARY;
    64526473    }
     
    64576478    }
    64586479
    6459     AssertReleaseMsg(g_cbVgaBiosBinary <= _64K && g_cbVgaBiosBinary >= 32*_1K, ("g_cbVgaBiosBinary=%#x\n", g_cbVgaBiosBinary));
    6460     AssertReleaseMsg(RT_ALIGN_Z(g_cbVgaBiosBinary, PAGE_SIZE) == g_cbVgaBiosBinary, ("g_cbVgaBiosBinary=%#x\n", g_cbVgaBiosBinary));
     6480    AssertReleaseMsg(cbVgaBiosBinary <= _64K && cbVgaBiosBinary >= 32*_1K, ("cbVgaBiosBinary=%#x\n", cbVgaBiosBinary));
     6481    AssertReleaseMsg(RT_ALIGN_Z(cbVgaBiosBinary, PAGE_SIZE) == cbVgaBiosBinary, ("cbVgaBiosBinary=%#x\n", cbVgaBiosBinary));
    64616482    /* Note! Because of old saved states we'll always register at least 36KB of ROM. */
    64626483    rc = PDMDevHlpROMRegister(pDevIns, 0x000c0000, RT_MAX(cbVgaBiosBinary, 36*_1K), pbVgaBiosBinary, cbVgaBiosBinary,
Note: See TracChangeset for help on using the changeset viewer.

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