Leland,
The effect of PARMREGS=0-15 on the DEFSYS
is the default for DEFSYS if no PARMREGS was specified,
and the behaviour of your NSS then is similar to IPL from device,
*except* that omitting PARMREGS from DEFSYS sets up an NSS for which
the regs are not zeroed out before filling with PARM content. Tricky!
See HELP CP IPL and HELP CPOTHER DEFSYS for the IBM word on this.
> Secondly, VM is bloody cool!!! I haven't had this much fun
> in a while ...
Yep. Ain't life grand?
> When you save the Linux segment you tell CP where to interrupt
> the IPL (I R 10000). But, the breakpoint occurs AFTER the
> instruction at 10000 executes.
How are you establishing the breakpoint??
I always do this by setting up a TRACE, for which (I thought)
the break happened AT the instruction at 10000, like this:
trace inst range 10000.4
ipl 1234 clear
* wait for the stop
savesys mylinux
trace end
begin
Where I do BEGIN, you could also re-IPL this time from the NSS.
And the SAVESYS / TRACE END / BEGIN can be stacked with a CMD option
to the first TRACE command. (HELP CP TRACE for more info.)
Obviously, we want the snapshot to happen *before* your code
places the PARM content from the registers at 180. So you need to
move your code, and I *think* that a more sophisticated DEFSYS/SAVESYS
will take the desired snapshot so that it will work.
...
> easiest solution around that was simply to put a "NOP 0" as the instruction
> at 10000. This allows CP to load the registers with whatever it bloody well
> pleases as the base setup will occur after the load.
Well ... that should work too! (if the breakpoint is mis-aligned)
What about the kernel with the SHARED option
when IPLed from device, Adam? Does PARM still work in that case?
> It wound up being almost as easy as the NOP. Since zipl and my original
> patch save the IPL registers at location 0x180, all that is necessary to get
> this to work with NSSes is to include an LM and STM of all registers as the
> first 2 instructions at 10000.
Yes!
> Anyway, enough rambling. If you want the updated patch, head over to:
>
> http://www.homerow.net/projects/zlinux/vmparms.htm
Will do!
> to grab a copy. It also includes the change that allows you to specify (or
> not) what keyword will be looked for when examining the IPL regs to
> determine if parameters were supplied or not. Currently, it is set to
> require "LINE " as in:
>
> IPL 4000 PARM line dasd=0x4000-0x5000 single
Yuck.
-- RMT