
October 13 1995, Draft 1
358
Addendum to –– Evaluating and Programming the 29K RISC Family
The example trap handler marks data pages for read and write access only. If the
CHA address does not fall within the allowed region, then a TLB entry is not built,
and, normally, program execution not restarted. Instead, the DebugCore is entered
and the trap number passed.
7.4.6 Down Loading a New OS
One way to replace OS–boot with another operating system is to simply link the
new operating system with the MiniMON29K modules and, if necessary, place the
result in EPROM memory. Or alternatively down–load the linked image to the target
29K system using MiniMON29K messages. However, many users like to keep the
existing OS–boot/MiniMON29K combination in place and down–load only the new
operating system (or a portion of it) –– this can create complications. Assuming no
changes are made to the supplied OS–boot, then, when the loaded OS’s execution is
started, with say a MonDFE ‘g’ command, warm–start code will prepare for execu-
tion to begin at the first instruction of the new operating system. Generally a HIF
se-
trap
service call is made followed by an assertion of the assigned trap number. This
allows Supervisor mode to be entered.
The new operating system must initially run in Supervisor mode to take over
processor resources initially under OS–boot control. If the floating–point trap han-
dlers are to remain installed, then the new operating system must be careful to re-
member their global register support requirement. If the new operating system is still
supporting HIF services then it must also pay attention to the HIF trapware register
usage. HIF traps will occur if any application code run by the new OS is linked with
libraries intended for use with a HIF conforming operating system. However, often a
new operating system will replace the HIF libraries with new libraries which do not
call HIF, but make use of the system call services of the new operating system.
The HIF trapware code can be replaced with new code, whose register usage is
better integrated with the new operating system, by the new system
taking over
the
HIF vector table entry. If this is done, then it is likely that the operating system mes-
sage interrupt handler will also be
taken over
. Unless the
os_V_msg
trap handler ad-
dress is replaced, the message system will continue to call the OS–boot interrupt han-
dler. And the associated operating system register usage should be taken into ac-
count. Alternatively, AMD supplies driver routines which make it easy for a new op-
erating system to use the original message system for standard input and output com-
munication. This eliminates the need for the new OS to to takeover the message sys-
tem interrupt handlers.
The MiniMON29K message system is typically supported by low level driver
code which is often interrupt driven. Most often this is a UART interrupt handler. The
message system will not generate virtual interrupts if the low level handler vector
table entry is taken over. This can be necessary because of interrupt overloading. For
example, the Am29200 interrupt INTR3 is used for all peripheral devices including