The present invention provides a method and apparatus for changing the serial number of a replacement motherboard to that of a malfunctioning motherboard thus ensuring that application software are able to be executed on the workstation without interruption while providing assurances to software vendors that the workstation is permitted to run the application software. In an embodiment of the invention, an uninitialized serial number is stored in memory of the replacement motherboard at manufacture time. Once the replacement board is used to replace a malfunctioning motherboard, the uninitialized serial number is initialized by being replaced with the serial number of the malfunctioning motherboard. After initialization, no changes are permitted. In another embodiment of the invention, the workstation is forced to be rebooted after initialization. Here, however, changes to the initialized serial number will be allowed so long as the workstation has not been rebooted.

Patent
   5864664
Priority
Aug 30 1996
Filed
Aug 30 1996
Issued
Jan 26 1999
Expiry
Aug 30 2016
Assg.orig
Entity
Large
21
11
EXPIRED
4. A method of storing a serial number into a memory of a motherboard, said serial number allowing a computer system having said motherboard to execute application software, said method comprising the steps of:
storing an uninitialized serial number in said memory, said uninitialized serial number having a header for allowing said serial number to be replaced;
initializing said uninitialized serial number by replacing said uninitialized serial number with said serial number allowing said computer system to execute said software application, said serial number being allowed to be changed multiple times so long as the computer system is not rebooted; and
inhibiting replacement of said initialized serial number once the computer system has been rebooted.
1. An apparatus for storing a serial number into a memory of a motherboard, said serial number allowing a computer system having said motherboard to execute application software, said apparatus comprising:
means for storing an uninitialized serial number in said memory, said uninitialized serial number having a header for allowing said serial number to be replaced;
means for initializing said uninitialized serial number by replacing said uninitialized serial number with said serial number allowing said computer system to execute said software application, said serial number being allowed to be changed multiple times so long as the computer system is not rebooted; and
means for inhibiting replacement of said initialized serial number once the computer system has been rebooted.
7. A computer program product stored in memory executable by a processor for storing a serial number into a memory of a motherboard, said serial number allowing a computer system having said motherboard to execute application software, said computer program product comprising:
computer readable program code means for storing an uninitialized serial number in said memory of said motherboard, said uninitialized serial number having a header for allowing said serial number to be replaced;
computer readable program code means for initializing said uninitialized serial number by replacing said uninitialized serial number with said serial number allowing said computer system to execute said software application, said serial number being allowed to be changed multiple times so long as the computer system is not rebooted; and
computer readable program code means for inhibiting replacement of said initialized serial number once the computer system has been rebooted.
2. The apparatus of claim 1 wherein said computer system becomes operational after said uninitialized serial number is initialized if it is rebooted.
3. The apparatus of claim 1 wherein said memory is an EEPROM and said inhibiting means is an EEPROM controller.
5. The method of claim 4 wherein said computer system becomes operational after said uninitialized serial number is initialized if it is rebooted.
6. The method of claim 5 wherein said memory is an EEPROM and said step of inhibiting includes using an EEPROM controller.
8. The computer program product of claim 7 wherein said computer system becomes operational after said uninitialized serial number is initialized if it is rebooted.
9. The computer program product of claim 8 wherein said memory of said motherboard is an EEPROM and said inhibiting means is an EEPROM controller .

1. Field of the Invention

The present invention relates generally to a computer system and, more particularly, to a computer system having a motherboard with a serial number permitting executions of licensed software.

2. Description of the Related Art

Each workstation in a system has a unique serial number to identify itself from other workstations. The serial number is usually stored electronically on the workstation's motherboard. This number is often used by an operating system to create a unique name (i.e., UNAME) that is passed to an application software making a UNAME call. The application software uses the UNAME to ascertain whether a software license has been granted permitting the execution of the application software on the workstation.

Conventionally, the serial numbers were stored on workstations' motherboards using two methods. The first method was to store the serial number into a secure device such as an electronically erasable programmable read-only memory (EEPROM) located on the motherboard at manufacture time. This number was unchangeable since the serial number could only be read from the EEPROM. This, therefore, provided a level of security to software vendors knowing that only workstations with the proper permission were able to run the application software.

Typically, when a workstation's motherboard malfunctioned, it was replaced by a new motherboard which ordinarily had a different serial number. Using the new serial number, the operating system, then, created a UNAME which was different from the one expected by the application software. Accordingly, in order for the workstation to run the application software a new license had to be provided. This entailed contacting the software vendor and requesting the new license. This exercise usually translated into a loss of use of the software for a period of time which, often times, contributed to a loss of productivity.

The second method was to store the serial number in a lockable region in a non-volatile random access memory (NVRAM) or some similar technology on the motherboard. System firmware would lock the region to make it a read-only region before passing control to the operating system. This method allowed the serial number of a replacement motherboard to be changed to that of the original motherboard by running a utility software before passing control to the operating system. Hence after a motherboard replacement, the operating system continued to create proper UNAME allowing the application software to run on the workstation uninterrupted. However, since the serial number was able to be changed at a user's whims, the software vendors were not assured that proper licenses always existed for the software running on the workstations.

Thus, there is a need in the art for a method that allows serial numbers to be changed in case of motherboard replacements allowing application software to continue to run on workstations without interruption while assuring software vendors that licenses, permitting an application software to run on a workstation, exist.

The need in the art is addressed by the present invention. The present invention provides a method and apparatus for changing the serial number of a replacement motherboard to that of a malfunctioning motherboard thus ensuring that application software are able to be executed on the workstation without interruption while providing assurances to software vendors that workstations are licensed to run the application software. In an embodiment of the invention, an uninitialized serial number is stored in memory of the replacement motherboard at manufacture time. Once the replacement board is used to replace a malfunctioning motherboard, the uninitialized serial number is initialized by being replaced with the serial number of the malfunctioning motherboard. After initialization, no changes are permitted.

In another embodiment of the invention, the workstation is forced to be rebooted after initialization. Here, however, changes to the initialized serial number will be allowed so long as the workstation has not been rebooted.

FIG. 1 is a block diagram of a motherboard of a computer system employed in a preferred embodiment of the invention.

FIG. 2 is a flow chart depicting the algorithm executed by a serial EEPROM controller each time power is applied to the motherboard.

FIG. 3 is a flow chart depicting the algorithm executed by the serial EEPROM controller in conjunction with a software utility to ascertain whether a correct serial number is entered.

FIG. 1 is a block diagram of a motherboard 100 of a computer system employed in a preferred embodiment of the invention. Such computer may take the form of a workstation such as the RS/6000 systems marketed by the IBM Corporation, although the invention is not intended to be so limited and is equally applicable to essentially any computer system.

Still referring to FIG. 1, the motherboard 100 contains a plurality of central processing units (CPU) 110 and 120 connected to a system memory 140 through a host bridge 130 on system bus 150. The host bridge is connected to a peripheral component interconnect (PCI) bus 160 having PCI devices 162-168 attached thereto. Also attached to the PCI bus 160 is an industry standard architecture (ISA) bridge 170 which is connected to an ISA bus 178. The ISA bus 178 has devices 172-176 as well as a serial EEPROM controller 180 attached to it. Connected to the serial EEPROM controller 180 is a serial EEPROM 182. The serial EEPROM controller 180 supervises communications with the serial EEPROM 182. The PCI devices as well as the ISA devices may comprise any of the following: graphics adapters, modems, keyboards, compact disk, floppy disk, hard disk drives etc. As is well known in the art, the local bus 150, the PCI bus 160 and the ISA bus 178 use different protocols. The devices attached to a particular bus can communicate to devices on another bus using the appropriate bridge which acts as a translator. For example, the CPU 110 attached to the local bus 150 may access data in the serial EEPROM by going through the host bridge 130 and the ISA bridge 170.

The invention is implemented in serial EEPROM controller 180. Note that here the word "serial" in serial EEPROM is used to indicate that the contents of the EEPROM are accessed serially (i.e., one bit at a time) and does not refer to serial numbers. As mentioned before, in the past the serial number of the motherboard was encoded into the serial number field 184 of the serial EEPROM 182 at manufacture time. Hence, each motherboard had its own unique serial number. Consequently, when an operating system used the serial number of a replacement motherboard, it created a UNAME different than that expected by the application software. This prevented the execution of the application software on the workstation.

In the present implementation, a number having a header indicating an uninitialized serial number is encoded into the serial number field 184 of the serial EEPROM 182 at manufacture time. The header may be designated by an `A55A` string in the first two bytes of the 16-byte serial number. At time of assembly, the serial number of the workstation is encoded, via software, into the serial number field 184 of the serial EEPROM 182, thus initializing the serial number. Once the serial number is initialized, the EEPROM controller 180 does not allow the serial number to be changed. If the motherboard malfunctions, it can be replaced by a motherboard having an uninitialized serial number. Upon reading the uninitialized serial number, the EEPROM controller 180 will allow the number in the serial number field 184 to be changed. In this case, the uninitialized serial number can be changed to the serial number of the previous motherboard allowing the application software to continue to create the proper UNAME. Hence, executions of application software on the workstation will go uninterrupted. In addition, since once initialized the EEPROM controller does not allow the serial number to be altered, the software vendors are assured that proper licenses exist for each application software executed on the workstation.

Uninitialized numbers may be inadvertently initialized to a wrong serial number. Thus, a procedure may be put in place wherein the EEPROM controller may allow an unlimited number of changes to the serial number until the workstation is power cycled or rebooted. This can be implemented by using a service utility software to prompt the user, in this case a technician, to ascertain whether the serial number entered is correct. If the number is incorrect, the technician may reenter the number. After each entry, the service utility will request that the technician check the number entered. The service utility software will continually request that the technician check the number until the workstation is powered down or rebooted. When the workstation is powered back up or has been rebooted, no changes to the serial number will be allowed using the service utility software. The serial number may, nevertheless, be changed at a service repair facility using the same equipment that originally set the factory installed serial number.

FIG. 2 is a flow chart depicting the algorithm executed by the serial EEPROM controller each time power is applied to the motherboard. In step 200, the serial number in the serial number field of the serial EEPROM is read by the serial EEPROM controller 180. In step 210, it is determined whether the serial number read starts with the string `A55A`. If the serial number does not start with the `A55A` string, the serial number has been initialized and thus no changes to the serial number will be allowed (step 220). If the number does start with the string `A55A`, the serial number has not been initialized and changes are allowed (step 230). The process stops at step 240. Note that no serial numbers that begin with `A55A` should be assigned to workstations or systems.

FIG. 3 is a flow chart depicting the algorithm executed by the serial EEPROM controller in conjunction with a software utility in case the wrong serial number is entered. In step 300, the serial number in the serial number field of the serial EEPROM is read by the serial EEPROM controller 180. In step 310, it is determined whether the serial number read starts with the string `A55A`. If the serial number does not start with the `A55A` string, the serial number has been initialized and thus no changes to the serial number will be allowed (step 320). If the number does start with the string `A55A`, the serial number has not been initialized and changes are allowed (step 330). After entering the serial number, it is determined whether the serial number entered is correct in step 340. If it is not correct then the serial number is allowed to be changed by returning to step 330. If the change is correct then the system needs to be rebooted (step 350). Once rebooted the process will return to step 300 and the serial EEPROM controller will again read the serial number. This time the serial number will not start with the string `A55A` and no changes will be permitted.

Although the present invention has been fully described above with reference to specific embodiments, other alternative embodiments will be apparent to those of ordinary skill in the art. For example, the serial number may be stored in any NVRAM that does not require power to maintain its contents. In addition, the serial EEPROM may be attached to any one of the buses of the system without deviating from the present description. Therefore, the above description should not be taken as limiting the scope of the present invention defined by the appended claims.

Capps, Jr., Louis Bennie, Iachetta, Jr., Richard Nicholas, Judice, Darryl Edmond

Patent Priority Assignee Title
10387927, Jan 15 2010 Dell Products L.P. System and method for entitling digital assets
6209089, Aug 12 1998 Microsoft Technology Licensing, LLC Correcting for changed client machine hardware using a server-based operating system
6971067, Aug 23 1999 Microsoft Technology Licensing, LLC Application launchpad
7502942, Dec 19 2003 PMC-SIERRA, INC System and method for authentication of embedded raid on a motherboard having input/output processor
7600132, Dec 19 2003 PMC-SIERRA, INC System and method for authentication of embedded RAID on a motherboard
8423729, Feb 01 2006 Fujitsu Limited Part information restoration method, part information management method and electronic apparatus
8429641, Feb 02 2010 Dell Products L.P.; Dell Products L P System and method for migration of digital assets
8468139, Jul 16 2012 Dell Products L.P.; Dell Products L P Acceleration of cloud-based migration/backup through pre-population
8548919, Jan 29 2010 Dell Products L P System and method for self-provisioning of virtual images
8615446, Mar 16 2010 Dell Products L.P. System and method for handling software activation in entitlement
8660529, Feb 28 2007 Samsung Electronics Co., Ltd. Mobile terminal for preventing illegitimate change of identification number by matching authentication information
8707087, May 18 2010 Dell Products L.P.; Dell Products L P Restoration of an image backup using information on other information handling systems
8832032, Jul 16 2012 THE BANK OF NEW YORK MELLON TRUST COMPANY N A , AS NOTES COLLATERAL AGENT; CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT Acceleration of cloud-based migration/backup through pre-population
8949401, Jun 14 2012 Dell Products L.P.; Dell Products L P Automated digital migration
9100396, Jan 29 2010 Dell Products L.P.; Dell Products L P System and method for identifying systems and replacing components
9141770, Apr 24 2014 LENOVO INTERNATIONAL LIMITED Entitlement transfer during a repair activity
9235399, Jan 15 2010 Dell Products L.P. System and method for manufacturing and personalizing computing devices
9256899, Jan 15 2010 DELL PRODUCTS, L.P. System and method for separation of software purchase from fulfillment
9645810, Jun 23 2011 Fujitsu Limited Processing apparatus capable to determine a storage medium that contains correct data for management board by comparing casing serial numbers each stored in casing memory, portable memory, and flash memory
9779219, Aug 09 2012 Dell Products L.P.; Dell Products L P Method and system for late binding of option features associated with a device using at least in part license and unique ID information
9922312, Mar 16 2010 Dell Products L.P. System and method for handling software activation in entitlement
Patent Priority Assignee Title
4424573, Feb 26 1981 Pitney Bowes Inc. System for entering a postage meter serial number into a nonvolatile memory from an external channel after assembly of the meter
4506329, Mar 08 1982 Pitney Bowes Inc. Non-volatile memory serial number lock for electronic postage meter
4525786, Jul 12 1982 Pitney Bowes Inc. Electronic postage meter having a one time actuable operating program to enable setting of critical accounting registers to predetermined values
4748561, May 14 1984 Method of protecting computer software
4783745, Jan 30 1986 Pitney Bowes Inc. Nonvolatile memory unlock for an electronic postage meter
5214699, Jun 09 1992 Audio Digital Imaging Inc. System for decoding and displaying personalized indentification stored on memory storage device
5222134, Nov 07 1990 BETANET, LLC Secure system for activating personal computer software at remote locations
5375243, Oct 07 1991 HEWLETT-PACKARD DEVELOPMENT COMPANY, L P Hard disk password security system
5434870, Apr 17 1992 Unisys Corporation Apparatus and method for verifying the authenticity of a circuit board
5495531, Jul 21 1992 XYTING CORPORATION Equipment which included electronics
5513169, Oct 06 1993 Sony Corporation; Digital Audio Disc Corporation CD-ROM with machine-readable i.d. code
/////
Executed onAssignorAssigneeConveyanceFrameReelDoc
Aug 30 1996International Business Machines Corporation(assignment on the face of the patent)
Aug 30 1996CAPPA, LOUIS B International Business Machines CorporationASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0081660836 pdf
Aug 30 1996IACHETTA, RICHARD N International Business Machines CorporationASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0081660836 pdf
Aug 30 1996JUDICE, DARRYL E International Business Machines CorporationASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0081660836 pdf
May 20 2005International Business Machines CorporationLENOVO SINGAPORE PTE LTD ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0168910507 pdf
Date Maintenance Fee Events
Nov 25 1998ASPN: Payor Number Assigned.
Jul 16 2002M183: Payment of Maintenance Fee, 4th Year, Large Entity.
Aug 16 2006REM: Maintenance Fee Reminder Mailed.
Oct 20 2006M1552: Payment of Maintenance Fee, 8th Year, Large Entity.
Oct 20 2006M1555: 7.5 yr surcharge - late pmt w/in 6 mo, Large Entity.
Aug 30 2010REM: Maintenance Fee Reminder Mailed.
Jan 26 2011EXP: Patent Expired for Failure to Pay Maintenance Fees.


Date Maintenance Schedule
Jan 26 20024 years fee payment window open
Jul 26 20026 months grace period start (w surcharge)
Jan 26 2003patent expiry (for year 4)
Jan 26 20052 years to revive unintentionally abandoned end. (for year 4)
Jan 26 20068 years fee payment window open
Jul 26 20066 months grace period start (w surcharge)
Jan 26 2007patent expiry (for year 8)
Jan 26 20092 years to revive unintentionally abandoned end. (for year 8)
Jan 26 201012 years fee payment window open
Jul 26 20106 months grace period start (w surcharge)
Jan 26 2011patent expiry (for year 12)
Jan 26 20132 years to revive unintentionally abandoned end. (for year 12)