tuck@iris.ucdavis.edu (Devon Tuck) (08/23/90)
I am forwarding a response from SCO to my original question. This explains in detail each of the boot diagnostics that Xenix goes through. Devon -=-=-=-=-=-=-=-=-=-=-=-=-=- Here it is... -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= |What is the meaning of the boot letter sequence displayed under SCO XENIX 2.3? | |KEYWORDS: boot 2.3.1 23 letters install hang xenix 2.3.2 | |RELEASE: SCO XENIX 386 Operating System Release 2.3.1, 2.3.2 | |PROBLEM: What is the meaning of the boot letter sequence displayed | on bootup under Release 2.3 of the Operating System? | |SOLUTION: Below is a list of the meanings of the kernel startup | letters for the SCO XENIX 386 Release 2.3 kernels, for AT class | machines. | | A : The kernel is in dinit(), calling all the driver | init() routines as specified in master. | Currently this is 287 or 387, floppy, sio, | parallel, error, and console. | | B-C : Not used. | | D%d: The function startup() and the functions that startup calls, | use this as follows: | D1: fpuinit /* floating point coprocessor init */ | D2: flinit /* floppy driver init (/dev/[r]fd*) */ | D3: sioinit /* serial I/O driver init (/dev/tty*) */ | D4: painit /* parallel addapter init (/dev/lp?) */ | D5: errinit /* error device init (/dev/error) */ | D6: cninit /* console driver init (/dev/console) */ | D7: (int(*)())0 | | E-G : Not used. | | H : Setting up process 0, the swapper. | | I: Printing out rootdev, pipedev, and swapdev | (signifies allocating memory for console | multiscreens and setting up data structures for | cached namei()). | | J: Initializing proc0 (the swapper). | (setting up cached nami() data structures. | | K: Letting the console driver grab some memory for | multiscreens. The kernel is about to go through the init() | routines in /usr/include/sys/h/init.h | | L%d: Prints out a number (ie: starting at L0 and | incrementing by one to L1, L2, L3, etc) as | it goes through the table in /usr/include/sys/h/init.h. | Currently this includes the following: | | L0: turning on the clock | L1: allocating clists | L2: allocating disk buffers | L3: iinit(first disk access, reads in fdisk | table, divvy & badtrk tables, mounts | root, sets up pipe/swap devs). Hangs here | are typically due to incorrect disk params or | some sort of hardware disk, controller, or | cable problem. | L4: streams initialization | L5: meminit: throw all the memory pages into | the paging data structures for users to grab. | Maximum user process size is printed out here. | L6: dfinit: set up the disk frame data structures | similar to the memory pages in L4. | | M: Message buffer memory grabbing | N, O: Allow all interrupts | | P: Print out how much memory is being used by system, user, | reserved, drivers, buffers, and et cetera. | | Q: Semaphore and shared memory initialization. | | R: Get the root inode. | | S; Load the floating point emulator. | | T, U: Creation of inir/init (proc 1). | | V: Network initialization (if present). | | W: Put the word "swapper" into the ps args field of proc0 | for /bin/ps to see. | | X: Launching out to the swapper. | | Y,Z: The proc 1, inir/init is has been built, returning from | main() into _start who will then return to inir/init | and start executing. | |---------------------------------------------------------------------- |The above statements may or may not reflect the official views of SCO. |jeremyb@sco.COM or ..!mcsun!ukc!scol!jeremyb Tel: +44 (0)923-816344 | |"Mach was the greatest intellectual fraud in the last ten years." |"What about X ?" "I said intellectual." (anon, Usenix Standards BOF) |----------------------------------------------------------------------