GB2357600A - Hardware dependent software installation - Google Patents
Hardware dependent software installation Download PDFInfo
- Publication number
- GB2357600A GB2357600A GB9930283A GB9930283A GB2357600A GB 2357600 A GB2357600 A GB 2357600A GB 9930283 A GB9930283 A GB 9930283A GB 9930283 A GB9930283 A GB 9930283A GB 2357600 A GB2357600 A GB 2357600A
- Authority
- GB
- United Kingdom
- Prior art keywords
- software
- hardware
- bus
- computer
- vendor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
A method of installing software associated with hardware installed in a personal computer comprises the steps of providing one or more unique identifiers in the hardware, interrogating the unique identifiers, responsive to the interrogation, identifying the software associated with the installed hardware and installing said associated software. A computer software installation system is claimed with means for interrogating the unique identifier, means for identifying associated software and means for installing said software. A computer program product is also claimed for installing hardware-associated software by the above method. The unique identifiers may be configuration registers and may comprise information relating to the vendor, device type and revision level.
Description
2357600 GB9990133GB1 HARDWARE DEPENDEM SOFTWARE IN TALLATION
Field of the Invention
The present invention relates to instal ation of software on 1 personal computers and more particularly to t e installation of 1 software customised to the hardware features f a particular personal computer.
Background of the Invention
When a personal computer is ordered, it is necessary that an operating system is installed on the personal computer in order to enable the computer to function and provide t e user with a user is friendly environment. The operating system 1 specific to each individual personal computer as it must be pe sonalised to suit the hardware configuration by the installation of driver software. When many identical machines having the same oper ting system are being built, the installation of the operating sy em and personalised driver software may be implemented more qui ly using a llpre-loadll.A pre-load comprises an operating system whic itself consists of kernel code and a graphical user interface plus additional drivers for the hardware that is installed in that machine. The pre-load is generated by installation of the operating system on a machine of the type to be built. An image copy of the installed opera ing system is then taken from that machine and is used to "clone" copies of the installed operating system. The pre-load may optional y include other software such as application software which is to be ncluded on the personal computer. A pre-load can only be used to co er a small number of pre defined hardware configurations.
Another known solution is to generate n image to be installed on a particular system based on the customer s order form or on a manufacturing bill of material. This has th disadvantage that the drivers installed may not match the hardware installed in the personal computer. If the customer order has been up ated since the order form was completed or if there is an updated version of the personalised hardware or the software driver, then this will not be reflected in the pre-loaded image.
A current trend in the manufacture of ersonal computers is for more specific hardware configurations such s modem cards, network cards, video and audio cards and the like t be available in personal computers, these hardware configurations being installed by the manufacturer. This proliferation of potentially unique hardware configurations forces a similar proliferati n of potentially unique GB9990133GB1 2 operating systems with the associated drivers to enable any hardware additions to be operational. This type of customer driven environment also requires a rapid manufacturing turn around time from receipt of the customer's order until shipment of the personal computer from the manufacturing plant. The conventional method of building customer's images (manual installation of the operating system, adding drivers for any associated hardware additions) is not able to support a rapid turnaround time. The customer image may have an order quantity of one personal computer type with a potential selection of numerous different hardware additions.
PCT Patent Application W094/08288 discloses a system in which a boot image for a particular personal computer is generated at an initial boot time by that computer based on the hardware present.
is That boot image is stored on the personal computer. When the computer is subsequently booted, the hardware present is checked to see if it has changed, and if it has not, then the previously stored boot image is loaded. This system does not address the generation of a boot image with hardware -dependent software, such as drivers, selected from a range of different software, such as drivers, for that particular personal computer.
PCT Patent Application W095/17714 discloses a system in which a specific software object is used based on the identification number of the computer.
US Patent 5,794,032 discloses a system for automatic identification and configuration of computer peripherals for use at initialisation time in a personal computer. The system uses a program which is run every time the personal computer is turned on. The program uses a query instruction to obtain information as to the type of device attached to a particular interface. The query instruction is part of the "Attention Application Programming Interface" (ATAPI) and is only applicable to devices such as mass storage devices which support such an interface and not to other computer devices in general.
US Patent 5,717,930 discloses a method of installing an operating system program on a computer in a network. A bar code is read by a bar code reader. The bar code contains installation information relevant to the particular personal computer. Based on the content of the bar code, software information stored in an installation server on the network is read and installed in the personal computer. This method requires the use of a bar code reader attached to the personal computer. Additionally the bar code that is generated may not conform to the particular hardware configuration of GB9990133GB1 3 the computer on which the software is to be installed. If the customer order has been updated since the b r code was generated or if there is an updated version of the personal sed hardware or the software driver, then this will not be ref 1 cted in the bar code. 5 Standard pre-loads can only cover exp cted configurations. So it would be desirable to provide a method c installing operating system and driver software that always refl cts the actual configuration of the personal computer and lways reflects the correct level of the driver software.
Disclosure of the Invention
Accordingly, the present invention pr vides a method of is installing software associated with hardwar installed in a computer, the method comprising the steps of:. providi g one or more unique identifiers in the hardware; interrogating he unique identifiers; responsive to the interrogation, identifyin the software associated with the installed hardware; and installing the associated software.
This invention allows customisation t cover unexpected hardware configurations that may be requested by cus omers. Methods of software installation from the customer ord r are difficult and expensive to maintain in an environment whe e many new options are becoming available and software driver lev s are frequently changing.
This invention allows the software configu: tion to be computed at the latest possible point in the system manufac uring process and so automatically takes into account any late c anges in configuration or late driver updates.
Preferably, the unique identifiers ae configuration registers.
1 Further preferably the configuration registers comprise information relating to the vendor, device type and revision level.
Yet further preferably, the associated software is identified by means of vendor, device type and revision evel information.
The invention also provides a comput r software installation system for the installation of software as ociated with one or more pieces of hardware installed in a computer Each piece of hardware having a unique identifier, the system com rising: means for interrogating the unique identifier; means for identifying which software is associated with the particular piece of hardware; and means for installing the software correspo ding to the particular piece of hardware onto the computer.
GB9990133GBI 4 The invention further provides a computer program product for use in a data processing system having a non-volatile storage medium, the computer program product comprising: a computer usable medium having computer readable program code means embodied in said medium for installing software associated with hardware installed in a computer, each piece of hardware having one or more unique identifiers in the hardware, said computer program product having: computer readable program code means for interrogating the unique identifiers; computer readable program code means, responsive to the computer readable program code means for interrogation, for identifying the software associated with the installed hardware; and computer readable program code means for installing the associated software.
Brief Description of the Drawings is Embodiments of the invention will now be described, by way of example, with reference to the accompanying drawings, in which:
Figure 1 is a block diagram of a prior art personal computer;
Figure 2 is a block diagram of the software portions to be installed onto the prior art personal computer of figure 1 using the installation method of the present invention; Figure 3 is a map of the configuration space provided by configuration registers in each of PCI devices of Figure 2; and Figure 4 is a flowchart of the installation method of the present invention.
Detailed Description of the Invention
Referring now to Figure 1, a multi-bus information handling system is shown generally at 10, comprising, (i) a processor, cache and memory complex 12 connected to S-bus (system bus) devices 14 via an S-bus 16 and (ii) primary PCI devices 18 attached to one of the S-bus devices, a primary PCI host bridge 20, via a primary PCI bus 22.
more detailed descriptions of the processor, cache and memory complex
12, the S-bus devices 14, the primary PCI devices 18, and the other elements shown in Figure 1 will be provided hereinafter.
The processor, cache and memory complex 12 comprises a central processing unit (CPU) 24, a self-test circuit 26, a memory controller 28, a CPU cache 30, and base system memory 32. The CPU 24 in the preferred embodiment is a Pentium III microprocessor available from Intel Corp., although it is contemplated that the system 10 may be GB9990133GB1 5 implemented using other types of CPUs, especi lly other x86-type microprocessors (Pentium and Intel are tradem rks on Intel Corp.).
The self-test circuit 26 provides a built-in- elf-test (BIST) feature for the CPU 24 upon power-up. The self -test ircuit also controls any self-test features which may be incorporated ithin each of the S-bus devices 14.
The CPU 24 is connected to the self-te t circuit 26 and the memory controller 28 by a CPU local bus 34. The memory controller 28 is connected to the base system memory 32 by means of a base system memory bus 36. The memory controller 28 con rols read and write operations to base system memory 32 over the base system memory bus 36, which operations are initiated by eil the CPU 24 over the CPU local bus 34, or by an S-bus device 14 over he S-bus 16. Because the is memory controller has the capability to mana e operations on two buses, operations over the base system memo bus 36 and the CPU local bus 34 may be managed simultaneously. The C U local bus 34, the base system memory bus 36, and the S-bus are 32 - b t buses, each of which buses comprises data, address and control in ormation paths (11D11, "All, and "C" in Figure 1) as is typical of such b ses.
Base system memory 32 provides system- ide storage capability and may comprise either non-interleaved or i terleaved memory cards.
The CPU cache 30 permits short term storage f information contained within either base system memory 32 or expan ion memory located elsewhere within the system 10. Such expansion memory could, for example, be located on the peripherally att ched I/0 devices within the system. The CPU cache 30 incorporates random access memory (RAM, not shown) which is used to temporarily sto es address locations of the base system memory 32 which are frequen ly accessed by the CPU 24.
The CPU 24 accesses information stored in t e CPU cache 30 directly, whereas access to information stored in the base system memory 32 must be handled by the memory controller 28.
All access to base system memory 32 i controlled by the memory controller 28 via base system memory bus 36 The memory controller initiates system memory cycles to the base ystem memory 32, during which cycles either the CPU 24 or one of th S-bus devices 14 has access to the base system memory via the me cry controller 28. During a memory cycle, the memory controller does ot pass information onto the S-bus. However, if the memory controll r determines that the operation it is managing is an 1/0 cycle, t e memory controller propagates the information onto the S-b r access thereto by an S bus device. If the I/0 cycle is destined f r a S-bus device, the appropriate S-bus device responds with a de ode command to the memory controller. If the I/0 operation is desti d for a primary PCI device GB9990133GB1 6 18, the PCI host bridge 20 responds with a decode command to the memory controller and passes the I/0 cycle to the appropriate primary PCI device.
A system clock module 38 provides a single clock signal for the S-bus devices 14, and a pair of clock signals for the CPU 24. The CPU 24 requires two clock signals because it operates internally at a higher rate, but communicates over the CPU local bus 34 at a lower rate.
Communications between the processor, cache and memory complex 12 and the S-bus devices are managed by the memory controller 28 over the S-bus 16. Also attached to the S-bus, as shown in the preferred embodiment of Figure 1, are a direct memory access (DMA) controller is 40, a system arbitration control point (SACP) 42, an input/output (I/0) controller 44 and a power management controller 48. An optional power management controller 50 may be attached to the power management controller 48 in case more sophisticated power management control is desired. A buffer 52 is provided on the S-bus 16 intermediate the DMA controller 40 and the I/0 controller 44. As shown in Figure 1, however, it is contemplated that other S-bus devices 14, beyond those shown, may be attached to the S-bus 16.
Attached to an I/0 controller 44 are a time-ofday clock 60 and a RAM module 62. The I/0 controller 44 supports a variety of ports, including a mouse port 64, serial ports 66, a parallel port 68, and a keyboard port 70.
In addition to supporting S-bus devices 14 on the S-bus 16, the system 10 also supports a second high speed, high bandwidth bus, which in the preferred embodiment is the primary PCI bus 22. The PCI bus is described in 11PCI Local Bus Specification, Revision 2.2, December 18,
199811, published by the PCI Special Interest Group. Primary PCI devices 18 in the system 10 communicate with each other over the primary PCI bus 22. Primary PCI devices communicate with the CPU, cache and memory complex 12 and with other S-bus devices 14 residing on the S-bus 16 by means of the PCI host bridge 20, which is itself an S-bus device residing on the S-bus. The PCI host bridge 20, then, serves as an interface between the S-bus 16 and the primary PCI bus 22 and provides an effective means of communication between these two buses, and any peripheral devices which may be attached to these buses.
The PCI host bridge 20 is a low latency interconnect mechanism through which the CPU 24 or other S-bus device 14 may directly access the primary PCI devices 18 or devices attached thereto. The bridge 20 GB9990133GBI 7 also provides a high performance path which llows the primary PCI devices or devices attached thereto quick an direct access to base system memory 32. In addition, the host bri ge 20 provides all of the 1 g hardware required to provide an interface be ween the S-bus 16 and the primary PCI bus 22 so that data may be trans erred between these buses.
The primary PCI bus 22 is capable of s pporting a variety of devices which are PC1 compatible. As shown n Figure 1, these devices may include a graphics controller 72, a seri 1 SCSI (small computer systems interface) controller 74, a standard 1/0 bus (for example, ISA bridge 78 (also referred to herein as an exp nsion bridge)), and a PCI secondary bridge 80. The devices shown in F gure 1 attached to the primary PCI bus, however, are only one examp e of a system is implementing a PC1 bus architecture and thus the disclosed exemplary configuration and is not intended to limit t e invention in any way.
The graphics controller 72 is typicall provided with memory capability in the form of VRAM 82, which en les the graphics controller to buffer video frames therein, a d may control any known graphics package which may be supported by P 1 bus architecture. The P SCSI controller 74 serves as an interface be ween SCSI devices 84 attached to a SCSI bus 86 and the primary PC bus 22, and may control any SCSI device which may be supported by PC bus architecture.
The standard bus bridge 78 serves as interface between I/0 devices 90 attached to a standard (for exa le, ISA) bus 92 and the primary PC1 bus 22. Secondary PCI devices 4 are connected to PC1 secondary bridge 80 via secondary PCI bus 9. Any number of unidentified secondary PCI devices 94 may t en be connected to the secondary PCI bus 96. The PCI secondary bridge 80 serves as an interface between the secondary PC1 devices 94 attached to the secondary PCI bus 96, and the primary PCI b s 22.
Data is communicated between PC1 devi es which reside on PCI buses in the system over those PCI buses (f r example, primary PCI bus 22 and secondary PCI bus 96). Data transac ions include read or write operations initiated by a PCI device acting as a master on the bus to or f rom a PCI device acting as a slave (tar et) on the bus.
In the manufacture of personal comput rs, server computers and the like, a customer's order is transmitted to the manufacturing location through a variety of shop floor co trol systems. The order specifies the type of machine to be built, he operating system to be installed on the machine and any additional hardware items to be added to the personal computer. Once accepted th order is broken down into GB9990133GB1 8 software and hardware items. The software items will typically include an operating system, and the hardware will typically be based around a standard personal computer system board with built in adapters, and other additional installable devices, for example, audio, video, network and modem cards among others devices. The customer configuration will be built into a control file that will contain details of all the items for that specific customer. This is used as a master control file for the build of the personal computers and is sent to the manufacturing location. These items effectively specify the bill of material for the personal computer. The various parts are taken from stock and added into the target personal computers. The complete personal computer is then customised.
Figure 2 shows the software portions that are installed onto a is prior art personal computer such as that of figure 1 using the installation method of the present invention. First operating system 202 is installed. Typically this may be an operating system such as Windows 95 from Microsoft, the Linux operating system or OS/2 from IBM Corporation (Windows and Microsoft are trademarks of Microsoft Corp.
and OS/2 and IBM are trademarks of IBM Corp.). Personalisation files 204 are then installed. These personalisation files include such files as define the language of text to be displayed on the screen to the user. Application files 206 are installed which may include an "office suite,, application such as Lotus Smartsuite from Lotus Development Corp. or Microsoft Office (Lotus and Smartsuite are trademarks of Lotus Development Corp.). Also installed are operating system extensions 208 and device drivers 210 for hardware additions to the basic personal computer including such devices as audio devices, video devices, communications devices and mass storage devices.
Whilst in the manufacturing process, various procedures are used on the machine to test and verify the function of the personal computer. During this test and verification process certain information can be obtained pertaining to devices that have been added to the personal computer. In the present invention, system level bus interrogation of the PC system bus will yield a level of data that is specific to each device on the system bus. Since the identification of such devices is controlled by defined standards, which are available in the public domain, every device can be interrogated and their unique configuration identifiers can be read on a real time basis. Using this data as a reference point to identify each device allows the customisation process to act upon this data.
In the PCI bus architecture, each PCI device is provided with configuration space consisting of 256 bytes of register space. This space is divided into a predefined header region and a device GB9990133GBI 9 dependent region. The configuration space o each peripheral device contains the data used by the overall config ration software in the system to create an address map. Accordingl, when the CPU 122 initially runs the configuration software, i accesses and reads or writes to the configuration space of each de ice or bridge to configure the system and create the address ap. The PCI Local Bus Specification requires that a device's Confi uration Space must be accessible at all times, not just during the system boot. All PCI devices (except host bus bridges) are requir d to respond to such Configuration Read and Configuration Write c mmands.
Figure 3 shows a map of the header region of the configuration space provided by configuration registers in each of PC1 devices of Figure 2. The predefined header region consists of fields that is uniquely define the device. The first 16 b es of the header region are defined in the same way for all types of devices. other bytes of the header region and of the Configuration S ace are defined according to the type of device.
Vendor ID register 300 contains a 16 it code which identifies the manufacturer of the device. These codes are allocated by the PCI Special Interest Group (SIG) in order to en re uniqueness. OFFFFh is an invalid value for the Vendor ID. Alloca ed values include 08086h for Intel, 0104Ch for Texas and 01023h for I. Device ID register 302 contains a 16 bit code that identifies he particular device.
This code is allocated by the vendor. Exa les of allocated codes include 07100h, 07110h, 07111h, 07112h and 7113h for Intel Motherboard functions of CPU bridge, PC1 bridge, IDE system, USB and PC1 bridge as well as OAC16h for Texas Car us resource and 09397h for ATI Video resource. Revision ID Register 3 8 contains a 16 bit code which identifies the revision or version of the particular device.
This code is allocated by the vendor. Head r Type register 314 identifies the layout of the second part of the pre-defined header and whether or not the device contains multiple functions. Bit 7 of this register is used to identify a multi-functi n device. A 16 bit code of 00h corresponds to a PCI device, 01h cor esponds to PCI-to-PCI bridges and 02h corresponds to CardBus brid es.
The second part 316 of the pre-define header for a PC1 device includes six 4 byte Base Address Registers ocated at addresses 010h, 014h, 018h, 01Ch, 010h and 024h.
In order to access one of the Configu ation Registers, a "Configuration Rea& or a "Configuration Writell Bus Command is sent from the bus master to the device containin the Configuration Register which it is desired. to access. A,Configuration Rea& GB9990133GBI 10 command is indicated by placing 1010 on the Bus Command and Byte Enables (C/BE[3::01#) pins. A "Configuration Write,, command is indicated by placing 1011h on the Bus Command and Byte Enables (C/BE [ 3:: 01 #) pins. The IDSEL pin of the agent being accessed is asserted and Address and Data pins 1 and 0 (AD [ 1:: 0 1) are set to 0 Oh to indicate a Type 0 configuration access to select a device on the bus where the master is located. During the address phase of the Configuration Register access, Address and Data bits 2 to 7 (AD [7::21 indicate which of the 64 double-word registers in the configuration space of the device are to be accessed. Address and Data bits 8 to 10 (AD [ 10::81) indicate which device of a multi - f unction agent is being accessed. Address and Data bits 11 to 31 (AD [31:: 111) are logical don't care states.
is In a variation of the access described above, in which it is desired for a configuration request to be passed to another bus segment, Address and Data pins 1 and 0 (AD[ 1:: 0 1) are set to 0 1h to indicate a Type 1 configuration. During the address phase of the Configuration Register access, Address and Data bits 11 to 15 (AD [15:: 11]) indicate which of 32 possible devices on a given bus is being accessed. Address and Data bits 16 to 23 (AD [23::161) indicate which of 256 possible busses in a system are being accessed.
During the test and verify process the particular hardware specific to the personal computer being customised is identified. The process of identifying the built-in hardware adaptors yields essential data pertaining to the individual devices within the system. This process will now be described, with reference to figure 4. A typical hardware scan will provide information, for each function of each device on each bus, in the following format:
PC1 CONFIGURATION REGISTERS FOR BUS 0, DEVICE 0, FUNCTION 0 00 Vendor ID = 8086 02 Device ID = 7100 04 Command = 0006 06 Status = 2200 08 Revision ID = 01 09 Programming I/F = 00 OA Subclass Code = 00 OB Class Code = 06 OC Cache Line Size = 00 OD Latency Timer = 20 OE Header Type = 00 10 Base Addr Reg 0 = 00000000 14 Base Addr Reg 1 = 00000000 GB9990133GBI 11 18 Base Addr Reg 2 = 00000000 1C Base Addr Reg 3 = 00000000 Base Addr Reg 4 = 00000000 24 Base Addr Reg 5 = 00000000 28 Cardbus CIS Ptr = 00000000 2C Subsystem ID = 00000000 Expansion ROM = 00000000 34 Reserved = 00000000 38 Reserved = 00000000 The data that is read back from the de ice is of a standard format. The fields of the acquired data that are used in the present invention are as follows:
Subset 00 Hardware supplier (eg Inte Subset 02 Device type (eg Inte BX chipset) Subset 08 Revision level (Revisio level of the hardware interrog ted) The process of determining the hardwa e installed in the personal computer and of installing the rel ant software drivers starts at step 402 of figure 4. At step 40, the first bus, first device is interrogated in order to identify the hardware supplier, device type and revision level. At steps 4 6 and 408, the acquisition process described above is repeated for eve possible PCI "slot".
The Vendor ID is first read. If the Vendor ID is OFFFFh, then an invalid vendor ID is indicated and so there is no device installed in that slot. < How does the sof tware that in errogates the slots know how many slots there may be? - does it inte rogate bus 0, slot 0, then slot 1 until it f inds an empty slot, then m ve on to bus 1 etc. until it f inds a bus that is not present? For th s to work, cards would have to be in the lowest slot available for each bus. > By multiple interrogations of the hardware for each dev ce and function, a complete copy of the hardware configuration registers is acquired.
Once the data has been successfully acquire., at step 410, the data is then split into data relevant to the specif c subsytems, for example, motherboard chipset, video chip set and the like as each of these subsytems has specific unique software driv rs associated with them.
All of these unique hardware associated sof ware sets are already installed on a code server associated with he manufacturing process.
< All buses, all devices - How do you know hen complete? > The operating system required by the ustomer is installed on the personal computer using a prebuilt/read. to run image. The operating system is in a format that can be copied directly onto the target personal computer. The operating system is specific to the GB9990133GB1 12 type of motherboard installed in the particular personal computer. without this hardware/association then an inoperative operating system could be copied to the personal computer.
Once the basic operating system has been copied to the target personal computer, the personal computer is prepared for the copying of additional software associated with the hardware specific to that personal computer.The additional software for the additional hardware can only be copied once the operating system directory structure has been established. At this stage a scan is done of the personal computer hardware to determine the exact hardware configuration of the personal computer in question by the use of PCI Configuration Register information. A typical scan of a personal computer would yield the following data, with each device/function is requiring an associated set of software.
PCI CONFIGURATION REGISTERS FOR BUS 0, DEVICE 0, FUNCTION 0 00 Vendor ID = 8086 >>> Intel 02 Device ID = 7100 >>> Motherboard resource (CPU bridge) 08 Revision ID = 01 PC1 CONFIGURATION REGISTERS FOR BUS 0, DEVICE 1, FUNCTION 0 00 Vendor ID = 8086 >>> Intel 02 Device ID = 7110 >>> Motherboard resource (PCI bridge) 08 Revision ID = 01 PC1 CONFIGURATION REGISTERS FOR BUS 0, DEVICE 1, FUNCTION 1 00 Vendor ID = 8086 >>> Intel 02 Device ID = 7111 >>> Motherboard resource (IDE system) 08 Revision ID = 01 PCI CONFIGURATION REGISTERS FOR BUS 0, DEVICE 1, FUNCTION 2 00 Vendor ID = 8086 >>> Intel 02 Device ID = 7112 >>> Motherboard resource (USB) 08 Revision ID = 01 PC1 CONFIGURATION REGISTERS FOR BUS 0, DEVICE 1, FUNCTION 3 00 Vendor ID = 8086 >>> Intel 02 Device ID = 7113 >>> Motherboard resource (PCI bridge) 08 Revision ID = 01 PC1 CONFIGURATION REGISTERS FOR BUS 0, DEVICE 2, FUNCTION 0 00 Vendor ID = 104c >>> Texas 02 Device ID = ac16 >>> Cardbus resource 08 Revision ID = 01 GB9990133GB1 13 PC1 CONFIGURATION REGISTERS FOR BUS 0, DEVIC 2, FUNCTION 1 00 Vendor ID = 104c >>> Texas 02 Device ID = ac16 >>> Cardbus re ource 08 Revision ID = 01 PC1 CONFIGURATION REGISTERS FOR BUS 0, DEVIC 3, FUNCTION 0 00 Vendor ID = 1023 >>> ATI 02 Device ID = 9397 >>> Video Reso rce 08 Revision ID = f3 The data acquired by the scan is used s pointers to the various software sets that are to be copied into the directory structure of the target personal computer as in the follo ing example:
is Subsystem Supplier Device type Revisio level Driver filename Video 1023 9397 f3 ATI=0f3.FIL Cardbus 104c ac16 01 TEX=001.FIL At step 412 in figure 4, the required drivers (ATMX0f3.FIL and TEX=001.FIL in the above example) are ide tified from the vendor, device and revision information. At step 41, the identified relevant drivers are installed and the process is co leted at step 416.
< What does the following sentence from the disclosure mean? >
Expansion of this type of look up table/mat ix would allow autoinstall of a variety of hardware subsystems to be b ilt remotely.
Whilst the system above has been des:tb:d in relation to the installation of operating system software e sions and device drivers for specific pieces of hardware, th present invention could also be applied to the installation of soft are extensions and device drivers for specific pieces of application oftware. For example, a word processor could check whether a device for the recognition of voice commands such as the hardware to supp rt a microphone input is installed and if the device is installed, t en suitable drivers to allow voice input to the word processor cou d be automatically installed.
Whilst the invention has been describ d by way of a preferred embodiment, various modifications and impro ements will occur to those person skilled in the art. Therefore it sh ld be understood that the preferred embodiment has been provided as example and not as a limitation.
GB9990133GB1 14
Claims (12)
1. A method of installing software associated with hardware installed in a computer, the method comprising the steps of:
providing one or more unique identifiers in the hardware; interrogating the unique identifiers; responsive to the interrogation, identifying the software associated with the installed hardware; and installing the associated software.
2. A method as claimed in claim 1 wherein the unique identifiers are configuration registers.
3. A method as claimed in claim 2 wherein the configuration is registers comprise information relating to the vendor, device type and revision level.
4. A method as claimed in claim 3 wherein the associated software is identified by means of vendor, device type and revision level information.
5. A computer software installation system for the installation of software associated with one or more pieces of hardware installed in a computer, Each piece of hardware having a unique identifier, the system comprising:
means for interrogating the unique identifier; means for identifying which software is associated with the particular piece of hardware; and means for installing the software corresponding to the particular piece of hardware onto the computer.
6. A system as claimed in claim 5 wherein the unique identifiers are configuration registers.
7. A system as claimed in claim 6 wherein the configuration registers comprise information relating to the vendor, device type and revision level.
8. A system as claimed in claim 7 wherein the associated software 40 is identified by means of vendor, device type and revision level information.
9. A computer program product for use in a data processing system having a non-volatile storage medium, the computer program product 45 comprising:
GB9990133GB1 is a computer usable medium having comput;,s:::wd:ble program code means embodied in said medium for installin re associated with hardware installed in a computer, each piece of hardware having one or more unique identifiers in the hardware, sai computer program product having:
computer readable program code means f r interrogating the unique identifiers; computer readable program code means, esponsive to the computer readable program code means for interrogatio, for identifying the software associated with the installed hardw re; and computer readable program code means f r installing the associated software.
10. A system as claimed in claim 9 wherein the unique identifiers is are configuration registers.
11. A system as claimed in claim 10 wherei the configuration registers comprise information relating to t e vendor, device type and revision level. 20
12. A system as claimed in claim 11 wherein the associated software is identified by means of vendor, device t e and revision level information.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB9930283A GB2357600A (en) | 1999-12-23 | 1999-12-23 | Hardware dependent software installation |
| CNB001359703A CN1162770C (en) | 1999-12-23 | 2000-12-19 | Hardware related software installation |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB9930283A GB2357600A (en) | 1999-12-23 | 1999-12-23 | Hardware dependent software installation |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| GB9930283D0 GB9930283D0 (en) | 2000-02-09 |
| GB2357600A true GB2357600A (en) | 2001-06-27 |
Family
ID=10866807
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| GB9930283A Withdrawn GB2357600A (en) | 1999-12-23 | 1999-12-23 | Hardware dependent software installation |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN1162770C (en) |
| GB (1) | GB2357600A (en) |
Cited By (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2365176A (en) * | 2000-02-08 | 2002-02-13 | Hewlett Packard Co | System and method for remotely retrieving information from a computer processing system |
| GB2382424A (en) * | 2001-08-17 | 2003-05-28 | Hewlett Packard Co | System and method for automatically installing a correct software version from media containing multiple software versions |
| GB2382891A (en) * | 2001-12-06 | 2003-06-11 | Nec Technologies | Apparatus for hardware revision identification |
| WO2003003201A3 (en) * | 2001-06-28 | 2003-12-24 | Daimler Chrysler Ag | Method for transmitting software modules |
| EP1302851A3 (en) * | 2001-09-21 | 2004-06-16 | Hewlett-Packard Company, A Delaware Corporation | Improvements relating to reprogramming an electronic apparatus |
| WO2006037379A1 (en) * | 2004-10-08 | 2006-04-13 | Verigy (Singapore) Pte. Ltd. | Feature-oriented test program development and execution |
| US7403927B2 (en) | 2004-01-23 | 2008-07-22 | Dell Products L.P. | Method of manufacturing an item of build-to-order equipment |
| EP1710699A3 (en) * | 2005-03-29 | 2009-04-22 | Canon Kabushiki Kaisha | Information processing apparatus capable of customizing device driver, information processing method, and control program |
| CN103049297A (en) * | 2013-01-09 | 2013-04-17 | 福州博远无线网络科技有限公司 | Method for compiling and encapsulating software of intelligent device into custom-installation software |
| CN103544041A (en) * | 2013-11-12 | 2014-01-29 | 迈普通信技术股份有限公司 | Method and system for deploying software |
| US9152439B2 (en) | 2008-08-05 | 2015-10-06 | Hewlett-Packard Development Company, L.P. | Method and device for customizing software |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102779065B (en) * | 2012-03-26 | 2015-09-23 | 联想(北京)有限公司 | A kind of data processing method and electronic equipment |
| CN102800319B (en) * | 2012-06-28 | 2014-09-03 | 大唐移动通信设备有限公司 | Audio encoding and decoding assembly as well as audio encoder-decoder identifying method and system |
| CN106060795A (en) * | 2016-05-27 | 2016-10-26 | 努比亚技术有限公司 | Radio frequency parameter configuration device and method |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2329052A (en) * | 1997-08-29 | 1999-03-10 | Dell Computer Corp | Software installation and testing for a build-to-order computer system |
| US5894571A (en) * | 1995-08-14 | 1999-04-13 | Dell U.S.A., L.P. | Process for configuring software in a build-to-order computer system |
-
1999
- 1999-12-23 GB GB9930283A patent/GB2357600A/en not_active Withdrawn
-
2000
- 2000-12-19 CN CNB001359703A patent/CN1162770C/en not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5894571A (en) * | 1995-08-14 | 1999-04-13 | Dell U.S.A., L.P. | Process for configuring software in a build-to-order computer system |
| GB2329052A (en) * | 1997-08-29 | 1999-03-10 | Dell Computer Corp | Software installation and testing for a build-to-order computer system |
Cited By (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2365176B (en) * | 2000-02-08 | 2004-08-11 | Hewlett Packard Co | System and method for remotely retrieving information from a computer processing system |
| GB2365176A (en) * | 2000-02-08 | 2002-02-13 | Hewlett Packard Co | System and method for remotely retrieving information from a computer processing system |
| WO2003003201A3 (en) * | 2001-06-28 | 2003-12-24 | Daimler Chrysler Ag | Method for transmitting software modules |
| GB2382424A (en) * | 2001-08-17 | 2003-05-28 | Hewlett Packard Co | System and method for automatically installing a correct software version from media containing multiple software versions |
| GB2382424B (en) * | 2001-08-17 | 2005-08-17 | Hewlett Packard Co | System and methods for automatically installing a correct software version from media containing multiple software versions |
| EP1302851A3 (en) * | 2001-09-21 | 2004-06-16 | Hewlett-Packard Company, A Delaware Corporation | Improvements relating to reprogramming an electronic apparatus |
| GB2382891A (en) * | 2001-12-06 | 2003-06-11 | Nec Technologies | Apparatus for hardware revision identification |
| GB2382891B (en) * | 2001-12-06 | 2005-02-02 | Nec Technologies | Apparatus for hardware revision identification |
| US8190535B2 (en) | 2004-01-23 | 2012-05-29 | Dell Products L.P. | Method of manufacturing an information handling system |
| US7403927B2 (en) | 2004-01-23 | 2008-07-22 | Dell Products L.P. | Method of manufacturing an item of build-to-order equipment |
| US8751412B2 (en) | 2004-01-23 | 2014-06-10 | Dell Products L.P. | Method of manufacturing an information handling system |
| US7882044B2 (en) | 2004-01-23 | 2011-02-01 | Dell Products L.P. | Method of manufacturing an information handling system |
| WO2006037379A1 (en) * | 2004-10-08 | 2006-04-13 | Verigy (Singapore) Pte. Ltd. | Feature-oriented test program development and execution |
| US7930603B2 (en) | 2004-10-08 | 2011-04-19 | Verigy (Singapore) Pte. Ltd. | Feature-oriented test program development and execution |
| US8498002B2 (en) | 2005-03-29 | 2013-07-30 | Canon Kabushiki Kaisha | Information processing apparatus capable of customizing device driver, information processing method, and control program |
| EP1710699A3 (en) * | 2005-03-29 | 2009-04-22 | Canon Kabushiki Kaisha | Information processing apparatus capable of customizing device driver, information processing method, and control program |
| US9152439B2 (en) | 2008-08-05 | 2015-10-06 | Hewlett-Packard Development Company, L.P. | Method and device for customizing software |
| CN103049297A (en) * | 2013-01-09 | 2013-04-17 | 福州博远无线网络科技有限公司 | Method for compiling and encapsulating software of intelligent device into custom-installation software |
| CN103544041A (en) * | 2013-11-12 | 2014-01-29 | 迈普通信技术股份有限公司 | Method and system for deploying software |
Also Published As
| Publication number | Publication date |
|---|---|
| CN1300979A (en) | 2001-06-27 |
| GB9930283D0 (en) | 2000-02-09 |
| CN1162770C (en) | 2004-08-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100262677B1 (en) | ADD-IN Board With Enable/Disable Expansion ROM for PCI BUS Computer | |
| US5911084A (en) | System and method for accessing peripheral devices on a non-functional controller | |
| KR100264632B1 (en) | Add-in board with programmable configuration registers for pci bus computers | |
| US6457069B1 (en) | Method and apparatus for providing support for dynamic resource assignment and configuration of peripheral devices when enabling or disabling plug-and-play aware operating systems | |
| KR102570943B1 (en) | PCIe DEVICE AND OPERATING METHOD THEREOF | |
| CN101989240B (en) | For device resource allocation and the system and method that balances again | |
| GB2357600A (en) | Hardware dependent software installation | |
| US20100125679A1 (en) | Computer and method for directly accessing computer hardware by virtual system | |
| KR102568906B1 (en) | PCIe DEVICE AND OPERATING METHOD THEREOF | |
| EP1252569B1 (en) | Virtual rom for device enumeration | |
| JP3310990B2 (en) | Electronics | |
| JP4562107B2 (en) | Direct memory access engine to support multiple virtual direct memory access channels | |
| EP0595960A1 (en) | Computer workstation expansion chassis | |
| JP2002539524A (en) | Apparatus and method for handling peripheral device interrupts | |
| US5675761A (en) | Method and system for providing discontiguous drive support | |
| US5859987A (en) | Method and apparatus for providing multiple configuration reset modes for an intelligent bridge | |
| US6963947B2 (en) | Driver supporting bridge method and apparatus | |
| US7080164B2 (en) | Peripheral device having a programmable identification configuration register | |
| US6907521B2 (en) | Enabling video BIOS and display drivers to leverage system BIOS platform abstract | |
| JPH09237246A (en) | PCI agent control card and PCI agent control method | |
| US7124226B2 (en) | Method or apparatus for establishing a plug and play (PnP) communication channel via an abstraction layer interface | |
| JP4359618B2 (en) | Configuration register access method, setting method, integrated circuit parts, computer system, product | |
| US7228263B2 (en) | Method for representing root busses using object oriented abstractions | |
| US5892977A (en) | Apparatus and method for read-accessing write-only registers in a DMAC | |
| US10114770B2 (en) | Homogenous device access method which removes physical device drivers in a computer operating system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WAP | Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1) |