POST and BIOS in IML
POST and BIOS in Flash
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
Installing System Partition on a Replacement Drive
Reference Partition Structure
Reference Partition Service
Restoring System Partition
Access the System Partition
Use the Refstamp Utility
Files inside System Partition
POST and BIOS in IML
(Type 1, 2, and 3 complex; 76/77 w/ Bermuda planar)
Some systems (see above), 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.
Type 1 Upgrade DX2-66 Complex
is the lone exception to this.
POST and BIOS in Flash
(Type 4 complexes; 9585; 76/77 w/ Lacuna planar)
Some systems (see above), have two electronically erasable
programmable read only memory (EEPROM) modules, referred to as Flash memory.
Depending on the model, these Flash modules are either on the
processor board or on the system board. The Flash memory contain the POST and
BIOS code. These systems always load the POST and BIOS code from the Flash
memory (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. Instructions are included
with an update diskette.
Type 1 Upgrade DX2-66 Complex
has Flash ROM. It is the lone exception.
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 control 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
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 non-upgradeable 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.
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
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
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
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]
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.
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.
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
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.
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...
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.
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.
>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
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
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
>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.
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 System 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
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'
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
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
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).
System Partition Structure on 90XP / 95XP
|Last sector on disk less 3MB
||Partition Boot Record
||Loads IBMBIO IBMDOS.COM to Boot Partition
||FAT (#1 Copy)
||FAT (#2 Copy)
||Data Area Dir (224 Entries available)
||Location of system programs
||Memory Image of POST / BIOS
|Last sector on disk
||IML MBR (48K reserved to account for defective sectors).
This will load the IML-Image.The actual boot record is 3 sectors in length.
Source: PS/2 Fundamentals, IBM GG24-3616-00, physical page 71.
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
Get more infos about I999-Errors and the files to find on the
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
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
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
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.
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
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
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
Start DEBUG. You will get the DEBUG 'minus' prompt. Type in the following
lines (everything behind the ';' symbol is a comment):
L 0,0,0,1 ; open drive A: and read boot-sector
D 0 ; display content of sector from address 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 now.
Attention: Do NOT perform a DIR command
or Explorer View on this Disk from Windows 95! It will overwrite the header
and the modifications we have just made will be all gone 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: When deleting files from the
disk, be careful not to delete anything that the may need later on!
Files within System/Reference Partition
You can delete ADFs and ADPs for cards that are no longer
installed in the system. Download the QBMCA
utility to find out what cards are currently installed in your system.
ADFs can be tied not only to adapter cards but also to planar
boards. Some ADFs are just a regular plain-text files, and can be easily viewed
(and with some care even edited) using your everyday text editor. Some ADFs are
binary files however, and to understand them, and be able to modify them, you
will need knowledge of the x86 assembly, some reverse engineering skills, and
the right tools (hex-editor, disassembler, debugger etc.).
To learn about the different ADF types, go
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.