IP Library Granted Patent US 7,461,247
Granted Patent B2
US 7,461,247 · App. 11/145,373 · Granted Dec 2, 2008

Method for transitioning control of a peripheral device from a first device driver to a second device driver during operating system initialization

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 7,461,247
App. No.
11/145,373
Granted
Dec 2, 2008
Kind
B2
Abstract

A system for meeting demanding boot time requirements, such as those timing requirement mandated by vehicle telematics systems, is described. Current computer systems use expensive hardware like coprocessors to service requests, such as input/output requests, that have timing requirements which are less than the time required to load the operating system into memory. Instead, a mini-driver may be initialized early in the boot process before the operating system is loaded, to service these requests. For example, the mini-driver may buffer incoming data, and/or reply to incoming messages. After the operating system has loaded, a second device driver may be initialized, and the mini-driver may be transitioned to the second driver.

Claims (38)

1. A method for operating a computer system, the computer system including an operating system, memory, and at least one peripheral device, the method comprising:

loading a first device driver for the at least one peripheral device prior to loading the operating system, the first device driver operating to initialize the peripheral device and associate the peripheral device with an interrupt;

loading a second device driver for the at least one peripheral device after loading of the operating system;

transitioning control of the peripheral device to the second device driver by

attaching the second device driver to the interrupt,

disabling the interrupt,

re-enabling the interrupt for use by the second driver, and

transferring data associated with the first driver to the second driver.

2. The method of claim 1 , where transitioning control of the peripheral device to the second device driver further comprises synchronizing the transferred data with data obtained by the second device driver.

3. The method of claim 1 , where the device driver is loaded before an image of the operating system is copied into memory.

4. A method for servicing at least an input/output request during the boot process of a computer system, the computer system including an operating system including a kernel module and at least one peripheral device, where the at least one peripheral device is responsive to input/output requests, the method comprising:

loading, prior to loading the kernel module, a first device driver associated with the at least one peripheral device, the device driver including

a handler for servicing the at least one input/output request, the handler callable throughout the boot process, and

a data manipulation component in communication with the handler and operable to manipulate data associated with the at least one input/output request;

loading a second device driver for the at least one peripheral after loading of the kernel module;

transitioning data manipulated by the data manipulation component to the second device driver;

creating a temporary exception table for servicing the input/output requests with the first device driver;

creating, by the kernel module, a second exception table for servicing the input/output requests with the second device driver; and

transitioning exception information from the temporary exception table to the second exception table.

5. A method for operating a computer system having an operating system and at least one peripheral component adapted to handle input and/or output data requests, the method comprising:

loading a first device driver for the at least one peripheral component to handle input and/or output data requests prior to loading of the operating system;

storing data received and/or transmitted using the first device driver;

loading a second device driver for the at least one peripheral device after loading the operating system;

transitioning control of the at least one peripheral device from the first device driver to the second device driver; and

transitioning the data received and/or transmitted using the first device driver to the second device driver.

6. The method of claim 5 , where the first device driver is responsive to a first triggering mechanism and the second device driver is responsive to a second triggering mechanism, where the first and second during mechanisms differ from one another.

7. The method of claim 6 , where transitioning control comprises transitioning control from the first triggering mechanism to the second triggering mechanism.

8. The method of claim 5 , where the first device driver is responsive to a first triggering mechanism and the second device driver is responsive to a second triggering mechanism, where the first and second during mechanisms are substantially identical.

9. The method of claim 5 , where the first and second device drivers are adapted to control messaging associated with the at least one peripheral device.

10. A method for operating a computer system having an operating system and at least one peripheral component adapted to handle input and/or output data requests associated with communications on a bus, the method comprising:

loading a first device driver for the at least one peripheral component to handle input and/or output data on the communications bus prior to loading of the operating system;

storing data received and/or transmitted using the first device driver;

loading a second device driver for the at least one peripheral device after loading the operating system;

transitioning control of the at least one peripheral device from the first device driver to the second device driver; and

transitioning the data received and/or transmitted using the first device driver to the second device driver.

11. The method of claim 10 , where the first device driver is responsive to a first triggering mechanism and the second device driver is responsive to a second triggering mechanism, where the first and second during mechanisms differ from one another.

12. The method of claim 11 , where transitioning control comprises transitioning control from the first triggering mechanism to the second triggering mechanism.

13. The method of claim 10 , where the first device driver is responsive to a first triggering mechanism and the second device driver is responsive to a second triggering mechanism, where the first and second during mechanisms are substantially identical.

Assignments (14)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2020
From: 2236008 ONTARIO INC.
To: BLACKBERRY LIMITED
Reel/Frame 053313/0315 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: QNX SOFTWARE SYSTEMS LIMITED
To: 8758271 CANADA INC.
Reel/Frame 032607/0943 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: 8758271 CANADA INC.
To: 2236008 ONTARIO INC.
Reel/Frame 032607/0674 →
CHANGE OF ADDRESS Recorded Feb 27, 2012
From: QNX SOFTWARE SYSTEMS LIMITED
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 027768/0961 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2011
From: 7801769 CANADA INC.
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 026883/0553 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: 7801769 CANADA INC.
Reel/Frame 026883/0544 →
REGISTRATION Recorded Feb 28, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 025863/0398 →
CHANGE OF SEAT Recorded Feb 28, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 025863/0434 →
PARTIAL RELEASE OF SECURITY INTEREST Recorded Jun 3, 2010
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED; QNX SOFTWARE SYSTEMS (WAVEMAKERS), INC.; QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 024483/0045 →
SECURITY AGREEMENT Recorded May 8, 2009
From: HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED; BECKER SERVICE-UND VERWALTUNG GMBH; CROWN AUDIO, INC.; HARMAN BECKER AUTOMOTIVE SYSTEMS (MICHIGAN), INC.; HARMAN BECKER AUTOMOTIVE SYSTEMS HOLDING GMBH; HARMAN BECKER AUTOMOTIVE SYSTEMS, INC.; HARMAN CONSUMER GROUP, INC.; HARMAN DEUTSCHLAND GMBH; HARMAN FINANCIAL GROUP LLC; HARMAN HOLDING GMBH & CO. KG; HARMAN MUSIC GROUP, INCORPORATED; HARMAN SOFTWARE TECHNOLOGY INTERNATIONAL BETEILIGUNGS GMBH; HARMAN SOFTWARE TECHNOLOGY MANAGEMENT GMBH; HBAS INTERNATIONAL GMBH; HBAS MANUFACTURING, INC.; INNOVATIVE SYSTEMS GMBH NAVIGATION-MULTIMEDIA; JBL INCORPORATED; LEXICON, INCORPORATED; MARGI SYSTEMS, INC.; QNX SOFTWARE SYSTEMS (WAVEMAKERS), INC.; QNX SOFTWARE SYSTEMS CANADA CORPORATION; QNX SOFTWARE SYSTEMS CO.; QNX SOFTWARE SYSTEMS GMBH; QNX SOFTWARE SYSTEMS GMBH & CO. KG; QNX SOFTWARE SYSTEMS INTERNATIONAL CORPORATION; QNX SOFTWARE SYSTEMS, INC.; XS EMBEDDED GMBH (F/K/A HARMAN BECKER MEDIA DRIVE TECHNOLOGY GMBH)
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 022659/0743 →
CHANGE OF NAME Recorded Sep 12, 2006
From: QNX SOFTWARE SYSTEMS
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 018237/0293 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2006
From: VAN DER VEEN, PETER; ETHIER, SHERIDAN; STECHER, BRIAN; EDMOND, BRIAN
To: QNX SOFTWARE SYSTEMS
Reel/Frame 017203/0218 →