System Partition and IML
POST and BIOS in IML
POST and BIOS in Flash
POST Stages
System Partition (IML)
   Maximum IML Drive Size
   BIOS Upgrade for >1GB IML Drive
   Enhanced BIOS Effects on IML
   IML Partition visible under NT?
Reference Partition (Flash)
Resize a Partition after Creation?
Restore System Partition Tool Flashbacks
Install Syspart on Replacement Drive 
Reference Partition Structure
Reference Partition Service
   Restoring System Partition
   Access the System Partition
      Use the Refstamp Utility
      Using Debug
Files inside System Partition


POST and BIOS in IML (Type 1, 2, and 3 complex, Bermuda planar 76/77 only) 
   Some systems (such as Model 90 and 95), use Initial Machine Load (IML) to store the power-on self-test (POST) and Basic Input/Output System (BIOS) code. 
   In an IML system, some of this code is stored in ROM and is used for preliminary testing during power-on, but the balance of the POST and BIOS code, called the IML image, is stored in a protected area of the default hard disk called the System Partition. (The IML image is loaded onto the default hard disk when the system is manufactured.) 
   Note: On IML systems, if there is a power-on password set, the system always loads the IML image from the System Partition even if the Reference Diskette is in the drive. To load IML from the Reference Diskette, erase the power-on password. 
   Note: The Upgrade Type 1 DX2-66 is the lone exception to this. 

POST and BIOS  in FLASH (Type 4 complexes, 9585, and Lacuna planar 76/77 only) 
   Some systems (such as Lacuna planar 76/77, Server 85, Server 95, and Server 95A), have two electronically erasable programmable read only memory (EEPROM) modules, referred to as FLASH memory. 
   Depending on the model, these EEPROMs are either on the processor board or on the system board. The EEPROMs contain the POST and BIOS code. These systems always load the POST and BIOS code from the FLASH EEPROMS (POST and BIOS code does not reside on the System Partition or on the Reference Diskette.) FLASH allows POST and BIOS code to be updated without replacing any hardware. This is done with an update diskette. This diskette copies the new code to the FLASH EEPROMs. Instructions are included with an update diskette. 
   Note: The Type 1 Upgrade 486DX2-66 Complex has flash rom. It is the lone exception. 

POST Stages

1. When you turn on your computer, the IML process begins. The microprocessor performs it’s first instruction, which is located at a specific address in ROM. This instruction starts stage-1 POST, which is the portion of the POST code that is stored in ROM. 

2. Stage-1 POST tests and initializes enough of the system to allow the loader program in POST to search the first HD for a section of code known as the Master IML boot record, which will take controll of the startup process in stage-2 POST. In some PS/2 models, all the HDs are searched. Stage-1 POST uses a small, non-upgradeable section of BIOS code that is stored in ROM. The video subsystem, the first 1MB of RAM, and the diskette and HDs are tested and initialized in this setup. In medialess models, only the video subsystem and the first 1MB of RAM are tested and initialized. 

3. For Medialess models: 
   The loader program detects that the computer has no HDs and no floppy drives. If the loader program then detects a network adapter with a remote program load (RPL) module, it loads the master IML boot record from ROM. 
   For all other models: 
   The loader program searches the System Partition on the HD for the master IML boot record. If it finds a master IML boot record that is valid for your computer, it loads the boot record into RAM. If it doesn’t, it searches the diskette in the primary floppy drive. 
   If the IML program doesn’t find a valid master IML boot record on the diskette, it displays an error message. It will then either halt the system or look for the master IML boot record in ROM. 

4.   The master IML boot record takes control from the loader program. This begins stage-2 of POST. The master IML boot record copies the POST and BIOS code from the hard disk, diskette, or ROM into a 128KB area of RAM, creating the IML image. This area of RAM is also known as shadow RAM, because it is not counted as part of system memory. The BIOS code that is loaded by the master IML boot record functionally replaces the nonupgradeable BIOS code in ROM, which was used during stage-1 POST. 

5.   Stage-2 POST, which is the portion of the POST code that is stored on the hard disk, on a diskette, or in ROM, now operates from the IML image in RAM and takes control from the master IML boot record. When your display shows that the computer has started to count memory, that means the loader program has been successfully completed and stage-2 POST has taken control. 

6.   Stage-2 POST initializes and tests the rest of the computer (everything that stage-1 POST did not initialize). When you do a three fingered salute, the IML image is not recreated, and the startup process effectively begins with this step. 

7.   Stage-2 POST performs the IPL of the operating system. The selectable startup feature allows you to specify which storage device the operating system will be loaded from. When the OS is loaded, your system is ready to run programs. 

8.   For medialess models: 
   If a medialess model has been configured to re-create it’s IML image from the POST and BIOS code in the network server, it does so after the OS has been loaded. Loading the IML image from the server allows the medialess system to use updated POST and BIOS code, if updates have been installed in the server. 



System Partition
From Tim Clarke
Hi people, just to try to clarify some possible reasons for the confusion: 

1) IML machines require and use what I like to call a "System Partition" while Non-IML (Flash BIOS) machines allow use of what I like to call, in contrast, a "Reference Partition", which is sometimes referred to as a "Convenience Partition". 
2) "System Partitions" are 3MB is size. They are created at the *absolute end* of the drive's space (often partially invisible due to CHS mapping "rounding down", without the additional BIOS features "hiding" it on the active IML drive). 
3) "System Partitions" can only be created on SCSI drives attached to an IBM controller which is supported by the "IML extensions" in either the complex BIOS or the SCSI controller's BIOS. This excludes the RAID controllers. 
4) "System Partitions" are created and accessed via undocumented extensions to the BIOS Int 13h functionality. They are "invisible" to the normal, documented BIOS Int 13h functions, unless the system was booted from a Reference Disk(ette). 

Maximum IML Drive Size
  With the old Type 1 and Type 2 Complex BIOS, the maximum IML drive size is 1,023KB.
   With the upgrade T1 and T2 bios, the new border is now 3.94GB. This is caused by some odd regulations. There is a limited number of bits for the heads and sectors per track in the BIOS. IBM puts the IML record at [last data block on HD] minus 3MB, the IML FAT sits at the last physical sector of the HD *downwards* - pointing to a data block at [capacity] minus 3MB. 
   If the drive is over 4GB the *installation* uses the proper scheme: [last data block] minus 3MB ... but the IRQ of the ABIOS trying to read the IML FAT uses [4.0GB exactly] if the drive is over 4GB - and lands in the Nirwana. 

Complex BIOS Needed for >1GB IML Drive
From Tim Clarke
   After an extended E-mail exchange with Al Brandt, who couldn't get a machine to IML from a >1GB drive (SCSI ID. 6) attached to a SCSI-1 controller w/cache but with the notorious (now infamous?) 92F2244 and 92F2245 'Enhanced SCSI BIOS' ROMs using a Type-1 complex with either of the 'older' complex BIOS ROMs (i.e. 84F9154 for SOD Type-1 and 91F9812 for non-SOD Type-1), I decided to run my own tests. 
   'Enhanced IML' in the complex upgrades is the *only* way to be able to IML from a drive >1GB (and from a drive Id. ¬= 6). 
   At this time I must assume that the 92F2244+5 ROMs provide support for drives <= 4GB, but the 'old' complex ROMs' IML support somehow does not make (proper) use of it, possibly due to bad bit-shifting and/or masking when 'translating' the 'cylinder, head, sector' information to and from the SCSI 'logical block/sector' value. 

Enhanced BIOS Effects
From Charles Lasitter
   As a result of a programming project with Mr. Clarke, I am now fairly certain that the odd behavior of an IBM SCSI controller "ignoring" ID6 to lay an IML track on a drive that was ID5 was really a function of the enhanced BIOS, which sniffs out the signature of any current or previous IML partition on a series of drives, and insists upon installing or recovering a system partition to that same location. 
   This same feature is related to the IBM controller's inability to do an actual format of the drive if there has been an IML partition on the drive before.  The space at the end of the drive is never released, because the IBM controller refuses for format that area of the drive. 
   That's why I typically use the RAID adapter when I REALLY want to nuke some drives. 

Forcing an IML Track to ID6
   To force the system to lay an IML track on ID6, do one of the following: 
Use the non-enhanced version of that processor board BIOS.
   That way the processor can't lay an IML track on ANY drive other than ID6. 
Unhook all drives except ID6.
    That way the system BIOS and SCSI adapter can't see anything but the one that is there. 
Do a true format with a non-IBM controller
   The non-IBM controller cannot lay an IML track, so the full drive space is formatted. 
     NOTE The SCSI-2 controller has an IBM bios on it. You can lay the IML track with it.but it won't support IML off of it, the SCSI controller uses Int13, not Int4b. It's more of a convenience partition, anyways... 



Partition Visible Under NT?
Helmut P. Einfalt
   The IML seems to be accessible at least to NT...the hiding obviously is not done low down enough.When I connected my WfW 311-powered 9595-ALF (-OLF to them) to my NT network, NT obviously checked drives on a cross-network basis (which is ok, seems that it is indexing the drives in order to be fast) and boom -- I999 on next start. 
   Reinstalled the partition, worked a day through the net, accessing the ALF drive from various NT workstations, shut down, and boom -- I999 on next start. Did that for a while, heavily cursing Micro$, until I came up with the idea that maybe NT tried to write to the same sector as the IML was in. Set the drive to read only -- no more problems. 
   Although I'm a -- well, "power-" -- user, I'm not NTologist, so I can't really verify what actually happened, so this is but a wild guess out of years of user experience ("Always expect the worst when Micro$ is concerned"), but it seems to fit the picture. 

Reference Partitions (or convenience)
From Tim Clarke 
I haven't looked into "Reference" (SurePath, non-IML machines), as opposed to "System" (IML machines) Partitions in detail yet, but I believe that the following is the case: 
1) "Reference Partitions" are created and are accessible via the normal, documented BIOS Int 13h functions. So, they are "visible" to disk utilities such as FDISK etc. (Partition Type is 0FEh). Also, they can exist on any DASD device supported by BIOS Int 13h. Ed. This explains why you can see a Lacuna reference partition... 
2) When booted from a Reference Disk(ette), *only* the "System Partition" is visible/accessible, with the rest of the disk being "hidden". 
3) "Reference Partitions" are 6MB in size. I'm currently unsure if this is invariable, for all non-IML machines. 
4) "Reference Partitions" have an MBR partition table entry of type 0FEh. This partition type may be deleted by OS/2 FDISK, if you're not careful. I'm currently unsure if a non-IML machine's BIOS does anything to "hide" this, for the primary, or other drives. 

Resizing a Partition?
Peter Wendt
>How about using Partition Magic to resize the data partition down a wee bit to make room?  I haven't ever tried this method, but seems like it should work. 
   Try it. But I think it will not work, because the "Create IML partition" sets the IML-FAT infos at the last physical sector of the harddisk and makes the structure "top down" and leaves only a "reserved partition" info for the operating system that installs later (FDISK and such). As far as I know P.M. will only louse up the content of the data-partition and later you see an entry of a partition with 1.984.345.567 MB on a 100MB drive ... we had that recently. Don't try it on a machine that contains valuable data ....   Also: Today only the 2-disk-sets are available ... but these reserve a 4MB area - while the old ones reserve only 3MB ...! 



Restore System Partition Tool
Peter Wendt adds to the confusion by saying:
   Well ... the "Restore System Partition" tool is pretty dumb. It simply picks the drive with the highest ID available - and tries to install a system
partition there. This has two consequences:
- if the HD has defective sectors at the end of the physical area you might
get strange errors when you try to access the system partition (therefore
LL-Format is a *must* - to reduce the risk of having bad sectors)
- if you have only one HD at -say- ID0 the tool will surely create a system partition on that drive. If you add another at ID6 ... you might find yourself in trouble with an I999-error. Most newer machines have a "search IML partition" feature, but this seem to have some minor bugs.

If you run "Restore system partition" again a new partition will be
installed on the drive with the higher ID.  Unfortunately the system will do updates only to the "active" system partition. If decide to remove the higher drive the remaining "old" system partition is not updated.

>Does every HD need a System Partition or just the 'boot' HDD at ID6? 

Basically only the drive with ID-6 needs to have a system partition. IBM
SCSI boots "top down" (ANSI) and the priority list is 7 (the adapter), 6 (#1 drive), 5 (#2 drive) .... 0 (#6 drive). The lower IDs should be used for tapes and CD-ROMs due to the lower SCSI priority (and the ease of jumpering : ... none=0 :-) )

It does not harm to have more than one system partition - but as noted above - only the one at the highest-IDed drive is updated when you choose e.g. "Copy an option disk" or "Store Configuration".

>BTW I tried to restore the System Partition, and the restoring program gave an error: 'Unable to write to the diskette in the default floppy drive'. The disk was not write protected.

   During this process the machine normally does not write to the FDD. So I would guess this is a bogus error caused by something else. I vaguely recall that I had that at some point too - but do not remember any details on what I did. Sometimes you get these messages when System BIOS and version of the reference disk(s) do not match *or* if you have a virus problem ..... !

Had that once too - and IIRC there was a warning at IBM BBS back then, that a virus-infected HD / reference disk could cause *Write Access* errors on FDDs during Restore System partition processes. Wonder if I have kept that message. Will dig for it.



Installing a Sstem Partition on a Replacement Drive
By Greg Burton 
(From The IBM Advisor, the technical newsletter for IBM dealers) 

When installing the system partition on a PS/2 56/57/76/77/85/90/95, or ThinkPad 350/350C/500/700/700C/720/720C replacement hard drive, it is imperative that no data exist on the drive.  If there is an existing operating system partition on the drive, the system partition will "steal" 3MB of the operating system partition and not update the FAT (File Allocation Table) on the drive.  The partition size originally defined by the operating system, and shown by FDISK has not been updated either.  This can cause serious problems as the drive fills up, because there is not as much space for data as the operating system thinks there is.  The results of this are, unpredictable and inconsistent. 
   An example of this inconsistency is when a drive, say 120MB, has a single FAT partition on it and the system partition has been installed without first reformatting the drive.  If the drive is SCSI ID 6, due to the system BIOS CHKDSK will correctly report the drive as 117MB even though the FAT was not updated to show the loss of space for the system partition.  Removing and reinstalling the partition will not resolve the issue.  If the drive is set for any other SCSI ID, BIOS will not "catch" the discrepancy and CHKDSK will incorrectly report the partition as 120MB (as reported by FDisk).  This might seem to be correct, but we know a system partition has been installed and the partition is actually 117MB.  If the system attempts to write data into the "missing" 3MB used by the system partition, the results may be disastrous to the customers' data. 
   If you are going to install a system partition on a drive that had data on it, do a diagnostic format of the drive! 
   The system partition can only be installed on the primary SCSI controller.  The primary controller in the case of multiple adapters is 
the one in the lowest numbered slot.  The second requirement is that the drive with the system partition must be at SCSI ID 6. 

The proper way to install the partition is to: 
   1. Make sure there are no existing partitions on the drive.  If the drive has a partition on it must be low-level formatted from the Reference Diskette before proceeding.  The Reference Diskette low-level format program is the only way to format a drive that is set for SCSI ID 6 on the primary adapter. 
   2. Restore the system partition.  This process has the same effect as running FDISK to create a partition. 
   3. Press Enter to reboot the system. 



IML Partition Structure
Tim Clarke
   IML partition hiding is performed by subtracting 'n' (where 'n' = 3 or more, depending upon drive capacity) cylinders from the actual no. of cylinders that would have been reported via the Int 13h (for DOS) interface. Also, the read, write, seek sub-functions are limited to the 'perceived drive space'. There are undocumented calls to provide the same Int 13h functions *without* the IML space 'hidden' (or is it, with the 'hidden' and 'operating' spaces swapped). 
Location
Size in KB
Content
Description
Last sector on disk less 3MB
0.5
Partition Boot Record
Loads IBMBIO IBMDOS.COM to Boot Partition
4.5
1. FAT
FAT (#1 Copy)
4.5
2. FAT
FAT (#2 Copy)
7.0
Root Dir
Data Area Dir (224 Entries available)
2877.5
Data Area
Location of system programs
128
IML Image
Memory Image of POST / BIOS
Last sector on disk
49.5
IML MBR
IML MBR (48K reserved to account for defective sectors). This will load the IML-Image.The actual boot record is 3 sectors in length.

  [Table : System Partition Structure on 90XP / 95XP]
  [Source: PS/2 Fundamentals, IBM GG24-3616-00, Page 50 ]



Reference Partition Service
(Original lifted from Peter's Site) 

WARNING: Any editing of the system/reference partition has the potential of changing or deleting files. Some of these files are actually the BIOS for the system. Just as you would not erase a flash CMOS chip on a clone machine, DON'T delete any files in the partition. If you delete or change any file, the responsibility is all yours. I will not accept any responsibility for anyone accidentally deleting important files from their partition. 

You have a system with a reference partition on the harddisk and one or more conditions exist: 
    Get an error beginning with I999xxxx 
    Cannot do 'Backup Reference Partition' anymore 
    Wanted to see what's on it anyway 

Follow instructions to create a simple starter-disk to open reference  partition. 

 Get more infos about I999-Errors and the files to find on the reference partition. 

Restoring System Partition

On most systems you will need 2 or more Diskettes: 
   the Reference Diskette 
   the Diagnostic Diskette 
   probably Option Diskettes  if you have not backed up your System Partition after adding files 

To restore System Partition: 
   Start the machine from the Reference Disk. 
   Pass the IBM startup logo and displayed error messages. 
   From the main menu select 'Backup / Restore Systempartition' 
   Select 'Restore System Partition' 
   Follow the instructions on the screen 
   Restart the system 

Opening the System Partition from DOS
   Normally the System Partition is hidden and can only be accessed with the reference disk ("Copy An Option Disk") or by pressing [CTRL]+[ALT]+[INS] after a reboot, when the cursor jumps to the top right corner of the screen. 
   However: you cannot copy or delete anything directly from it anyway. 
   If you often change adapters and often do 'Copy An Option Disk' it may one day happen, that 'Backup System Partition' ends up with a 'Disk Full'-error and is aborted before the entire partition is saved to disks. 
   IBM recommends to restore the system partition from a set of original disks again - but if you do this all your additional ADFs and ADPs are lost and you will have to add them once again from the (hopefully existing) Option Disks. 

Refstamp
REFSTAMP is a utility whose sole purpose is to add that signature to a disk; it touches nothing else on the disk except those three bytes. Written by Bob Eager. 

Most users of PS/2s will know that reference disks (and certain other maintenance-related disks) have a special property. This property is that they will, barring a major misconfiguration, always boot even if the machine has a configuration or other problem which results in error codes being displayed on power-up or reboot. 
   This special property is not provided in a very magic way; the BIOS simply looks for three particular bytes that make up a 'signature' in the boot sector of the disk. If these three bytes are found, in the right place, the disk will boot despite any POST errors. As a bonus, if you have a reference partition on the hard disk, you will find that for the duration of that boot, your reference partition will appear as drive C:. This provides a good way of deleting unwanted files without going to the trouble of restoring the reference partition from the original disks. 

Using DEBUG to Access Partition
   Format a disk under DOS -any version above 4.00, MS-DOS or PC-DOS- with the parameter /S to make it bootable and have a system on it. 

Start DEBUG 
   You will get the DEBUG 'minus'-prompt 
   Type the following - all behind the ';' is comment: 

L 0,0,0,1 ; open drive A: and read boot-sector 
D 0       ; display content of sector from adress 0 on 
E 8       ; edit byte 08h 
- E XX 20 ; content of 08h displayed, enter only the 20! 
          ; press [SPACE] 
XX 33     ; content of 09h displayed, enter only the 33! 
          ; press [SPACE] 
XX 79     ; content of 0Ah displayed, enter only the 79! 
          ; press [ENTER] 
D 0       ; display content: 3y must be at 09h and 0Ah!
W 0,0,0,1 ; write the sector back to drive A: 
Q         ; quit DEBUG 

You're back at the DOS-prompt 

Do Not perform a DIR-command or Explorer-View on this Disk from Win95 ! Win95 overwrites the header and all modifications just made are changed again. 

  Copy editor, tools like CHKDSK on the disk as required 
   Insert the disk into your PS/2 and start it over 
   After the DOS-prompt reappears try a DIR C: /W 
   You are now on your System Partition. 

Attention: Watch out not to delete files the system will need later on ! 



Files within System/Reference Partition

   You may -of course- delete ADFs and corresponding ADPs from cards which are no longer installed in the system. Download QBMCA software to find out which one are already installed. 

ADFs can be sorted into the following groups: 
      @xxxx.ADF are Adapter Desription Files (ADF) ASCII-files and can be viewed /edited 

These 3 types cannot be edited or viewed (you can, but garbled crap) 
      @xxxx.DGS are Diagnostic Files for the corresponding Adapter 
      Cxxxx.ADF are corresponding Adapter Description Programs (ADP) 
      Ixxxx.ADF are ADPs, mostly Init Files for Memory Expansion Cards. 

 ASCII-files, viewable 
      Dxxxx.ADF are Planar Description Files for the Systemboard 
      Pxxxx.ADF are Planar Option Files for the Systemboard 

EXE-files, not viewable
      Sxxxx.ADF are Planar Setup Files for the Systemboard 
      Jxxxx.ADF are Planar Setup Files for the Systemboard 

      Exxxx.ADF are Description Files for Expansion Units (Thinkpads) 
                 ASCII-files, viewable 

   Basically: Leave all DGS-files untouched unless they can be definitely assigned to a card which is no longer in the system. Same recommendation to all Planar Files. Some may be deleted of course, because they belong to other machines, but it is hard to tell which ones. 
    You may find out, which Planar your machine uses with QCONFIG from PC-DOS 6.3 or later. Run it with the Option /D /O and edit the File QCONFIG.OUT. The Planar ID is given somewhere in this text. 
 
 

9595 Main Page