Network computer workstation with initial program load control
FIELD AND BACKGROUND OF DISCLOSURE 
     The present invention relates to a computer workstation, preferably for use with a computer network such as a Local Area Network (LAN) and to a computer network incorporating such a workstation. The invention relates particularly to enabling initial program load into the working memory of such a workstation. 
     With current technology, the main working memory of a computer workstation such as a personal computer is volatile. In other words, the memory does not retain the information stored therein when the computer is turned off. As a result of this, one of the first operations to be performed when a computer is turned on is to load initial programs into the working memory to provide the basic tools and utilities which define the operations of the computer workstation. Such initial programs include the Basic Input/Output System (BIOS), the operating system for the computer and particular applications defined by initialization control information. 
     In early personal computers, the initial programs were loaded into the memory from a cassette tape. However, in more recent personal computers, the initial program load (IPL) occurs from a diskette drive, either from a floppy disk (usually called the &#34;A&#34; drive) or from a fixed, or hard disk (usually called the &#34;C&#34; drive). The initialization control information which causes the IPL comprises Power On Self Test (POST) code, IPL control logic (often termed the boot record) and control data. The POST code can be stored in read only memory, or it can, at least in part, be hardwired in the computer. When the computer is powered up, the POST code tests the status of the computer subsystems and then passes control to the boot record, which usually held on a diskette medium in a stand alone computer. The control data, which is used by the POST and boot record, can be stored in non-volatile read/write memory such as CMOS memory. 
     In a conventional stand alone personal computer, the POST code interrogates the floppy disk drive to test whether the drive contains a bootable diskette (i.e. whether a diskette is present and whether a valid boot record is held thereon). If it does, then the boot record on the diskette is used to control the initialization of the system. If there is not a bootable diskette in the floppy disk drive, then POST reverts to the hard disk drive for the boot record. In either case, the boot record causes the loading the initial programs into the personal computer&#39;s working memory from the &#34;A&#34; or &#34;C&#34; disk as appropriate. If no boot record is found in either source, control reverts to a BASIC ROM module in the personal computer. 
     If a personal computer workstation is provided with a suitable adapter and connected to a computer network such as a LAN there can be another potential source for the IPL operation. Indeed, in the case of a medialess workstation (i.e. a personal computer without diskette or tape drives) connected to a LAN by means of a LAN adapter, the only source of IPL is the LAN itself. In some cases it may be possible to upgrade a medialess personal computer to include a floppy or fixed diskette drive. There is a need, therefore for a secure mechanism for determining the source of an IPL for personal computer workstation which is suitable for or may be adapted to work with a LAN or other network. 
     A disclosure, entitled &#34;Dual Function ROM that Controls the Initial Program Load (IPL)&#34;, published in International Technology Disclosures (ITD), Vol. 7, No. 12, 25 December 1989 as disclosure number 128901, describes a process which allows IPL in a personal computer from an internal diskette medium, or alternatively from a local area network server or other communications medium. Decision making paths and set-up code are provided in the routines of ROM control microcode for determining the IPL source. A non-volatile memory in the computer contains option and set-up information including a Remote IPL (RIPL) Enable Flag which can be set by the operator of the computer. When the computer is powered up, a Power On Self Test (POST) program stored in read only memory interrogates this RIPL Enable Flag and tests for the presence of any local and/or remote IPL devices, and for the status of all computer subsystems. The IPL operations occur in accordance with the results of the tests performed by the POST program. The POST program contains default information which enables a medialess personal computer to be initialized. 
     The ITD disclosure describes a process which allows IPL in a personal computer or workstation from an internal diskette medium, or alternatively from a local area network server or other communications medium. It appears that the process is also applicable where the personal computer is medialess. However, it does not describe how the IPL operation can be made secure. There is a need in a network environment, especially a LAN environment, to ensure that the default IPL is a remote IPL. 
     BRIEF DISCLOSURE OF THE INVENTION 
     In accordance with a first aspect of the present invention, there is provided a computer workstation, preferably for use with a computer network, the computer workstation comprising an initial program load (IPL) determinator held at a predetermined location in non-volatile read/write storage for indicating the source of initial program load control logic and permanently resident initialization control logic which is operable on power on, to interrogate the IPL determinator to determine the source of IPL control logic, to set, at a predetermined location within a reserved data area of the workstation RAM, an IPL source indicator and to pass control to the IPL control logic for causing initial programs to be loaded into the workstation RAM from the IPL source. 
     The provision of the IPL source indicator means that after initialization, applications running in the workstation&#39;s working memory or on a server of a network to which the workstation is connected, can check on the source of the IPL control logic (or boot record) by interrogating the IPL indicator flag within the reserved data area. Thus, even if the IPL determinator flag is changed in preparation for a subsequent session, the indicator will reliably reflect the source of IPL for the current session. 
     In a preferred embodiment, the initialization control logic is in the form of Power On Self Test (POST) code held in Read Only Memory. 
     The present invention is particularly adapted for use with a workstation which can be adapted for connection to a computer network by the provision of a network adapter with remote IPL capability. In such a case, the initialization control logic preferably sets the IPL source indicator only when a network adapter with remote IPL capability is present in the workstation. 
     For providing the selectable setting of the IPL source indicator, the initialization control logic is preferably arranged to detect when a default IPL interrupt vector (preferably the interrupt `Hex 18` vector) has been overwritten by a network adapter with remote IPL capability. When this has occurred, the initialization control logic saves the content of the default interrupt vector and replaces the content thereof with the address of logic for setting the IPL source indicator. 
     Preferably, the non-volatile read/write storage is CMOS memory, the initial program load (IPL) determinator being a single bit held at a location address hexadecimal (Hex) 13 in CMOS memory. The IPL source indicator is preferably implemented as a single bit held at location address Hex 011A in the extended BIOS data area. 
     The computer workstation can be in the form of a medialess, but upgradeable personal computer. 
     The invention also provides a computer network (e.g. a LAN) comprising a network server and at least one computer workstation as defined above. 
     In order to ensure that the network administrator is able to determine the IPL source for workstations connected to the network, the IPL determinator bit is preferably only changeable by means of an operating system independent network utility which is resident on the network server. 
     In accordance with a second aspect of the invention, there is provided, a method of initialising a computer workstation having non-volatile read/write storage, workstation random access memory (RAM) and permanently resident initialization control logic; the method comprising the steps, on powering on the computer workstation, of: 
     a) interrogating an initial program load (IPL) determinator to determine a source of IPL control logic, the IPL determinator being held at a predetermined location in non-volatile read/write storage; 
     b) setting, at a predetermined location within a reserved data area of the workstation RAM, an IPL source indicator; and 
     c) passing control to the IPL control logic for causing initial programs to be loaded into the workstation RAM from the IPL source. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Some of the objects of the invention having been stated, other objects will appear as the description proceeds, when taken in connection with the accompanying drawings, in which: 
     FIG. 1 is a schematic block diagram of a typical computer workstation for use with a Local Area Network; 
     FIG. 2 is a schematic overview of typical Local Area Network; 
     FIG. 3 is a flow diagram showing control logic for implementing the present invention; 
     FIG. 4 is a flow diagram showing further control logic for implementing the present invention. 
    
    
     DETAILED DESCRIPTION OF INVENTION 
     While the present invention will be described more fully hereinafter with reference to the accompanying drawings, in which a preferred embodiment of the present invention is shown, it is to be understood at the outset of the description which follows that persons of skill in the appropriate arts may modify the invention here described while still achieving the favorable results of this invention. Accordingly, the description which follows is to be understood as being a broad, teaching disclosure directed to persons of skill in the appropriate arts, and not as limiting upon the present invention. 
     FIG. 1 is a schematic block diagram of a typical computer workstation 10 in the form of a personal computer. The workstation is comprised of a central processing unit 11 in the form of a conventional microprocessor connected to a number of other units via a system bus 12. A keyboard 13 and other user input devices such as a mouse 13&#39; can be connected to the system bus via a user-interface adapter 14. A display adapter 15 is provided for controlling the display of data on a display device 16. 
     The workstation memory 17 is also connected to the system bus. The bulk of this memory is volatile random access memory (RAM). However, it also contains some non-volatile read/write memory in CMOS technology and some Read Only Memory (ROM). It is shown in FIG. 1 as contiguous memory, as it is normally addressed in this way. However, it should be appreciated that FIG. 1 is purely schematic, and separate parts of the memory can be separately connected to the system bus. 
     When the workstation is to be configured for connection to a LAN, a LAN adapter 18 is provided. The workstation is also shown to comprise a internal diskette media adapter 19 for connecting the system bus to internal diskette drives such as a floppy-disk drive 20 and/or a hard-disk drive 21. When the workstation is configured for use with a LAN, then these local diskette media are optional, as the LAN servers can provide the storage functions provided by the local media in a stand-alone computer configuration. If the computer workstation is to be configured as a stand alone computer workstation (i.e. with no LAN or external computer support) then the LAN adapter is not required, but some local large capacity storage media such as one or more disk drives would be needed. 
     Other adapters can also be provided for connecting other devices to the system bus. For example, an adapter could be provided for connecting the workstation to other types of communications media, for example for a direct connection to a mainframe computer system. Also, a printer adapter (not shown) could likewise be provided for connecting a printer to the system bus. In each case the adapter could be incorporated on the computer&#39;s motherboard, or can be provided in the form of an add-on adapter card as appropriate. 
     FIG. 2 is a schematic overview of a typical LAN 30. As shown, the LAN comprises a communication medium 31, a LAN server 32, which controls the LAN, a file server 33 which controls the storage of files and a plurality of workstations such as the workstation 10. The individual workstations 10 need not have identical configurations, but can be adapted to individual requirements. However, a LAN adapter will be required to connect the workstations to the LAN. 
     The initialization of a workstation such as the workstation 10 will be described with reference to the flow diagrams in FIGS. 3 and 4. On powering up the workstation, Power On Self Test (POST) code, which is stored in the workstation ROM, operates as illustrated by the flow diagram in FIG. 3. FIG. 4 illustrates a private interrupt handler for enabling the setting of a IPL indicator to reflect the IPL source. 
     The steps in the logical flow diagram of FIG. 3 will now be described, referring to the reference numerals as appropriate. 
     40--When the workstation is switched on, it executes the Power On Self Test (POST) diagnostics which tests all devices in a conventional manner. 
     41--During the initial, conventional POST processing, the interrupt `Hex 18` vector is set up to point to the Personal Computer&#39;s BASIC Read Only Memory. 
     42--POST also initialises all installed adapters including any LAN adapters. If a LAN adapter with Remote IPL (RIPL) capability is present, the initialization of the adapter will, as normal, cause the interrupt `Hex 18` vector to be overwritten with the start address for the RIPL logic of its own on-board RIPL ROM. 
     43--POST compares the contents of the interrupt `Hex 18` vector with the workstation&#39;s hardcoded BASIC Read Only Memory address. If the interrupt `Hex 18` vector has changed, POST proceeds to check whether the ROM is a RIPL ROM. If it is a RIPL ROM, POST saves the changed interrupt `Hex 18` vector contents in location addresses Hex 011D to 0120 in the Extended BIOS data area, and writes the address of a private interrupt `Hex 18` logic (FIG. 4) into the interrupt `Hex 18` vector location. 
     In this way, POST detects whether the interrupt `Hex 18` vector has been overwritten by a network adapter with remote IPL capability. By then replacing the content of the interrupt `Hex 18` vector with the address of the private interrupt `Hex 18` logic, having first saved the content of the default interrupt vector, calls to the interrupt `Hex 18` will be intercepted to the private interrupt `Hex 18` logic when a network adapter with remote IPL capability is present in the workstation. 
     44--If a local diskette drive is installed, POST checks whether a diskette with a valid boot record is present in the diskette drive. If it is, control is transferred to the diskette boot record. 
     45--POST checks the IPL determinator in the read/writable nonvolatile memory. The IPL determinator is a single bit in the workstation&#39;s CMOS storage, at address location 13h, bit 5. If the IPL determinator is set for Remote IPL (i.e. in the present implementation set to logical &#34;1&#34;), control is transferred to the remote IPL process via the private interrupt `Hex 18` logic. 
     46--POST checks whether a local fixed disk is installed. If it is not installed, control is transferred to the remote IPL process via the private interrupt `Hex 18` logic. 
     47--If a local fixed disk is installed, POST checks whether a fixed disk boot record is present. If it is not present, control is transferred to the remote IPL process via the private interrupt `Hex 18` logic. 
     48--The boot record then proceeds to check whether a primary active partition is declared on the fixed disk. If the boot record is present, but the primary partition is deleted or corrupted, the boot record transfers control to the interrupt `Hex 18` vector which points to the private interrupt `Hex 18` logic. 
     Turning to FIG. 4, there now follows a description of the private interrupt `Hex 18` handler. This logic is called when control is passed to the interrupt `Hex 18` vector during the processing of FIG. 3. As before, this Figure is described referring to the reference numerals where appropriate. 
     50--The private interrupt `Hex 18` logic is entered when an adapter with RIPL capability is installed in the workstation. 
     51--The IPL indicator is set in the Extended BIOS data area at location address Hex 011A. The IPL indicator is a single bit (specifically bit 0 at location address Hex 011A. In this embodiment the IPL indicator indicates Machine booted from a RIPL adapter if it is set to 1. 
     52--Control is transferred to the start address of the RIPL logic in the LAN adapter&#39;s ROM at initialization time. 
     Once control has transferred to the RIPL ROM logic, the RIPL ROM logic establishes the connection with a remote network server, and enables the remote IPL of the operating system in a conventional manner. 
     After initialization, applications running in the workstation&#39;s working memory or on the LAN server can check on the source of the IPL by interrogating the IPL indicator at the location address Hex 011A in the Extended BIOS data area. 
     In this way, even if the determinator is changed in preparation for a subsequent session, the indicator will reliably reflect the source of IPL for the current session. 
     Although a particular embodiment of the present invention has been described, it will be appreciated that many additions and modifications are possible within the scope of the appended claims. 
     For example, although in the example of the invention described above, the POST code, (i.e. the initialization control logic) is held in ROM, it could be implemented, at least in part, in the form of special purpose hardware logic. Also, although in the above embodiment the IPL determinator is held in non-volatile CMOS memory, it could be held in another type of non-volatile read/write memory, or in a special purpose read/writable register. 
     The present invention is particularly suited for, but not limited to a workstation for incorporation in a LAN. The specific example described above relates to a workstation for connection to a LAN in which the default IPL source is the remote LAN server. It will be appreciated, however, that the invention is equally applicable to a situation where it is intended that the default IPL source is the local diskette media within the workstation, and that the invention is not limited to workstations for connection to a LAN.