IP Library Granted Patent US 7,596,685
Granted Patent B2
US 7,596,685 · App. 11/821,622 · Granted Sep 29, 2009

Apparatus and method for building, storing, uploading, relocating and executing DOS based software module during system startup time

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,596,685
App. No.
11/821,622
Granted
Sep 29, 2009
Kind
B2
Abstract

The present invention provides a method of packaging, storing, uploading, and executing a DOS based software module capable for being utilized as applications of a PCI device. The present invention may deliver both a binary image and a DOS executable of an application provided by the PCI device. The DOS executable may be utilized by a source level debugger for the development of the application of the PCI device as any changes to the configuration utility can easily be viewed, debugged and corrected. As a result, testing changes become simple operation that does not require building a bundled binary image with the PCI option ROM. The present invention may provide a method for additional modules to be utilized during system startup time. Further, the present invention may provide an independent tool running under DOS without the presence of the PCI option ROM. Independent DOS executable module may be used to demonstrate the application for internal reviews.

Claims (40)

1. A method for loading, reloading and executing a plurality of software modules of an application of a PCI device during system startup time, comprising:

uploading image headers from non-volatile memory of the PCI device;

allocating space for a first software module to be loaded;

uploading the first software module from the non-volatile memory into system memory;

relocating the uploaded first software module,

wherein a relocation table is utilized; and

determining initial values of registers and setting up the registers and the system memory,

wherein the plurality of software modules include the first software module and a second software module, and the first software module and a PCI option ROM BIOS of the PCI are a firmware image of the PCI device; and

wherein the first software module is an application firmware image, and the second software module is a DOS executable image.

2. The method as described in claim 1 , further comprising:

creating a program segment prefix,

wherein the program segment prefix is required by the second software module to run.

3. The method as described in claim 1 , further comprising:

receiving a user selection to invoke the application.

4. The method as descried in claim 3 , further comprising:

displaying a message to receive the user selection when a system BIOS loads a PCI option ROM of the PCI device.

5. The method as described in claim 4 , wherein the user selection is a key sequence.

6. The method as described in claim 1 , wherein the relocation table is included in a second software module header.

7. The method as described in claim 1 , further comprising:

providing a list of adapters in order for the application to manage.

8. The method as described in claim 1 , wherein the non-volatile memory is flash ROM of the PCI device controller.

9. A system for loading, reloading and executing a configuration utility of a PCI device during system startup time, comprising:

means for receiving a user request to invoke the configuration utility;

means for executing a firmware upload command to upload a DOS executable header and a configuration utility firmware header from non-volatile memory,

wherein a DOS executable header and a configuration utility firmware header are uploaded into system memory;

means for allocating space for a configuration utility firmware to be loaded;

means for uploading the configuration utility firmware from the non-volatile memory into system memory;

means for creating a program segment prefix,

wherein the program segment prefix is required by a DOS executable to run;

means for relocating the uploaded configuration utility,

wherein a relocation table present in the DOS executable header is utilized;

means for determining initial values of the registers; and

setting up the registers and the system memory,

wherein a DOS executable image is loaded to be the DOS executable, a configuration utility firmware image is loaded to be the configuration utility firmware, and the DOS executable image, the configuration utility firmware image, and a PCI option ROM BIOS of the PCI have been stored on the PCI device.

10. The system as described in claim 9 , further comprising:

displaying a message to ask the user selection when a system BIOS loads a PCI option ROM of the PCI device.

11. The system as described in claim 10 , wherein the user selection is a key sequence.

12. The system as described in claim 9 , further comprising:

means for providing a list of adapters in order for configuration utility to manage.

13. The system as described in claim 9 , wherein the non-volatile memory includes Flash ROM, EEPROM, EPROM and battery backed RAM.

Assignments (6)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035390/0388 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
MERGER Recorded Feb 19, 2008
From: LSI SUBSIDIARY CORP.
To: LSI CORPORATION
Reel/Frame 020548/0977 →