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: Alexander Graf
Subject: Re: [Qemu-devel] [PATCH 10/10] S390: Enabling device and program selection
Date: Fri, 26 Apr 2013 19:56:46 +0200

On 26.04.2013, at 19:55, Dominik Dingel wrote:

> 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 we drop patch 1 there is will be.

> 
>> 
>>>            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.

Then grab yourself someone who knows :).


Alex




reply via email to

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