# US 11,442,767 B2 · Virtual serial ports for virtual machines

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,442,767 B2
- Document ID: US11442767B2
- Status: Granted
- Kind: B2
- Application number: 16/803,293
- Filed: 2020-02-27
- Published: 2021-09-02
- Granted: 2022-09-13
- Earliest claimed: 2020-02-27
- Assignees: Hewlett Packard Enterprise Development LP
- Applicants: Hewlett Packard Enterprise Development LP
- Inventors: Robert C. Elliott; Theodore F. Emerson
- Web page: https://patentgrep.com/patent/US11442767B2

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 1/3203: Power management, i.e. event-based initiation of a power-saving mode
- G06F 9/30101: {Special purpose registers}
- G06F 9/544: {Buffers; Shared memory; Pipes}
- G06F 13/4282: {on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247)}
- G06F 2009/45579: {I/O management, e.g. providing access to device drivers or storage}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

In some examples, a storage medium to stores information indicating address locations of virtual serial ports, where the virtual serial ports are associated with respective virtual machines (VMs). A controller that is separate from a hypervisor is to detect, based on the information, an access of a first virtual serial port associated with a first VM of the plurality of VMs, and communicate data between the first VM and another entity through the first virtual serial port.

## Claims

### Claim 1

A system comprising:
a storage medium to store information indicating address locations of virtual serial ports, wherein the virtual serial ports are associated with respective virtual machines (VMs) of a plurality of VMs;
a hypervisor; and
a controller that is separate from the hypervisor, the controller to:
provide virtual functions (VFs) assigned to the respective VMs, wherein the virtual serial ports are associated with the VFs, and the VFs correspond to virtual serial port controllers that control communications of the virtual serial ports, and wherein the VFs are configurable to different types of virtual serial port controllers associated with first-in-first-out (FIFO) buffers of different sizes,
detect, based on the information, an access of a first virtual serial port associated with a first VM of the plurality of VMs, and
communicate data between the first VM and another entity through the first virtual serial port.

### Claim 2 (depends on 1)

The system of claim 1, wherein the detection of the access of the first virtual serial port comprises a detection of a write to a register associated with the first virtual serial port.

### Claim 3 (depends on 2)

The system of claim 2, wherein the information indicates the address locations of respective register sets of the virtual serial ports.

### Claim 4 (depends on 3)

The system of claim 3, wherein the respective register sets are in an input/output (I/O) address space.

### Claim 5 (depends on 3)

The system of claim 3, wherein the respective register sets are in a memory address space.

### Claim 6 (depends on 1)

The system of claim 1, wherein the information comprises a base address register (BAR) containing a memory address for deriving addresses for the virtual serial ports.

### Claim 7 (depends on 1)

The system of claim 1, wherein the information comprises Advanced Configuration and Power Interface (ACPI) information.

### Claim 8 (depends on 1)

The system of claim 1, wherein the controller is a baseboard management controller.

### Claim 9 (depends on 1)

The system of claim 1, wherein the virtual serial port controllers comprise virtual universal asynchronous receiver-transmitters (vUARTs).

### Claim 10 (depends on 1)

The system of claim 1, wherein each VF of the VFs has a base class/subclass/programming interface set to a serial port controller.

### Claim 11 (depends on 1)

The system of claim 1, wherein the hypervisor is to assign the VFs to the respective VMs.

### Claim 12 (depends on 1)

The system of claim 1, wherein the hypervisor is to associate multiple virtual serial ports with a given VM of the plurality of VMs.

### Claim 13 (depends on 1)

The system of claim 1, wherein the information is based on input from a kernel command line of a guest operating system of a VM of the plurality of VMs.

### Claim 14 (depends on 1)

The system of claim 1, further comprising a bus, the controller comprising a bus device connected to the bus.

### Claim 15

A non-transitory machine-readable storage medium comprising instructions that upon execution cause a controller to:
access information indicating address locations of register sets of virtual serial ports, wherein the virtual serial ports are associated with respective virtual machines (VMs) of a plurality of VMs, wherein the register sets are associated with respective virtual functions (VFs) provided by the controller, and wherein each VF of the VFs has a base class/subclass/programming interface set to a serial port controller;
detect, based on the information, a write of a register in a register set of the virtual serial port associated with a first VM of the plurality of VMs; and
in response to the detecting, communicate data between the first VM and another entity through the virtual serial port associated with the first VM, without performing serial port emulation by a hypervisor.

### Claim 16

A method comprising:
storing information indicating address locations of virtual serial ports, wherein the virtual serial ports are associated with respective virtual machines (VMs) of a plurality of VMs;
providing, by a controller, virtual functions (VFs) assigned to the respective VMs, wherein the virtual serial ports are associated with the VFs, and the VFs correspond to virtual serial port controllers that control communications of the virtual serial ports, and wherein the VFs are configurable to different types of virtual serial port controllers associated with first-in-first-out (FIFO) buffers of different sizes;
detecting, based on the information by the controller, an access of a first virtual serial port associated with a first VM of the plurality of VMs; and
communicating, by the controller, data between the first VM and another entity through the first virtual serial port.

### Claim 17 (depends on 16)

The method of claim 16, wherein the information indicates addresses of respective register sets of the virtual serial ports.

### Claim 18 (depends on 15)

The non-transitory machine-readable storage medium of claim 15, wherein the information comprises a memory address in a base address register (BAR), the memory address in the BAR useable to derive addresses of the register sets.

### Claim 19 (depends on 15)

The non-transitory machine-readable storage medium of claim 15, wherein the VFs are configurable to different types of virtual serial port controllers associated with first-in-first-out (FIFO) buffers of different sizes.

### Claim 20 (depends on 16)

The method of claim 16, wherein each VF of the VFs has a base class/subclass/programming interface set to a serial port controller.
