VirtualBox

Changeset 99216 in vbox for trunk/src/VBox/Frontends/VBoxBFE


Ignore:
Timestamp:
Mar 30, 2023 6:33:28 AM (23 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
156589
Message:

FE/VBoxBFE: Add serial andqemufirmware config device, bugref:10397

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxBFE/VBoxBFE.cpp

    r99080 r99216  
    8484static const char       *g_pszLoadMem       = NULL;
    8585static const char       *g_pszLoadDtb       = NULL;
     86static const char       *g_pszSerialLog     = NULL;
    8687
    8788/** @todo currently this is only set but never read. */
     
    269270     */
    270271    PCFGMNODE pDevices = NULL;
     272    PCFGMNODE pDev = NULL;          /* /Devices/Dev/ */
     273    PCFGMNODE pInst = NULL;         /* /Devices/Dev/0/ */
     274    PCFGMNODE pCfg = NULL;          /* /Devices/Dev/.../Config/ */
     275    PCFGMNODE pLunL0 = NULL;        /* /Devices/Dev/0/LUN#0/ */
     276    PCFGMNODE pLunL1 = NULL;        /* /Devices/Dev/0/LUN#0/AttachedDriver/ */
     277    PCFGMNODE pLunL1Cfg = NULL;     /* /Devices/Dev/0/LUN#0/AttachedDriver/Config */
     278
    271279    rc = pVMM->pfnCFGMR3InsertNode(pRoot, "Devices", &pDevices);                             UPDATE_RC();
     280
     281    rc = pVMM->pfnCFGMR3InsertNode(pDevices, "qemu-fw-cfg",   &pDev);                        UPDATE_RC();
     282    rc = pVMM->pfnCFGMR3InsertNode(pDev,     "0",            &pInst);                        UPDATE_RC();
     283    rc = pVMM->pfnCFGMR3InsertNode(pInst,    "Config",        &pCfg);                        UPDATE_RC();
     284    rc = pVMM->pfnCFGMR3InsertInteger(pCfg,  "MmioSize",       4096);                        UPDATE_RC();
     285    rc = pVMM->pfnCFGMR3InsertInteger(pCfg,  "MmioBase", 0x09020000);                        UPDATE_RC();
     286
     287    rc = pVMM->pfnCFGMR3InsertNode(pDevices, "arm-pl011",     &pDev);                        UPDATE_RC();
     288    rc = pVMM->pfnCFGMR3InsertNode(pDev,     "0",            &pInst);                        UPDATE_RC();
     289    rc = pVMM->pfnCFGMR3InsertNode(pInst,    "Config",        &pCfg);                        UPDATE_RC();
     290    rc = pVMM->pfnCFGMR3InsertInteger(pCfg,  "Irq",               1);                        UPDATE_RC();
     291    rc = pVMM->pfnCFGMR3InsertInteger(pCfg,  "MmioBase", 0x09000000);                        UPDATE_RC();
     292
     293    if (g_pszSerialLog)
     294    {
     295        rc = pVMM->pfnCFGMR3InsertNode(pInst,    "LUN#0",           &pLunL0);                UPDATE_RC();
     296        rc = pVMM->pfnCFGMR3InsertString(pLunL0, "Driver",          "Char");                 UPDATE_RC();
     297        rc = pVMM->pfnCFGMR3InsertNode(pLunL0,   "AttachedDriver",  &pLunL1);                UPDATE_RC();
     298        rc = pVMM->pfnCFGMR3InsertString(pLunL1, "Driver",          "RawFile");              UPDATE_RC();
     299        rc = pVMM->pfnCFGMR3InsertNode(pLunL1,    "Config",         &pLunL1Cfg);             UPDATE_RC();
     300        rc = pVMM->pfnCFGMR3InsertString(pLunL1Cfg, "Location",     g_pszSerialLog);         UPDATE_RC();
     301    }
     302
    272303
    273304#undef UPDATE_RC
     
    535566        { "--load-dtb",           'd', RTGETOPT_REQ_STRING },
    536567        { "--load-vmm",           'v', RTGETOPT_REQ_STRING },
     568        { "--serial-log",         's', RTGETOPT_REQ_STRING },
    537569    };
    538570
     
    562594            case 'v':
    563595                pszVmmMod = ValueUnion.psz;
     596                break;
     597            case 's':
     598                g_pszSerialLog = ValueUnion.psz;
    564599                break;
    565600            case '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