VirtualBox

Changeset 73135 in vbox for trunk/src/VBox/Devices/testcase


Ignore:
Timestamp:
Jul 15, 2018 4:43:16 PM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
123723
Message:

Serial: Split out the generic UART functionality into a separate module so it can be reused.

Add a PCI Express 16 port UART controller emulation based on the Oxford Semiconductor OXPCIe958
PCI Express to octa UART controller (supports chaining two of those together in a single device
to get up to 16 UARTs). This somewhat revives the incomplete and never enabled PCI UART controller
in the old code. Linux detects the device and apparently configures all 16 UARTs but data transfers
were not tested and the code is pretty incomplete still.

Location:
trunk/src/VBox/Devices/testcase
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/testcase/tstDeviceStructSize.cpp

    r72119 r73135  
    114114#else
    115115# include "../Serial/DevSerialNew.cpp"
     116# include "../Serial/DevOxPcie958.cpp"
    116117#endif
    117118#ifdef VBOX_WITH_AHCI
     
    400401    CHECK_MEMBER_ALIGNMENT(SerialState, CritSect, 8);
    401402#else
    402     CHECK_MEMBER_ALIGNMENT(DEVSERIAL, CritSect, 8);
     403    CHECK_MEMBER_ALIGNMENT(DEVSERIAL, UartCore, 8);
     404    CHECK_MEMBER_ALIGNMENT(UARTCORE, CritSect, 8);
    403405#endif
    404406#ifdef VBOX_WITH_VMSVGA
  • trunk/src/VBox/Devices/testcase/tstDeviceStructSizeRC.cpp

    r72407 r73135  
    113113#else
    114114# include "../Serial/DevSerialNew.cpp"
     115# include "../Serial/DevOxPcie958.cpp"
     116# include "../Serial/UartCore.h"
    115117#endif
    116118#ifdef VBOX_WITH_AHCI
     
    13171319    GEN_CHECK_OFF(SerialState, char_transmit_time);
    13181320#else
     1321    /* Serial/UartCore.cpp */
     1322    GEN_CHECK_SIZE(UARTCORE);
     1323    GEN_CHECK_OFF(UARTCORE, CritSect);
     1324    GEN_CHECK_OFF(UARTCORE, pDevInsR3);
     1325    GEN_CHECK_OFF(UARTCORE, pDevInsR0);
     1326    GEN_CHECK_OFF(UARTCORE, pDevInsRC);
     1327    GEN_CHECK_OFF(UARTCORE, iLUN);
     1328    GEN_CHECK_OFF(UARTCORE, IBase);
     1329    GEN_CHECK_OFF(UARTCORE, ISerialPort);
     1330    GEN_CHECK_OFF(UARTCORE, pDrvBase);
     1331    GEN_CHECK_OFF(UARTCORE, pDrvSerial);
     1332    GEN_CHECK_OFF(UARTCORE, fFlags);
     1333    GEN_CHECK_OFF(UARTCORE, enmType);
     1334    GEN_CHECK_OFF(UARTCORE, pfnUartIrqReqR3);
     1335    GEN_CHECK_OFF(UARTCORE, pfnUartIrqReqR0);
     1336    GEN_CHECK_OFF(UARTCORE, pfnUartIrqReqRC);
     1337    GEN_CHECK_OFF(UARTCORE, uRegDivisor);
     1338    GEN_CHECK_OFF(UARTCORE, uRegRbr);
     1339    GEN_CHECK_OFF(UARTCORE, uRegThr);
     1340    GEN_CHECK_OFF(UARTCORE, uRegIer);
     1341    GEN_CHECK_OFF(UARTCORE, uRegIir);
     1342    GEN_CHECK_OFF(UARTCORE, uRegFcr);
     1343    GEN_CHECK_OFF(UARTCORE, uRegLcr);
     1344    GEN_CHECK_OFF(UARTCORE, uRegMcr);
     1345    GEN_CHECK_OFF(UARTCORE, uRegLsr);
     1346    GEN_CHECK_OFF(UARTCORE, uRegMsr);
     1347    GEN_CHECK_OFF(UARTCORE, uRegScr);
     1348    GEN_CHECK_OFF(UARTCORE, FifoXmit);
     1349    GEN_CHECK_OFF(UARTCORE, FifoRecv);
     1350    GEN_CHECK_OFF(UARTCORE, cbAvailRdr);
     1351
    13191352    /* Serial/DevSerialNew.cpp */
    13201353    GEN_CHECK_SIZE(DEVSERIAL);
    1321     GEN_CHECK_OFF(DEVSERIAL, CritSect);
    13221354    GEN_CHECK_OFF(DEVSERIAL, pDevInsR3);
    13231355    GEN_CHECK_OFF(DEVSERIAL, pDevInsR0);
    13241356    GEN_CHECK_OFF(DEVSERIAL, pDevInsRC);
    1325     GEN_CHECK_OFF(DEVSERIAL, IBase);
    1326     GEN_CHECK_OFF(DEVSERIAL, ISerialPort);
    1327     GEN_CHECK_OFF(DEVSERIAL, pDrvBase);
    1328     GEN_CHECK_OFF(DEVSERIAL, pDrvSerial);
    13291357    GEN_CHECK_OFF(DEVSERIAL, fR0Enabled);
    13301358    GEN_CHECK_OFF(DEVSERIAL, fRCEnabled);
    1331     GEN_CHECK_OFF(DEVSERIAL, f16550AEnabled);
    1332     GEN_CHECK_OFF(DEVSERIAL, fYieldOnLSRRead);
    13331359    GEN_CHECK_OFF(DEVSERIAL, uIrq);
    13341360    GEN_CHECK_OFF(DEVSERIAL, PortBase);
    1335     GEN_CHECK_OFF(DEVSERIAL, uRegDivisor);
    1336     GEN_CHECK_OFF(DEVSERIAL, uRegRbr);
    1337     GEN_CHECK_OFF(DEVSERIAL, uRegThr);
    1338     GEN_CHECK_OFF(DEVSERIAL, uRegIer);
    1339     GEN_CHECK_OFF(DEVSERIAL, uRegIir);
    1340     GEN_CHECK_OFF(DEVSERIAL, uRegFcr);
    1341     GEN_CHECK_OFF(DEVSERIAL, uRegLcr);
    1342     GEN_CHECK_OFF(DEVSERIAL, uRegMcr);
    1343     GEN_CHECK_OFF(DEVSERIAL, uRegLsr);
    1344     GEN_CHECK_OFF(DEVSERIAL, uRegMsr);
    1345     GEN_CHECK_OFF(DEVSERIAL, uRegScr);
    1346     GEN_CHECK_OFF(DEVSERIAL, FifoXmit);
    1347     GEN_CHECK_OFF(DEVSERIAL, FifoRecv);
    1348     GEN_CHECK_OFF(DEVSERIAL, cbAvailRdr);
     1361    GEN_CHECK_OFF(DEVSERIAL, UartCore);
     1362
     1363    /* Serial/DevOxPcie958.cpp */
     1364    GEN_CHECK_SIZE(DEVOX958);
     1365    GEN_CHECK_OFF(DEVOX958, PciDev);
     1366    GEN_CHECK_OFF(DEVOX958, pDevInsR3);
     1367    GEN_CHECK_OFF(DEVOX958, pDevInsR0);
     1368    GEN_CHECK_OFF(DEVOX958, pDevInsRC);
     1369    GEN_CHECK_OFF(DEVOX958, fR0Enabled);
     1370    GEN_CHECK_OFF(DEVOX958, fRCEnabled);
     1371    GEN_CHECK_OFF(DEVOX958, u32RegIrqStsGlob);
     1372    GEN_CHECK_OFF(DEVOX958, u32RegIrqEnGlob);
     1373    GEN_CHECK_OFF(DEVOX958, u32RegIrqEnWake);
     1374    GEN_CHECK_OFF(DEVOX958, cUarts);
     1375    GEN_CHECK_OFF(DEVOX958, GCPhysMMIO);
     1376    GEN_CHECK_OFF(DEVOX958, aUarts);
     1377    GEN_CHECK_OFF(DEVOX958, aUarts[OX958_UARTS_MAX - 1]);
    13491378#endif
    13501379
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