IP Library Granted Patent US 8,490,116
Granted Patent B2
US 8,490,116 · App. 13/190,343 · Granted Jul 16, 2013

Emulating legacy video using UEFI

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,490,116
App. No.
13/190,343
Granted
Jul 16, 2013
Kind
B2
Abstract

Techniques for supporting legacy VGA video using UEFI standard and extended UEFI graphics drivers. When an operating system that does not natively support the UEFI display protocols requires video services provided by firmware, the operating system communicates a request for video services to a generic video option ROM. The generic video option ROM notifies a generic video SMM driver of the request for video services. Such notification may be performed using a software system management interrupt (SMI). Upon notification, the generic video SMM driver notifies a third party UEFI video driver of the request for video services. The third party video driver provides the requested video services to the operating system. In this way, a third party UEFI graphics driver may support a wide variety of operating systems, even those that do not natively support the UEFI display protocols.

Claims (51)

1. A non-transitory machine-readable storage medium storing one or more sequences of instructions, which when executed, cause:

upon an operating system requiring video services provided by firmware, the operating system communicating a request for video services to a generic video option ROM, wherein the operating system does not natively support the UEFI display protocols;

the generic video option ROM notifying a generic video SMM driver of the request for video services;

the generic video SMM driver notifying a third party UEFI video driver of the request for video services; and

the third party UEFI video driver providing the requested video services to the operating system.

2. The non-transitory machine-readable storage medium of claim 1 , wherein the generic video option ROM notifies the generic video SMM driver of the request for video services by issuing a system management interrupt (SMI).

3. The non-transitory machine-readable storage medium of claim 1 , further comprising:

prior to the operating system communicating the request for the video services, (a) initializing the generic video option ROM and (b) initializing the generic video SMM driver.

4. The non-transitory machine-readable storage medium of claim 3 , wherein initializing the generic video SMM driver includes:

locating instances of a graphics output protocol installed on a computer system upon which the operating system resides; and

allocating a software system management interrupt (SMI) command-port value.

5. The non-transitory machine-readable storage medium of claim 3 , wherein initializing the generic video option ROM includes:

recording a software system management interrupt (SMI) command-port value;

discovering attributes of graphics output devices; and

updating a real-mode interrupt vector table.

6. The non-transitory machine-readable storage medium of claim 1 , wherein the request for video services is a request to access a hardware text buffer.

7. The non-transitory machine-readable storage medium of claim 1 , wherein the request for video services is a request to access a graphic device's frame buffer.

8. The non-transitory machine-readable storage medium of claim 1 , further comprising:

a third party SMM UEFI video driver changing a video mode in response to the request for video services, wherein the third party SMM UEFI video driver is not the third party UEFI video driver.

9. The non-transitory machine-readable storage medium of claim 1 , wherein the generic video SMM driver determines a pixel that would have been updated in an emulated VGA mode and makes a corresponding update in a frame buffer for a graphic device.

10. The non-transitory machine-readable storage medium of claim 1 , further comprising:

periodically scanning for changes in a memory region that corresponds to a VGA graphics buffer to determine what changes should be made in a frame buffer of a graphic device.

11. A method for firmware to support legacy operating systems, comprising:

upon an operating system requiring video services provided by the firmware, the operating system communicating a request for video services to a generic video option ROM, wherein the operating system does not natively support the UEFI display protocols;

the generic video option ROM notifying a generic video SMM driver of the request for video services;

the generic video SMM driver notifying a third party UEFI video driver of the request for video services; and

the third party UEFI video driver providing the requested video services to the operating system.

12. The method of claim 11 , wherein the generic video option ROM notifies the generic video SMM driver of the request for video services by issuing a system management interrupt (SMI).

13. The method of claim 11 , further comprising:

prior to the operating system communicating the request for the video services, (a) initializing the generic video option ROM and (b) initializing the generic video SMM driver.

14. The method of claim 13 , wherein initializing the generic video SMM driver includes:

locating instances of a graphics output protocol installed on a computer system upon which the operating system resides; and

allocating a software system management interrupt (SMI) command-port value.

15. The method of claim 13 , wherein initializing the generic video option ROM includes:

recording a software system management interrupt (SMI) command-port value;

discovering attributes of graphics output devices; and

updating a real-mode interrupt vector table.

16. The method of claim 11 , wherein the request for video services is a request to access a hardware text buffer.

17. The method of claim 11 , wherein the request for video services is a request to access a graphic device's frame buffer.

18. The method of claim 11 , further comprising:

a third party SMM UEFI video driver changing a video mode in response to the request for video services, wherein the third party SMM UEFI video driver is not the third party UEFI video driver.

19. The method of claim 11 , wherein the generic video SMM driver determines a pixel that would have been updated in an emulated VGA mode and makes a corresponding update in a frame buffer for a graphic device.

20. The method of claim 11 , further comprising:

periodically scanning for changes in a memory region that corresponds to a VGA graphics buffer to determine what changes should be made in a frame buffer of a graphic device.

21. A computer system, comprising:

one or more processors; and

a machine-readable storage medium storing one or more sequences of instructions, which when executed by the one or more processors, cause:

upon an operating system requiring video services provided by firmware, the operating system communicating a request for video services to a generic video option ROM, wherein the operating system does not natively support the UEFI display protocols;

the generic video option ROM notifying a generic video SMM driver of the request for video services;

the generic video SMM driver notifying a third party UEFI video driver of the request for video services; and

the third party UEFI video driver providing the requested video services to the operating system.

Assignments (6)
CHANGE OF NAME Recorded Aug 17, 2021
From: SANTERA EMEA LTD.
To: PHOENIX TECHNOLOGIES EMEA LIMITED
Reel/Frame 057199/0594 →
RELEASE OF SECURITY INTEREST Recorded Jan 12, 2021
From: CERBERUS BUSINESS FINANCE, LLC
To: PHOENIX TECHNOLOGIES, LTD.
Reel/Frame 054891/0928 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2021
From: PHOENIX TECHNOLOGIES LTD.
To: SANTERA EMEA LTD.
Reel/Frame 054893/0734 →
CHANGE OF ADDRESS Recorded Nov 26, 2019
From: PHOENIX TECHNOLOGIES LTD.
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 051135/0389 →
IP SECURITY AGREEMENT - PATENTS Recorded Sep 30, 2013
From: PHOENIX TECHNOLOGIES LTD.
To: CERBERUS BUSINESS FINANCE, LLC, AS COLLATERAL AGENT
Reel/Frame 031315/0700 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2011
From: UELTSCHEY III, CHARLES MARION; LEWIS, TIMOTHY ANDREW
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 026644/0963 →