31.01.2013 Views

using the bootstrap loader

using the bootstrap loader

using the bootstrap loader

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

1.2 THE STAGES OF THE BOOTSTRAP LOADER<br />

OVERVIEW OF BOOTSTRAP LOADER OPERATIONS<br />

The Bootstrap Loader has a number of stages that control <strong>the</strong> loading of <strong>the</strong> application<br />

system. iRMX I applications load with a two-stage process. iRMX II applications use<br />

<strong>the</strong>se two stages but also require a third stage.<br />

1.2.1 First Stage<br />

The Bootstrap Loader's first stage consists of two parts. One part is <strong>the</strong> code for <strong>the</strong> first<br />

stage. The o<strong>the</strong>r part is a set of minimal device drivers used by <strong>the</strong> first and second stages<br />

to initialize and read from <strong>the</strong> device that contains <strong>the</strong> system to be booted.<br />

The Bootstrap Loader package contains device drivers for many common Intel devices. To<br />

support o<strong>the</strong>r devices, you can write your own drivers and configure <strong>the</strong>m into <strong>the</strong> first<br />

stage.<br />

To use <strong>the</strong> Bootstrap Loader, <strong>the</strong> first stage must be in one of two places. The natural<br />

place for <strong>the</strong> first stage is in PROM devices, ei<strong>the</strong>r as a standalone product or combined<br />

with a monitor. Intel 300 Series Microcomputers are delivered with <strong>the</strong> Bootstrap<br />

Loader's first stage, <strong>the</strong> iSDM monitor, and <strong>the</strong> System Confidence Test (SCT) in <strong>the</strong><br />

PROM devices.<br />

When <strong>the</strong> first stage begins running, it first identifies <strong>the</strong> <strong>bootstrap</strong> device and <strong>the</strong> name of<br />

<strong>the</strong> file to boot. It can identify <strong>the</strong> device from a command line you enter at <strong>the</strong> monitor,<br />

or it can use default characteristics established when <strong>the</strong> first stage was configured. The<br />

Bootstrap Loader <strong>the</strong>n calls its internal device driver for <strong>the</strong> device, to initialize <strong>the</strong> device<br />

and read <strong>the</strong> first portion of <strong>the</strong> second stage into memory. This occurs for all devices<br />

except when <strong>the</strong> device is located in a remote system (for example, over a Local Area<br />

Network). After calling <strong>the</strong> internal device driver, <strong>the</strong> first stage passes control to <strong>the</strong><br />

second stage. When <strong>the</strong> <strong>bootstrap</strong> device is a remote device, <strong>the</strong> remote system does not<br />

load <strong>the</strong> second stage.<br />

Debugging <strong>the</strong> First Stage<br />

Because <strong>the</strong> first stage works on both 8086/186- and 80286/386-based computers, it<br />

operates in real address mode when running in an 80286/386-based system. This means<br />

that any device drivers you write for <strong>the</strong> first stage must operate in real address mode.<br />

If you have a system that includes <strong>the</strong> iSDM monitor and you are adding your own device<br />

driver to <strong>the</strong> Bootstrap Loader's first stage, you will find it useful to load <strong>the</strong> first stage into<br />

<strong>the</strong> target system's RAM <strong>using</strong> a development system iSDM <strong>loader</strong>. Then you can activate<br />

<strong>the</strong> first stage under iSDM control from <strong>the</strong> development system. After activating <strong>the</strong> first<br />

stage, you can <strong>the</strong>n debug driver code.<br />

Bootstrap Loader 1-3

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!