This is a note to record booting the Java box with emphasis on debugging hooks. After tftp has moved the file /tftpboot/kkboot from the Unix file system to the Javabox RAM, the code micro_loader runs. The micro_loader maps the kernel and its data areas as the loader had planned as it produced the file "kom". It does this without copying the data. These virtual addresses are of the form 0xf0XXXXXX. Write access is set according to the elf information. The micro_loader leaves notes in an area called Missive concerning a few things that the kernel must know such as what real addresses are available for user pages. I do not recall how primordial user pages holding domain code are identified to the kernel. When the micro_loader has finished, it transfers control to code labeled "kk_entry" which is assembler code in file locore.s. There is a trap instruction, ta 0, in the delay slot of the branch to kk_entry. This provides an opportunity to invoke OB commands after mapping the kernel but before runing it. The trap may be found in micro_loader.s by searching for the string "Look before you Leap.". At this point the traps are still as provided by OB but the map is as built by the micro_loader. OB still handles register window logic but there is as yet no saves and restores to be managed. In particular this initial trap is under the aegis of OB as TrapHeist is not yet in place. The code at kk_entry makes some notes about the state of the world at this point. Most of the reasons for making these notes no longer pertain but we have not removed this code as it seems rather harmless. Usually the reason was to be able to restore some of the state in case we needed help from OB. kk_entry sets WIM and CWP to known values as there is no plan to return. The number of register windows is sensed and recorded. The tbr register is set, currently to the trapHeist table but eventually to the assembled trap table. TrapHeist is logic that intervenes and records each trap, causes a debugging trap contingent on the trap index, otherwise slinks away unobserved after the record is made by defering to the assembled trap table at "scb". "Main" is then called with no expectation of return. N.B. at this point all traps including window traps are handled by kernel code except for the OB breakpoint. With TrapHeist there are two ways that can lead from trap to debugger. Heist may use its own logic to dump you into OB, or it may pass thru to the assembled trap table where kernel logic pronounces it invalid and invokes a debugger. I think now that I will make Heist dump you to OB while kernel logic dumps you into new gdb logic. A third alternative is to write a dump on reserved disk space. -------------------- cd p4/norm/keykos p4 integrate //depot/keykos/main/... ./... (Now the central data base knows the pedigrees of the various files.) systool pw = 4ft67uj