VirtualBox

Ignore:
Timestamp:
Mar 31, 2025 11:31:09 AM (5 weeks ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
168237
Message:

Devices/EFI/FirmwareNew: Merge edk2-stable202502 from the vendor branch and make it build for the important platforms, bugref:4643

Location:
trunk/src/VBox/Devices/EFI/FirmwareNew
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/EFI/FirmwareNew

  • trunk/src/VBox/Devices/EFI/FirmwareNew/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatform.c

    r99404 r108794  
    2727  NULL
    2828};
     29
     30//
     31// Values from Usb Inteface Association Descriptor Device
     32//  Class Code and Usage Model specification (iadclasscode_r10.pdf)
     33//  from Usb.org
     34//
     35#define USB_BASE_CLASS_MISCELLANEOUS       0xEF
     36#define USB_MISCELLANEOUS_SUBCLASS_COMMON  0x02
     37#define USB_MISCELLANEOUS_PROTOCOL_IAD     0x01
    2938
    3039/**
     
    809818  DeviceSubClass = DevDesc.DeviceSubClass;
    810819  DeviceProtocol = DevDesc.DeviceProtocol;
    811   if (DeviceClass == 0) {
    812     //
    813     // If Class in Device Descriptor is set to 0, use the Class, SubClass and
    814     // Protocol in Interface Descriptor instead.
     820
     821  if ((DeviceClass == 0) ||
     822      ((DeviceClass == USB_BASE_CLASS_MISCELLANEOUS) &&
     823       (DeviceSubClass == USB_MISCELLANEOUS_SUBCLASS_COMMON) &&
     824       (DeviceProtocol == USB_MISCELLANEOUS_PROTOCOL_IAD)))
     825  {
     826    //
     827    // If Class in Device Descriptor is set to 0 (Device), or
     828    // Class/SubClass/Protocol is 0xEF/0x02/0x01 (IAD), use the Class, SubClass
     829    // and Protocol in Interface Descriptor instead.
    815830    //
    816831    Status = UsbIo->UsbGetInterfaceDescriptor (UsbIo, &IfDesc);
  • trunk/src/VBox/Devices/EFI/FirmwareNew/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.h

    r105670 r108794  
    12171217  +=========+======+===========+=============+=============+=============+=========+
    12181218  |         | EFI  |           |             |             |             |         |
    1219   |         | Scan |           |             |  Normal     |             |         |
    1220   |   KEY   | Code |  VT100+   | Xterm R6    |  VT400      | Linux       | SCO     |
     1219  |         | Scan |  VT100+   |             |  Normal     |             |         |
     1220  |   KEY   | Code |  VTUTF8   | Xterm R6    |  VT400      | Linux       | SCO     |
    12211221  +=========+======+===========+=============+=============+=============+=========+
    12221222  | F1      | 0x0B | ESC O P   | ESC O P     | ESC [ 1 1 ~ | ESC [ [ A   | ESC [ M |
  • trunk/src/VBox/Devices/EFI/FirmwareNew/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConIn.c

    r105670 r108794  
    9494      TerminalDevice->DevicePath
    9595      );
     96  }
     97
     98  if (!EFI_ERROR (Status)) {
     99    Status = TerminalDevice->SerialIo->SetControl (TerminalDevice->SerialIo, EFI_SERIAL_DATA_TERMINAL_READY|EFI_SERIAL_REQUEST_TO_SEND);
     100    if (Status == EFI_UNSUPPORTED) {
     101      Status = EFI_SUCCESS;
     102    }
    96103  }
    97104
     
    13141321  +=========+======+===========+=============+=============+=============+=========+
    13151322  |         | EFI  |           |             |             |             |         |
    1316   |         | Scan |           |             |  Normal     |             |         |
    1317   |   KEY   | Code |  VT100+   | Xterm R6    |  VT400      | Linux       | SCO     |
     1323  |         | Scan |  VT100+   |             |  Normal     |             |         |
     1324  |   KEY   | Code |  VTUTF8   | Xterm R6    |  VT400      | Linux       | SCO     |
    13181325  +=========+======+===========+=============+=============+=============+=========+
    13191326  | F1      | 0x0B | ESC O P   | ESC O P     | ESC [ 1 1 ~ | ESC [ [ A   | ESC [ M |
     
    13921399                                     (TerminalDevice->TerminalType == TerminalTypeTtyTerm) ||
    13931400                                     (TerminalDevice->TerminalType == TerminalTypeXtermR6) ||
    1394                                      (TerminalDevice->TerminalType == TerminalTypeVt100Plus)))
     1401                                     (TerminalDevice->TerminalType == TerminalTypeVt100Plus) ||
     1402                                     (TerminalDevice->TerminalType == TerminalTypeVtUtf8)))
    13951403        {
    13961404          TerminalDevice->InputState |= INPUT_STATE_O;
     
    15661574              break;
    15671575          }
    1568         } else if (TerminalDevice->TerminalType == TerminalTypeVt100Plus) {
     1576        } else if ((TerminalDevice->TerminalType == TerminalTypeVt100Plus) ||
     1577                   (TerminalDevice->TerminalType == TerminalTypeVtUtf8))
     1578        {
    15691579          switch (UnicodeChar) {
    15701580            case 'P':
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