qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 10/10] S390: Enabling device and program selecti


From: Dominik Dingel
Subject: Re: [Qemu-devel] [PATCH 10/10] S390: Enabling device and program selection
Date: Fri, 26 Apr 2013 19:55:10 +0200

On Fri, 26 Apr 2013 18:56:44 +0200
Alexander Graf <address@hidden> wrote:

> 
> On 26.04.2013, at 14:12, Dominik Dingel wrote:
> 
> > Pass the eboot device info and the loadparm in register 7 and 8.
> > Use this values in the BIOS to directly boot the respective
> > operating system.
> > 
> > Signed-off-by: Dominik Dingel <address@hidden>
> > 
> > diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c
> > index 36daa67..960ba71 100644
> > --- a/hw/s390x/ipl.c
> > +++ b/hw/s390x/ipl.c
> > @@ -77,6 +77,10 @@ static void s390_ipl_from_disk(VirtIOBlkCcw *dev, 
> > uint64_t pswaddr)
> >     env->psw.addr = pswaddr;
> >     env->psw.mask = IPL_PSW_MASK;
> >     env->regs[7] = ccw_dev->sch->devno;
> > +    env->regs[7] = (env->regs[7] << 16) | (ccw_dev->sch->schid);
> > +    env->regs[7] = (env->regs[7] << 8) | (ccw_dev->sch->cssid);
> > +    env->regs[7] = (env->regs[7] << 8) | (ccw_dev->sch->ssid);
> > +    env->regs[8] = ccw_dev->loadparm;
> >     s390_add_running_cpu(cpu);
> > }
> > 
> > diff --git a/pc-bios/s390-ccw.img b/pc-bios/s390-ccw.img
> > index 
> > b549a86e55194bbf54e25f839e52b490ac308260..fe8d2c6b9f5d937ea156084f7eb248b17e1fa89c
> >  100644
> > GIT binary patch
> > literal 17528
> > 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
> > z2pZiV{&oW%vH;address@hidden@%c|4*&3SW;Cz89}@
> > z)<>address@hidden|4{UC{;DcWx
> > address@hidden(*kC?U*%jI6YO3i1<&xhcb5&NX~2_L-D
> > zquUQIAeVW!l=H2C|Be^FrIH<N{?V#pk$p|*KYs>z)n2^H4C%kOfDOY#|M~9$J}LHk
> > z;*R}neyM;B(LV?HIlv$D(VrvwX1ss_>9L4huL1l&dEr}hV82kn0C04HPXPMAK92jf
> > z<address@hidden)address@hidden&address@hidden>wy0<;MWr8x1fe0|KC8(z;Epz
> > zeyVK!x`)@_ppzYI;2V4p&rx&5o@@1cqCh={?*V*2;G2E$96rfHc=##!J;0v?{9k$D
> > address@hidden>*H6I<address@hidden<e(mzXt324Z3VZ|LUk7}n51#et
> > zDgY<FOA!BWE+XGdAH0gsg#rYENBm!&0sU3#=$8t>nLgtG@;address@hidden@a1IG9L7(^fO
> > z|JLrc(address@hidden@ZHzwdx`V0P+$1D^d$Dg2LX>AB%kjss&JW?
> > z3K&2Rx(E;Pe<g_fmDTWGT^*0)address@hidden<(upqg8o-1p5F7pEB{^co0sGY
> > zLI1^Zz!${rZ1A_lEx?Oc(E>#a6fID+K+yt43luF-v_R1UMGF)yP_#hN0{`zUK<DmF
> > z_zQey&lkkespJbcBsQ22|M#Ourr&vBpl-|fQ=e&Sy5FwB(>address@hidden
> > z+wGdY_}--z-<$CIJ=^g!gxZ1bfm9M-VTjsP=kb)NJvcBRYVjpQXYJwMqqPT*CVJxc
> > zB;address@hidden|?gL%;)}!-4H@<Vp%|z{?z9aOl%tvP~dIPOri3|Qe5TQAjxTS9*
> > zHSUTY!=CvD+`IDtt%nxer!jpq6m?hB=+fmGzB$YNe+H9Q2KE1u5JLT52`p99y5}O_
> > address@hidden|1z|^HF`8IxxjjK<)taUVJgH||5pO95w)QFJ&Z=>!OQ>C*Wz!ZcZ#?^
> > xsmIVMHP3x|`R~H2YySc}?Vxuobm1M1?{eX3q(8R14}vE<address@hidden)SLhS
> > 
> > literal 9432
> > zcmeHNZ){W76+h25c_s<r5hCiA2yP;address@hidden&Zm~|TsaUfPhLLGxp
> > zyJ^viw9r4pMQ!(GAFOuhO=~66jIN|Z>f406zuF>address@hidden@ovnXb=mw5D|A?sx9<
> > address@hidden&pG$p-#z!-_iTS}TVHP=pi#91Xc^jyp%=r23g7f-XG&3%Zl(q@
> > zsgV|<&$0`=aYGTk==FR`)NFbjpDH=lYw-9&5#9BAKJ|M1S%`b>s$R(JcjTFllXeXS
> > zE9#B=ROzwK|address@hidden@EQtMj`=7)Wxd_#>x%pNKf<address@hidden
> > zfjR<p1nLOX5vU_jN1%>C9f3Lmbp$>?0;Tue!xVK~`G9=LzJ!<gSFKsRw(6ymuBrG0
> > zeu2Wf{-s7wSm%hI)address@hidden(i8Po$ZXg+R(E(A0)address@hidden|f7
> > zV%^~Lt({hmTC7(|vtF0)+5)fRUCQb>&uJU5_REwoJn1z&LetRMN+C7Q@<Am(WX;Ms
> > address@hidden|VLC*c)vRonLi)v^TQCUzgw?zO`;wIM_%mdO;M1N&-WFJm
> > zE+4^Kb$QG&^4C!wD+pk8uOsp>;Y{Wu6td$OA7aaazo_+eU({!4oGtHxWnF&5`W+Gc
> > zZF9OXVQ4x)ofz9`{ecYY&zfr;mqjJlo9Ghc#6=h~A-do5+}a5o7^_>Yo1_GP%F4;V
> > zvB$wl=2J<vf1%o!tW{Dv=7&5>8+DdWeo(|address@hidden>uIO!7X95?#lFdZ
> > zCh~caFg_?u3wjE&kAZg)c)sSQD9U&SEiWRh)$j)^o`2t-#OGzU7T9Ckkofk+;3U~q
> > zM1y-7(fPN4wm$!+(z)me1HLJpTNPHmPL6i7oV?%|GZE^rE>address@hidden<Mu^
> > ztF<Cp1eqvpwQi&)#%_KRp3cGYEcTEb<address@hidden)=Pk|YuzY6!ip{{KNl(-VhV>o
> > zAgUscwlg=N)<X%$EW=N0wUnM+eO8USYDHOCdO=xgK<h0aqQU-e&^~V`fkP)e4>#-s
> > address@hidden;T+6ZbUg%Lq*Mr}hiQX)xHf;w<Q;address@hidden;I-cZFIy9a
> > zp+(j$U;hljW=>wQP0Z3|ZK4*;8g7W0ag(e~at<^MdgT<Ef!6L*H<*oRH389P>w2Qw
> > zH9=dnBw5Sh^;hJTlrh5|w7~;address@hidden@%RMv9HmeqArQ^ki
> > z<IbOx4_RR;d4|YT#CD7_az&)|jiz!>xhEmYG}R+G57-kn^1yFl%Py~&TCaF&UdZg&
> > z5-*$98abCV%UhG8y!qMj@<uaR-h#27Q{&}LQ{76QCWzYK*yk49LPEHO$nvQTim!4^
> > zEARIl_V1iJ1ETa=xxi-tv3#Cm+1jlU(EK%O5cMohbHp*QO(Dlb04(G9cH%~Wo|^sv
> > zMW>fh=Z?7DQ0l~Ynv2Z!M#vF%2q!siBNo98(W1z<)7$5z6NuwGM#rcbUBaWum*U}y
> > zj`69Exy5Ks#ce*NOG`=)`=~)XOyMN>)^23bxX}XdnxGBub{HaH-2g5q<dAoE*mi?y
> > z8v(U0>{#iHo8<gFU&LNSkSIg+Jn98&address@hidden
> > zIF&d%hoP|vUiGPQ&DyIWzk;9Ue&5H?UI|;w_wr?GYC+lHSm`S{!h}~TG6nDietQj*
> > zGwIeu(k&#(Eg&|64&ogcZzOs&x_}-f+Ugjrg}lHT0vg9<2|address@hidden
> > z>u*j8Q+WFyX`R}D6I8ihs(YVji{+J+FP$kL=G|u>a6T`x?<z+OBOVl9oZGbB$Zb1-
> > z+D7W;d<(address@hidden>;&=o<~~3bS=m&g^Zz2cZ9~1hE1neG?;4tqLDR_#_f<S
> > z*gyh%hp1p}wQEsN&b1JU5d%Bnp5e8bhWm5SanP65j9)($a$mt*uSC{hwspLRihl<p
> > address@hidden;kNXbN?_hW64XMtDi94CIa7<;}))dam=`WGoBW4IEP2$9_
> > zEWP~!Z1H`e&address@hidden<?SBs>zgRTvz$Dlms;+UWi_b{L1>h
> > z=lRtioqioL*+yTkMi~3`Q>address@hidden;UAg}IeIW$8&?#V0Rg58tz03g0<t
> > z&3-bitMAf#`!mCXX^|Th!=wFavFjdjAUk?U4E1NzBApp~u#xT>6-P7KTxN9b{^18j
> > zdhlpwU{D+wJu;address@hidden<lIFlBK`VVFX=zwRF4Q56Tim}0ihXzM-jXpnn
> > zWMqW-4`&V!!-8jgUv{uR?MwKYEU}59xVGqSKrwWeI%-GI7j&%h+sRS?Hx&FRg3#xJ
> > zL`-z^dZiqroj2_g+p^iwENRPww_x}%>LMxsjrGtIplQ&vQhvnB??^e9Laet*`SAqk
> > zX3#%^-YeymW1u<U8wLHbl>Z5Vo|p0}qCvY1+Jl=h1Ud)WgI$B2z&ByD4Hbz|JJ!;?
> > zxS(;zE3iZD+|address@hidden@lM8;>(A#2rD_6`ed~W5IUZe<9l;@P(lll|k#}_`<c%o^d
> > zxwoYd^u|~|$4$LR=b2*myZ%SMuf=Zg2HB6Fa8oY^nwdgAULy}l<qfX`Sg>4hGgFi;
> > zsJw=ExC8z;Q<N8bpRE3b1N&NtnR+qAzH#|kjs4!1ca`U`qp5Moz3GWjv6olqbugy&
> > address@hidden>1%nj27mVd
> > address@hidden>*zRR+=*4g|Q<SGaW4Cr+J&F2f9f3Lmbp+}Nd{G2A5%V1t
> > z+<address@hidden(pEd$x(b%*c^rt3^+&JJuua
> > zKR7V3wr5}W+Wp!7k%1wR#k0>?W^_cX+pvD)SG&address@hidden
> > zquBnjF^Y|h<_2R2M~=kyAIS`-*Jjcb%Z{e|bNv(>9NKpv+ka?q-%vXHX^&z9qlfrO
> > zsoIFKPqAIed&j;g2CUzN>OW?vD_$>xqY9pjR0;d{Sfx+ZOAL%9sQfI%MO~+O-l`N)
> > address@hidden@u+WC_4t1<{^hT((ecXvOz?F?zM>address@hidden(e|4JYC>7*wZsZj5E!dC|M
> > z{bklVRDb;yeeZuKMBe{UFrH(<no>address@hidden))PTyCh)fd3rkv9FyU??zSqxG&(*
> > zj<c0M-tDd_{(MaDM)muj)qk&|Re5x)+VJI>a;<p`s>address@hidden
> > 
> > diff --git a/pc-bios/s390-ccw/bootmap.c b/pc-bios/s390-ccw/bootmap.c
> > index 53a460d..9cd3edf 100644
> > --- a/pc-bios/s390-ccw/bootmap.c
> > +++ b/pc-bios/s390-ccw/bootmap.c
> > @@ -173,7 +173,7 @@ fail:
> >     return -1;
> > }
> > 
> > -int zipl_load(void)
> > +int zipl_load(uint64_t load_parm)
> > {
> >     struct mbr *mbr = (void*)sec;
> >     uint8_t *ns, *ns_end;
> > @@ -223,7 +223,7 @@ int zipl_load(void)
> > 
> >     /* Run the default entry */
> > 
> > -    prog_table_entry = (struct scsi_blockptr *)(sec + pte_len);
> > +    prog_table_entry = (struct scsi_blockptr *)(sec + (pte_len 
> > *(1+load_parm)));
> > 
> >     return zipl_run(prog_table_entry);
> > 
> > diff --git a/pc-bios/s390-ccw/main.c b/pc-bios/s390-ccw/main.c
> > index fd40fa5..0c1c11c 100644
> > --- a/pc-bios/s390-ccw/main.c
> > +++ b/pc-bios/s390-ccw/main.c
> > @@ -20,7 +20,7 @@ void virtio_panic(const char *string)
> >     while (1) { }
> > }
> > 
> > -static void virtio_setup(void)
> > +static void virtio_setup(uint16_t dev_no)
> > {
> >     struct schib schib;
> >     int i;
> > @@ -35,7 +35,7 @@ static void virtio_setup(void)
> >         if (r == 3) {
> >             break;
> >         }
> > -        if (schib.pmcw.dnv) {
> > +        if (schib.pmcw.dnv && (schib.pmcw.dev == dev_no)) {
> 
> What if I have no dev_no passed in? We need to support the mode where the 
> user doesn't specify any device he wants to boot from.

There is actually no code path where you would boot the BIOS and at the 
sametime have no device passed in.

> 
> >             if (virtio_is_blk(blk_schid)) {
> >                 found = true;
> >                 break;
> > @@ -52,10 +52,24 @@ static void virtio_setup(void)
> > 
> > int main(void)
> > {
> > +    uint64_t boot_value;
> > +    uint64_t load_parm;
> > +    register uint64_t reg7 asm("7");
> > +    register uint64_t reg8 asm("8");
> > +    
> > +    asm volatile(
> > +            "   stg     %2, %0\n"
> > +            "   stg     %3, %1\n"
> > +            : "=m" (boot_value), "=m" (load_parm)
> > +            : "d" (reg7), "d" (reg8)
> > +            : "cc");
> 
> What is this for? If you have a local register variable, won't that value get 
> saved automatically?

It's a real verbose way to say here in this register we have the boot parameter 
stored in... And my confidence in understanding local register variables is not 
so that I would hope to get it perfectly right.

> 
> Alex
> 
> > +    
> >     sclp_setup();
> > -    virtio_setup();
> > -    if (zipl_load() < 0)
> > +    virtio_setup(boot_value >> 32);
> > +
> > +    if (zipl_load(load_parm) < 0) {
> >         sclp_print("Failed to load OS from hard disk\n");
> > +    }
> >     disabled_wait();
> >     while (1) { }
> > }
> > diff --git a/pc-bios/s390-ccw/s390-ccw.h b/pc-bios/s390-ccw/s390-ccw.h
> > index 8241b0a..2851995 100644
> > --- a/pc-bios/s390-ccw/s390-ccw.h
> > +++ b/pc-bios/s390-ccw/s390-ccw.h
> > @@ -63,7 +63,7 @@ void virtio_setup_block(struct subchannel_id schid);
> > int virtio_read(ulong sector, void *load_addr);
> > 
> > /* bootmap.c */
> > -int zipl_load(void);
> > +int zipl_load(uint64_t load_parm);
> > 
> > static inline void *memset(void *s, int c, size_t n)
> > {
> > -- 
> > 1.7.9.5
> > 
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]