← Back to Patent Explorer
US5317723A Expired / Lapsed US ⏱️ 0.0 years remaining

System and method for automatically relocating and configuring firmware stored in subsystem modules

Assignee: Hewlett Packard Development Co LP
•
Filing: 1993-03-29
•
Granted: 1994-05-31
•
Expires: 2013-03-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system (30) can be configured with a plurality of subsystem modules (45a-45n), to tailor the system (30) to different requirements. CPU (32) is connected by a 32-bit, system bus (38) to a random access memory (RAM) (40), a cache (42) and an interface (44a) in graphics subsystem module (45a). Interface (44a) includes a module ROM (47a) containing firmware specific to such graphics subsystem modules. Similarly, each of the other subsystem modules (45b-45n) have interfaces (44b-44n) containing firmware specific to the particular type of module (45b-45n). The elements (32-42) of the system (30) comprise a base module (43), which is the same for all system configurations. A ROM (49) is provided in the base module (43), connected to the bus (38). The base module ROM (49) contains a software routine that locates all the option module ROMs (47a-47n) and, using the information in them creates a relocated version of the code in the option module ROMs (47a-47n) in the computer system's main memory (40). The relocated code will operate at any address in the computer's address space.

Inventors

  • 👤 A. Randall Heap
  • 👤 Eduardo A. Santiago

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 03:51
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/44; G06F9/4401; G06F9/4411

Claims Analysis

Total Claims: 13
Claim 1
Independent Claim 355 words
A computer system, comprising: a host data processor; a first memory, comprising a random access memory, coupled to said host data processor by a bus; a plurality of subsystem modules connected to said bus, wherein said plurality of subsystem modules are connectable to said bus in multiple different configurations; each of said plurality of subsystem modules including a respective read only memory (ROM) storing firmware specific to that one of said plurality of subsystem modules, said stored firmware in each subsystem module ROM including relocatable object code programs, and relocation data identifying memory cells in said relocatable object code programs whose value requires adjustment upon relocation of said relocatable object code programs, said relocation data including relocation type data specifying at least first, second and third types of value adjustments for respective ones of said identified memory cells in said relocatable object code programs; and a second memory coupled to said host data processor, said second memory storing an automatic reconfiguration program that is automatically executed by said host data processor whenever said computer is powered on; wherein said automatic reconfiguration program, when executed by said host data processor, allocates a region of said first memory to said relocatable object code programs in each said ROM, copies said relocatable object code programs from each said ROM into said allocated region of said first memory, retrieves said relocation data from said ROM in each of said subsystem modules, and adjusts the value of each memory cell in said copied object code programs identified by said relocation data in accordance with the predefined type of adjustment specified by said retrieved relocation data; said automatic reconfiguration program including means, when executed by said host data processor, for adjusting the value of each said identified memory cell in said copied object code programs by performing one of at least first, second and third distinct, predefined mathematical operations that combines each said identified memory cell with a relocation displacement value, wherein which one of said at least first, second and third distinct, predefined mathematical operations is performed on each said identified memory cell is specified by said relocation type data.
Claim 2
Dependent Claim 355 words
A computer system, comprising: a host data processor; a first memory, comprising a random access memory, coupled to said host data processor by a bus; a plurality of subsystem modules connected to said bus, wherein said plurality of subsystem modules are connectable to said bus in multiple different configurations; each of said plurality of subsystem modules including a respective read only memory (ROM) storing firmware specific to that one of said plurality of subsystem modules, said stored firmware in each subsystem module ROM including relocatable object code programs, and relocation data identifying memory cells in said relocatable object code programs whose value requires adjustment upon relocation of said relocatable object code programs, said relocation data including relocation type data specifying at least first, second and third types of value adjustments for respective ones of said identified memory cells in said relocatable object code programs; and a second memory coupled to said host data processor, said second memory storing an automatic reconfiguration program that is automatically executed by said host data processor whenever said computer is powered on; wherein said automatic reconfiguration program, when executed by said host data processor, allocates a region of said first memory to said relocatable object code programs in each said ROM, copies said relocatable object code programs from each said ROM into said allocated region of said first memory, retrieves said relocation data from said ROM in each of said subsystem modules, and adjusts the value of each memory cell in said copied object code programs identified by said relocation data in accordance with the predefined type of adjustment specified by said retrieved relocation data; said automatic reconfiguration program including means, when executed by said host data processor, for adjusting the value of each said identified memory cell in said copied object code programs by performing one of at least first, second and third distinct, predefined mathematical operations that combines each said identified memory cell with a relocation displacement value, wherein which one of said at least first, second and third distinct, predefined mathematical operations is performed on each said identified memory cell is specified by said relocation type data.
Claim 3
Dependent Claim 82 words
The computer system of claim 1, said automatic reconfiguration program including means, when executed by said host data processor, for adjusting the value of each said identified memory cell in said copied object code programs by performing one of a predefined plurality of mathematical operations that combines each said identified memory cell with a relocation displacement value, wherein which one of said predefined plurality of mathematical operations is performed on each said identified memory cell is specified by said retrieved relocation data.
Claim 4
Dependent Claim 57 words
The computer system of claim 1, wherein said first, second and third distinct, predefined mathematical operations comprise, respectively, adding said relocation displacement value to said identified memory cell, adding a first portion of said relocation displacement value to said identified memory cell, and adding a second portion of said relocation displacement value to said identified memory cell.
Claim 5
Dependent Claim 22 words
The computer system of claim 1, wherein said second memory is a read only memory (ROM) coupled to said host data processor.
Claim 6
Dependent Claim 395 words
A computer system, comprising: a host data processor; a first, random access, memory coupled to said host data processor by a bus; a plurality of subsystem modules connected to said bus, wherein said plurality of subsystem modules are connectable to said bus in multiple different configurations; each of said plurality of subsystem modules including a read only memory (ROM) storing firmware specific to that one of said plurality of subsystem modules, said stored firmware in each subsystem module ROM including relocatable object code programs, header data specifying the size of said relocatable object code programs, and relocation data; said relocation data identifying memory cells in said relocatable object code programs whose value requires adjustment upon relocation of said relocatable object code programs, said relocation data including relocation type data specifying at least first, second and third types of value adjustments for respective ones of said identified memory cells in said relocatable object code programs; and a second memory coupled to said host data processor, said second memory storing an automatic reconfiguration program that is automatically executed by said host data processor whenever said computer is powered on or reset; wherein said automatic reconfiguration program, when executed by said host data processor, retrieves said header data in said ROM in each of said subsystem modules to determine the size of said relocatable object code programs in each said ROM, allocates regions of said first memory to said relocatable object code programs in accordance with said retrieve header data, copies said relocatable object code programs from said ROMs into said allocated regions of said first memory, retrieves said relocation data from said ROM in each of said subsystem modules, and adjusts the value of each memory cell in said copied object code programs identified by said relocation data in accordance with the predefined type of adjustment specified by said retrieved relocation data; said automatic reconfiguration program including means, when executed by said host data processor, for adjusting the value of each said identified memory cell in said copied object code programs by performing one of at least first, second and third distinct, predefined mathematical operations that combines each said identified memory cell with a relocation displacement value, wherein which one of said at least first, second and third distinct, predefined mathematical operations is performed on each said identified memory cell is specified by said relocation type data.
Claim 7
Dependent Claim 395 words
A computer system, comprising: a host data processor; a first, random access, memory coupled to said host data processor by a bus; a plurality of subsystem modules connected to said bus, wherein said plurality of subsystem modules are connectable to said bus in multiple different configurations; each of said plurality of subsystem modules including a read only memory (ROM) storing firmware specific to that one of said plurality of subsystem modules, said stored firmware in each subsystem module ROM including relocatable object code programs, header data specifying the size of said relocatable object code programs, and relocation data; said relocation data identifying memory cells in said relocatable object code programs whose value requires adjustment upon relocation of said relocatable object code programs, said relocation data including relocation type data specifying at least first, second and third types of value adjustments for respective ones of said identified memory cells in said relocatable object code programs; and a second memory coupled to said host data processor, said second memory storing an automatic reconfiguration program that is automatically executed by said host data processor whenever said computer is powered on or reset; wherein said automatic reconfiguration program, when executed by said host data processor, retrieves said header data in said ROM in each of said subsystem modules to determine the size of said relocatable object code programs in each said ROM, allocates regions of said first memory to said relocatable object code programs in accordance with said retrieve header data, copies said relocatable object code programs from said ROMs into said allocated regions of said first memory, retrieves said relocation data from said ROM in each of said subsystem modules, and adjusts the value of each memory cell in said copied object code programs identified by said relocation data in accordance with the predefined type of adjustment specified by said retrieved relocation data; said automatic reconfiguration program including means, when executed by said host data processor, for adjusting the value of each said identified memory cell in said copied object code programs by performing one of at least first, second and third distinct, predefined mathematical operations that combines each said identified memory cell with a relocation displacement value, wherein which one of said at least first, second and third distinct, predefined mathematical operations is performed on each said identified memory cell is specified by said relocation type data.
Claim 8
Dependent Claim 82 words
The computer system of claim 5, said automatic reconfiguration program including means, when executed by said host data processor, for adjusting the value of each said identified memory cell in said copied object code programs by performing one of a predefined plurality of mathematical operations that combines each said identified memory cell with a relocation displacement value, wherein which one of said predefined plurality of mathematical operations is performed one each said identified memory cell is specified by said retrieved relocation data.
Claim 9
Dependent Claim 57 words
The computer system of claim 5, wherein said first, second and third distinct, predefined mathematical operations comprise, respectively, adding said relocation displacement value to said identified memory cell, adding a first portion of said relocation displacement value to said identified memory cell, and adding a second portion of said relocation displacement value to said identified memory cell.
Claim 10
Dependent Claim 22 words
The computer system of claim 5, wherein said second memory is a read only memory (ROM) coupled to said host data processor.
Claim 11
Dependent Claim 312 words
In a computer system having a host data processor, a first memory, comprising a random access memory, coupled to said host data processor by a bus, and a plurality of subsystem modules connected to said bus; a method of configuring relocatable object code programs for controlling said plurality of subsystem modules, comprising the steps of: storing in a read only memory (ROM) in each of said plurality of subsystem modules firmware specific to that one of said plurality of subsystem modules, said stored firmware in each subsystem module ROM including relocatable object code programs, and relocation data identifying memory cells in said relocatable object code programs whose value requires adjustment upon relocation of said relocatable object code programs, said relocation data including relocation type data specifying at least first, second and third types of value adjustments for respective ones of said identified memory cells in said relocatable object code programs; and upon powering on said computer system, performing the steps of: allocating a region of said first memory to said relocatable object code programs in each said ROM; copying said relocatable object code programs from each said ROM into said allocated region of said first memory; retrieving said relocation data from each said ROM in each of said subsystem modules; and adjusting the value of each memory cell in said copied object code programs identified by said relocation data by performing on each said memory cell the one of said at least two predefined distinct mathematical operations specified by said retrieved relocation data; said adjusting step including performing one of at least first, second and third distinct, predefined mathematical operations that combines each said identified memory cell with a relocation displacement value, wherein which one of said at least first, second and third distinct, predefined mathematical operations is performed on each said identified memory cell is specified by said relocation type data.
Claim 12
Dependent Claim 312 words
In a computer system having a host data processor, a first memory, comprising a random access memory, coupled to said host data processor by a bus, and a plurality of subsystem modules connected to said bus; a method of configuring relocatable object code programs for controlling said plurality of subsystem modules, comprising the steps of: storing in a read only memory (ROM) in each of said plurality of subsystem modules firmware specific to that one of said plurality of subsystem modules, said stored firmware in each subsystem module ROM including relocatable object code programs, and relocation data identifying memory cells in said relocatable object code programs whose value requires adjustment upon relocation of said relocatable object code programs, said relocation data including relocation type data specifying at least first, second and third types of value adjustments for respective ones of said identified memory cells in said relocatable object code programs; and upon powering on said computer system, performing the steps of: allocating a region of said first memory to said relocatable object code programs in each said ROM; copying said relocatable object code programs from each said ROM into said allocated region of said first memory; retrieving said relocation data from each said ROM in each of said subsystem modules; and adjusting the value of each memory cell in said copied object code programs identified by said relocation data by performing on each said memory cell the one of said at least two predefined distinct mathematical operations specified by said retrieved relocation data; said adjusting step including performing one of at least first, second and third distinct, predefined mathematical operations that combines each said identified memory cell with a relocation displacement value, wherein which one of said at least first, second and third distinct, predefined mathematical operations is performed on each said identified memory cell is specified by said relocation type data.
Claim 13
Dependent Claim 56 words
The method of claim 9, wherein said first, second and third distinct, predefined mathematical operations comprise, respectively, adding said relocation displacement value to said identified memory cell, adding a first portion of said relocation displacement value to said identified memory cell, and adding a second portion of said relocation displacement value to said identified memory cell.

References Cited (Backward Citations)

US4302809A Cited
US4138738A Cited
US4636940A Cited
US4589063A Cited
US4706213A Cited
US4839852A Cited
US4734854A Cited
US4833604A Cited
US4914576A Cited
US4791558A Cited
US5003469A Cited
US5029078A Cited
US5050068A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-05-30 1997-11-29 1998-05-31 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-05-30 2001-11-29 2002-05-31 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-05-30 2005-11-29 2006-05-31 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag