Re: LIL- caused by a DiskOnChip? and other SSD questions.

Richard B. Johnson (
Sat, 22 Mar 1997 22:55:41 -0500 (EST)

On Fri, 22 Mar 1996, Jeffrey Wiegley wrote:

> I'm working on an embedded project. My platform is a single board
> computer manufactured by Ampro, CoreModule/4DXi model. And I have a
> problem booting it and I also have some questions related to it.
> The problem I am currently having is centered around what is known as a
> DiskOnChip. It is a Solid State EEPROM socketed to the board which,
> through BIOS, acts exactly like a hard drive.
> At what point during the boot process does the BIOS stop being used and
> what happens to it? Why can't we use BIOS stuff under linux? (I
> realize there are good reasons like its inefficient, but I would like to
> know what those reasons are).
The BIOS is used only to load the OS from the boot sector(s). Once the
machine is put into 32-bit protected mode, the BIOS can't be used directly
because its segments were written for 16-bits 16-bytes per segment, "real"
mode operation.

You COULD write a 16-bit segment decsriptor that COULD be accessed from
16-bit mode. In fact, that's how the MS-DOS emulation (virtual '86 mode)
works. The area addresed COULD be the proprietary RAM-Disk area. However,
as you note, it probably does not act like RAM. If your machine can boot
MS-DOS off the RAM-Disk, It SHOULD be able to boot any operating system
that will fit, because the entire operating system is loaded before the
machine is put into protected mode. I would do it like this:

>From Linux, copy your operating system to a floppy disk:
Make sure you have used 'rdev` to set the right root file-system.

cp /vmlinux /vmlinux.old
cp /usr/src/linux/ /
cp /usr/src/linux/arch/i386/boot/zImage /vmlinux
ROOTDEV=`df / | cut -d ' ' -f1 | sed -e1d`
echo -n 'Setting root device as ' ; echo ${ROOTDEV}
rdev -R /vmlinux 1
rdev /vmlinux ${ROOTDEV}
cp /vmlinux /dev/fd0

Then, from DOS, write a program to copy the floppy image to the
RAM Disk image (just copy all sectiors and all tracks in a 1:1
correspondance. Note that MS-DOS's diskcopy won't work because
it checks for a DOS disk even though it copies the disk image.

You use INT 13H to read and write to the raw devices.

Configure your machine to boot from the RAM Disk as though it was
MS-DOS. It should boot Linux.

Dick Johnson
Richard B. Johnson
Project Engineer
Analogic Corporation
Voice : (508) 977-3000 ext. 3754
Fax : (508) 532-6097
Modem : (508) 977-6870
Ftp :
Email :,
Penguin : Linux version 2.1.29 on an i586 machine (66.15 BogoMips).
Warning : I read unsolicited mail for $350.00 per hour. Supply billing address.