[Info-vax] x86 Update 4/22/19

clair.grant@vmssoftware.com clairgrant71 at gmail.com
Thu Apr 25 08:23:18 EDT 2019


On Wednesday, April 24, 2019 at 7:33:36 PM UTC-4, Jon Pinkley wrote:
> On Wednesday, April 24, 2019 at 7:12:08 AM UTC-4, clair... at vmssoftware.com wrote:
> > On Tuesday, April 23, 2019 at 9:52:05 PM UTC-4, Jon Pinkley wrote:
> > > On Tuesday, April 23, 2019 at 5:55:24 AM UTC-4, clair... at vmssoftware.com wrote:
> > > > On Monday, April 22, 2019 at 9:30:33 PM UTC-4, terry-... at glaver.org wrote:
> > > > > On Monday, April 22, 2019 at 7:48:26 PM UTC-4, Jon Pinkley wrote:
> > > > > > Isn't there supposed to be a Login as well?
> > > > > 
> > > > > Maybe this was done with the equivalent of "SET/STARTUP OPA0:"?
> > > > 
> > > > There are number of ways to look at "login". Yes, we did force OPA0: to be our First Boot path.
> > > 
> > > Anyone that understands software development understands the magnitude of the task being done by the small team at VSI, so don't take this as me throwing brickbats.
> > 
> > <<<CG:  Brickbats readily accepted, some even deserved. Taking the heat comes with the territory.
> > >>>
> > 
> > > 
> > > I think everyone is looking forward to the completed DIRECTORY command, but the path through login for an interactive process is quite a bit more complex than directory, since it involves SYSTEM context (terminal driver and mailbox driver), Job Controller Context and Newly created Process context. It tests a lot more of the system, and would indicate that much more of the VMS foundation is in place.  LOGINOUT is a complex program; the OpenVMS Alpha Internals 7.0 Manual has almost 10 pages devoted just to the Interactive process case (439,440,443-450).
> > > 
> > 
> > <<<CG: For First Boot we are loading LOGINOUT as an execlet rather than as a loadable image. That allows us to cut a few corners, but not that many.
> > >>>
> > 
> > > In my opinion, leaving this out is a significant "lowering of the bar" to what constitutes "first boot", assuming that first boot did include an interactive login from the console in previous ports.
> > > 
> > 
> > <<<CG: Even though I defined the terms, I can't remember what we did for IA64 without going to look. I often describe First Boot as a photo op, sometimes a marketing message. It gives non-geeks something identifiable that they can somewhat relate to. We know there are a tons of things that have to be working to get to executing a DIRECTORY command but what is in that ton doesn't really matter much. So, if we lowered the bar for x86, so be it; it's trivia when looking at the big picture. BTW: The next step after First Boot is Real Boot, that is getting to the DIRECTORY command while booting the system in its normal flow. 
> > >>>
> > 
> > > The vast majority of the people that follow comp.os.vms are "hard core VMS supporters", so we are interested in any technical details that can be provided.
> > > 
> > > The recent milestones have no content other than "ACHIEVED" (milestones 16 and below had examples of console output, which at least I found interesting).
> > > 
> > 
> > <<<CG: I'll take the blame for that. 
> > >>>
> > 
> > > I understand that writing progress reports takes time away from the real work being done. But it shouldn't take an inordinate amount of time to copy/paste some console output into the updates page.  You should be doing this for internal documentation anyway.
> > > 
> > > For example, what does the output of show system look like at this point in time?
> > 
> > <<<CG: SHOW SYSTEM is not part of First Boot. The only DCL command being processed is DIRECTORY. After that we move on Real Boot.
> > >>>
> > 
> > Recent system boot, minus a whole bunch of developer debugging messages.
> > 
> > 
> > VSI VMS X86 XDELTA Debugger [SYSBOOT], XF3Q, Apr  24 2019 06:46:41
> > 
> > Brk 0 at 00000000.004AEE3D
> > 00000000.004AEE3D!movq    $00000042,%rax ;P
> > 
> > VSI VMS X86 XDELTA Debugger [SYSBOOT], XF2Q, Apr  5 2019 20:46:41
> > 
> > Brk 0 at 00000000.004AEE3D
> > 00000000.004AEE3D!movq    $00000042,%rax ;P
> > 
> > %EXECINIT-I-PERCPU, initializing per-CPU database
> > 
> > %EXECINIT-I-INITS, calling initialization routines
> > %LOADER-I-INIT, initializing SYS$BASE_IMAGE
> > %LOADER-I-INIT, initializing SYS$PLATFORM_SUPPORT
> > %LOADER-I-INIT, initializing ERRORLOG
> > %LOADER-I-INIT, initializing SYS$ACPI
> > %LOADER-I-INIT, initializing SYSTEM_PRIMITIVES_0
> > %LOADER-I-INIT, initializing SYSTEM_SYNCHRONIZATION_UNI
> > %LOADER-I-INIT, initializing SYSTEM_DEBUG
> > %LOADER-I-INIT, initializing SYS$OPDRIVER
> > 
> >         VMS Software, Inc. OpenVMS (TM) x86_64 Operating System, XF2Q-N4A
> >                     Copyright 2019 VMS Software, Inc.
> > 
> > VSI VMS X86 XDELTA Debugger [SYSTEM_DEBUG], XF2Q, Apr  5 2019 20:46:41
> > 
> > Brk 0 at FFFF8300.10600790
> > FFFF8300.10600790!retq ;P
> > 
> > %EXECINIT-I-PFNDB, building PFN database
> > %EXECINIT-I-SWIS_PRIM, initializing SWIS on primary CPU
> > 
> > %EXECINIT-I-INITS, calling initialization routines
> > %LOADER-I-INIT, initializing SYSTEM_PRIMITIVES_0
> > %LOADER-I-INIT, initializing SYSTEM_SYNCHRONIZATION_UNI
> > %LOADER-I-INIT, initializing SYSTEM_PRIMITIVES_0
> > 
> > %EXECINIT-I-EPB, defining erase pattern buffer
> > %EXECINIT-I-SHELLF, building SHELL filespec
> > %EXECINIT-I-BTINIT, initializing boot driver
> > %EXECINIT-I-RESMEMLIS, building reserved memory registry list
> > 
> > %EXECINIT-I-LDIMGS, loading exec images
> > %EXECINIT-I-LOADING, loading EXCEPTION.EXE
> > %LOADER-I-INIT, initializing EXCEPTION_MON
> > %EXECINIT-I-SYSTEM_CHECK, loaded _MON image
> > %EXECINIT-I-LOADING, loading IO_ROUTINES.EXE
> > %LOADER-I-INIT, initializing IO_ROUTINES_MON
> > %EXECINIT-I-SYSTEM_CHECK, loaded _MON image
> > %EXECINIT-I-LOADING, loading SYSDEVICE.EXE
> > %LOADER-I-INIT, initializing SYSDEVICE
> > %EXECINIT-I-LOADING, loading PROCESS_MANAGEMENT.EXE
> > %LOADER-I-INIT, initializing PROCESS_MANAGEMENT_MON
> > %EXECINIT-I-SYSTEM_CHECK, loaded _MON image
> > %EXECINIT-I-LOADING, loading LOCKING.EXE
> > %LOADER-I-INIT, initializing LOCKING
> > %EXECINIT-I-LOADING, loading SHELL8K.EXE
> > %LOADER-I-INIT, initializing SHELL8K
> > %EXECINIT-I-LOADING, loading LOGICAL_NAMES.EXE
> > %LOADER-I-INIT, initializing LOGICAL_NAMES
> > %EXECINIT-I-LOADING, loading F11BXQP.EXE
> > %LOADER-I-INIT, initializing F11BXQP
> > %EXECINIT-I-LOADING, loading RMS.EXE
> > %LOADER-I-INIT, initializing RMS
> > %EXECINIT-I-LOADING, loading IMAGE_MANAGEMENT.EXE
> > %LOADER-I-INIT, initializing IMAGE_MANAGEMENT
> > %EXECINIT-I-LOADING, loading SECURITY.EXE
> > %LOADER-I-INIT, initializing SECURITY_MON
> > %EXECINIT-I-SYSTEM_CHECK, loaded _MON image
> > %EXECINIT-I-LOADING, loading SYSGETSYI.EXE
> > %LOADER-I-INIT, initializing SYSGETSYI
> > %EXECINIT-I-LOADING, loading SYS$VM.EXE
> > %LOADER-I-INIT, initializing SYS$VM
> > %EXECINIT-I-LOADING, loading MESSAGE_ROUTINES.EXE
> > %LOADER-I-INIT, initializing MESSAGE_ROUTINES
> > %EXECINIT-I-LOADING, loading SYSLDR_DYN.EXE
> > %LOADER-I-INIT, initializing SYSLDR_DYN
> > %LOADER-I-INIT, initializing <SYS$LDR>VMS_EXTENSION
> > %EXECINIT-I-IOCONFIG, configuring the I/O database
> > %LOADER-I-INIT, initializing SYS$PCI_SUPPORT
> > %LOADER-I-INIT, initializing SYS$ISA_SUPPORT
> > 
> > %EXECINIT-I-HWCLOCK, reading the HW clock
> > 
> > %INITIODB-I-BEGIN, Executing INIT_IO_DB.
> > %LOADER-I-INIT, initializing SYS$TTDRIVER
> > %INITIODB-I-DRIVER_LOADED, SYS$TTDRIVER.EXE load successful.
> > %INITIODB-I-DMDRIVER, Loading SYS$DMDRIVER for memory disk access
> > %INITIODB-I-LRD_SYSDEV, SYS$LOAD_DRIVER will assign the System UCB to this device.
> > %LOADER-I-INIT, initializing SYS$DMDRIVER
> > %INITIODB-I-GOPAC, Calling IOC$GOPAC.
> > %IOC$DISC_BOOT-I-ENTER_ROUTINE, Entered routine.
> > %IOC$DISC_BOOT-I-DISC_PBD, Disconnecting from primary boot device
> > %IOC$DISC_BOOT-I-EXIT_ROUTINE,  Exiting routine.
> > %INITIODB-I-INIT_BRIDGE, Init any IO bridge.
> > %INITIODB-I-DEVICE_POWERUP, Drivers have been initialized.
> > %INITIODB-I-END, Returning to EXEC_INIT.
> > 
> > %EXECINIT-I-INITSMP, initializing SMP environment
> > %EXECINIT-I-PBM, building process bitmap
> > %EXECINIT-I-PSTATE, setting process states
> > %EXECINIT-I-PHV, filling process header vector
> > %EXECINIT-I-PAGSWPVEC, filling page/swap file vector
> > 
> > %EXECINIT-I-INITS, calling initialization routines
> > %LOADER-I-INIT, initializing SYSTEM_PRIMITIVES_0
> > %LOADER-I-INIT, initializing EXCEPTION_MON
> > %LOADER-I-INIT, initializing IO_ROUTINES_MON
> > %LOADER-I-INIT, initializing PROCESS_MANAGEMENT_MON
> > %LOADER-I-INIT, initializing LOCKING
> > %LOADER-I-INIT, initializing LOGICAL_NAMES
> > %LOADER-I-INIT, initializing SECURITY_MON
> > %LOADER-I-INIT, initializing SYS$VM
> > %LOADER-I-INIT, initializing MESSAGE_ROUTINES
> > 
> > %EXECINIT-I-TMVPTES, setting TMV up with its PTEs
> > %EXECINIT-I-SVAPTE, setting up EXE$GL_SVAPTE
> > %EXECINIT-I-BLD_LOCKID, building the lock id table
> > %EXECINIT-I-BLD_RESHASH, building the resource hash table
> > %EXECINIT-I-RESMEMALC, performing reserved memory allocation
> > %EXECINIT-I-CLRWARM, clearing warm-start flag
> > %EXECINIT-I-CLRCOLD, clearing cold-start flag
> > 
> >  BRK - END OF INIT BREAKPOINT
> > VSI VMS X86 XDELTA Debugger [SYSTEM_DEBUG], XF2Q, Apr  5 2019 20:46:41
> > 
> > Brk 0 at FFFF8300.10600790
> > FFFF8300.10600790!retq ;P
> > 
> > %EXECINIT-I-ACTIVESET, joining ACTIVE set
> > %EXECINIT-S-CIAO, transferring to the scheduler
> > 
> > %SWAPPER-I-SHUFFLE, executing SWAPPER initialization code
> > %SWAPPER-I-POOL, initializing paged pool
> > 
> > %SWAPPER-I-INIT, calling initialization routines
> > %LOADER-I-INIT, initializing EXCEPTION_MON
> > %LOADER-I-INIT, initializing IO_ROUTINES_MON
> > %LOADER-I-INIT, initializing PROCESS_MANAGEMENT_MON
> > %LOADER-I-INIT, initializing LOCKING
> > %LOADER-I-INIT, initializing LOGICAL_NAMES
> > %LOADER-I-INIT, initializing SECURITY_MON
> > %LOADER-I-INIT, initializing SYS$VM
> > %LOADER-I-INIT, initializing MESSAGE_ROUTINES
> > %LOADER-I-INIT, initializing <SYS$LDR>SYS$LOGINOUT
> > %LOADER-I-INIT, initializing <SYS$LDR>SYSINITX
> > %LOADER-I-INIT, initializing IO_ROUTINES_MON
> > %LOADER-I-INIT, initializing PROCESS_MANAGEMENT_MON
> > %LOADER-I-INIT, initializing LOCKING
> > %LOADER-I-INIT, initializing LOGICAL_NAMES
> > %LOADER-I-INIT, initializing IO_ROUTINES_MON
> > 
> > %SWAPPER-I-RSDM, joining system resource domain
> > %SWAPPER-I-P1, initializing SWAPPER P1 cells
> > %SWAPPER-I-PAGED, paged system initialization
> > %SWAPPER-I-HASH, creating the logical name hash tables
> > %SWAPPER-I-DEFINE, defining the system logical names
> > 
> > %SWAPPER-I-CREPRC, creating the SYSINIT process
> > %SWAPPER-I-MAINLOOP, entering SWAPPER main loop
> > %SWAPPER-I-INSWAP, inswapped process EPID: 00000022 PID: 00010002 PCB: FFFFFFFF81678340
> > 
> > %PROCSTRT-I-SYSINITX,  Calling loaded SYSINITX execlet
> > 
> > %SYSINIT-I-START, SYSINIT process execution begins
> > %SYSINIT-I-AUDIT, initializing security auditing
> > 
> > Loaded Image List:
> > Seq  Image Name                      Base               End                Link Base          GP
> >  40  SYS$DMDRIVER                    FFFF8300.1120AB00  FFFF8300.1120CA10  00000000.80002000
> >  3E  SYS$TTDRIVER                    FFFF8300.111DFA00  FFFF8300.11206978  00000000.80002000
> >  3C  SYS$ISA_SUPPORT                 FFFF8300.111D9800  FFFF8300.111DC0E8  00000000.80002000
> >  3A  SYS$PCI_SUPPORT                 FFFF8300.111C4B00  FFFF8300.111D5648  00000000.80002000
> >  38  <SYS$LDR>VMS_EXTENSION          FFFF8300.111C0A00  FFFF8300.111C4070  00000000.80002000
> >  36  <SYS$LDR>SYSINITX               FFFF8300.11162400  FFFF8300.111B4F28  00000000.80006000
> >  34  <SYS$LDR>SYS$LOGINOUT           FFFF8300.11098000  FFFF8300.1114C8F1  00000000.80006000
> >  32  <SYS$LDR>SYS$DIRECTORY          FFFF8300.10F8EC00  FFFF8300.110003F1  00000000.80002000
> >  30  SYSLDR_DYN                      FFFF8300.10F6BF00  FFFF8300.10F893B8  00000000.80004000
> >  2E  MESSAGE_ROUTINES                FFFF8300.10F41200  FFFF8300.10F66708  00000000.80002000
> >  2C  SYS$VM                          FFFF8300.10E31D00  FFFF8300.10F2BF61  00000000.8000E000
> >  2A  SYSGETSYI                       FFFF8300.10E0CE00  FFFF8300.10E219F8  00000000.80002000
> >  28  SECURITY_MON                    FFFF8300.10DAE000  FFFF8300.10E02088  00000000.80004000
> >  26  IMAGE_MANAGEMENT                FFFF8300.10D72000  FFFF8300.10DA4FD0  00000000.80004000
> >  24  RMS                             FFFF8300.10BE0600  FFFF8300.10D3EDF0  00000000.80002000
> >  22  F11BXQP                         FFFF8300.10B28E00  FFFF8300.10BC97F8  00000000.80006000
> >  20  LOGICAL_NAMES                   FFFF8300.10B06600  FFFF8300.10B215F8  00000000.80002000
> >  1E  SHELL8K                         FFFF8300.10AFD200  FFFF8300.10B03640  00000000.80002000
> >  1C  LOCKING                         FFFF8300.10AC0000  FFFF8300.10AF6F38  00000000.80004000
> >  1A  PROCESS_MANAGEMENT_MON          FFFF8300.109EB200  FFFF8300.10AAA631  00000000.8000A000
> >  18  SYSDEVICE                       FFFF8300.109D3900  FFFF8300.109DF410  00000000.80002000
> >  16  IO_ROUTINES_MON                 FFFF8300.10914D00  FFFF8300.109C0628  00000000.8000E000
> >  14  EXCEPTION_MON                   FFFF8300.108F1800  FFFF8300.10904341  00000000.80002000
> >  12  EXEC_INIT                       FFFF8300.10892100  FFFF8300.108E5468  00000000.80006000
> >  10  SYS$OPDRIVER                    FFFF8300.10883700  FFFF8300.1088B500  00000000.80002000
> >  0E  SYSTEM_DEBUG                    FFFF8300.10809A00  FFFF8300.108752C1  00000000.80004000
> >  0C  SYSTEM_SYNCHRONIZATION_UNI      FFFF8300.107D9500  FFFF8300.10800028  00000000.80004000
> >  0A  SYSTEM_PRIMITIVES_0             FFFF8300.1071D800  FFFF8300.107C55A1  00000000.8000E000
> >  08  SYS$ACPI                        FFFF8300.10673A00  FFFF8300.106F6120  00000000.8000E000
> >  06  ERRORLOG                        FFFF8300.1065E100  FFFF8300.10663820  00000000.80002000
> >  04  SYS$PLATFORM_SUPPORT            FFFF8300.10611B00  FFFF8300.10654358  00000000.80008000
> >  02  SYS$BASE_IMAGE                  FFFF8300.10600200  FFFF8300.1060B100  00000000.80000000
> >  00  SYS$PUBLIC_VECTORS              FFFF8300.10600000  FFFF8300.10600048  00000000.80000000
> > 
> > %SYSINIT-I-TIME, setting the system time
> > %SYSINIT-I-INIT, initializing the XQP
> > %SYSINIT-I-CLUSTER, cluster/lock manager initialization
> > %SYSINIT-I-SHADOW, shadow driver initialization
> > %SYSINIT-I-DEFINE, defining system logical names
> > %SYSINIT-I-MOUNT, mounting the system disk
> > %SYSINIT-I-TIME, setting the system time
> > %SYSINIT-I-FILCACHE, deallocating the primitive file cache
> > %SYSINIT-I-DEFINE, defining SYS$TOPSYS
> > 
> > %SYSINIT Entering CREPRC_STARTUP
> > %SYSINIT-I-CREPRC, creating the STARTUP process
> > 
> > %PROCSTRT-I-SYS$LOGINOUT, Calling loaded SYS$LOGINOUT execlet
> > SYS$LOGINOUT::
> >   Transfering Control to DCL$STARTUP
> > 
> > VSI VMS X86 XDELTA Debugger [SYSTEM_DEBUG], XF2Q, Apr  5 2019 20:46:41
> > Brk 0 at FFFF8300.10600790
> > 
> > FFFF8300.10600790!retq ;P
> > 
> > %SYSINIT-I-FINISH, SYSINIT process execution completed
> > %PROCSTRT-I-SYSINITX_DONE, SYSINITX has completed, $HIBERnating the process
> > 
> > %DCL Calling into SYS$DIRECTORY at NET$VEC_RESERVE30
> > SYS$DIRECTORY::
> > VSI VMS X86 XDELTA Debugger [SYSTEM_DEBUG], XF3Q, Apr 22 2019 17:56:26
> > 
> > Brk 0 at FFFF8300.10600790
> > 
> > FFFF8300.10600790!retq
> 
> Thanks Clair, it looks like for the first boot of IA64, the execution of the directory command was the defining item that constituted first boot.  

<<<CG: That much I did know. What I do not remember are the details of how we got there. We are probably taking a slightly different route this time. Some of what we did 15 years ago was checked in so we dredged that but some was not and a little invention has been required especially with the addition of booting from the memory disk.
>>>

Found this  slashdot post from 2003 https://developers.slashdot.org/story/03/02/01/1814211/first-openvms-boot-on-ia64
> 
> "Posted by chrisd on Saturday February 01, 2003 @11:08PM from the hp-isn't-so-bad-I-guess dept.
> vaxzilla writes
> "At 3:31pm EST on Friday, January 31st, 2003, OpenVMS for the Intel IA64 architecture successfully booted and ran a DIR command. The Intel Itanium family of processors is the third architecture supported by OpenVMS in its 25 year history. Originally it ran on Digital Equipment Corporation VAX systems; in the early 1990s, support was added for the DEC Alpha processors. Following the acquisition of DEC by Compaq, and more recently Compaq by HP, the Itanium and Itanium2 port of OpenVMS is now being undertaken by HP. Congratulations on a job well done to the folks at ZK03 in Nashua, NH!"
> 
> Which references this post:
> 
> https://groups.google.com/d/msg/comp.os.vms/alWtue7YLUw/x1_GVv1eFfEJ
> 
> And thanks for the console output too!




More information about the Info-vax mailing list