Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Dec 2022 21:10:26 -0700
From:      Warner Losh <imp@bsdimp.com>
To:        hiroo.ono+freebsd@gmail.com
Cc:        Mark Millard <marklmi@yahoo.com>, freebsd-arm@freebsd.org
Subject:   Re: Still did not succeed to boot on Lenovo Yoga C630
Message-ID:  <CANCZdfrwPC=0pWM1-6=n2pQmVWsiDk4F7t2wsLuK_7wfD3dT2w@mail.gmail.com>
In-Reply-To: <CANtk6SjE7BRto2rRBi4faiK0NfjVSu6N3BCYHBRjKWmdt9YcZA@mail.gmail.com>
References:  <CANtk6SgUoqC_Jgdtu=CZnFvnLzqP445MQqfwhV5%2BBgX_%2BVFUZA@mail.gmail.com> <B55013C7-B04C-48E4-BC0F-C106DA08348F@yahoo.com> <CANtk6Shwaea09TiTZq3UZwzCoXjm8TqkA930QQwS_i3_Awd5bg@mail.gmail.com> <CANCZdfqpTW3AVHPfHPWOEpEW2QPTE6aADGNzhH=pQT4btA1%2BvQ@mail.gmail.com> <CANtk6Si4Eg3vd4j3wvgCt%2BoodpNK7ikei-XikEmXPMdQUane3w@mail.gmail.com> <CANCZdfpKnxeRp3RtPGrq%2BsCMqXjq0AnYWuN2orHt1qt57KRh0Q@mail.gmail.com> <CANtk6ShzbOcw%2B86J_M_AQeDHU36ptQG%2Bj7XndYzhCJ3E0N0Qqw@mail.gmail.com> <CANtk6ShVXDHt5K0UoGaMgw0o_w3HPCMPGYdu-m1hCUkZ3ZMcUQ@mail.gmail.com> <CANCZdfqyMUUDVgg4YHZNaXGVb9E8TXmFH0jtQuXN0TkCti46vQ@mail.gmail.com> <CANtk6SgeCFSwkRpXDd9DsR%2BN%2BNNa_c9pm6-8u6c9Q2au0ZiWZA@mail.gmail.com> <CANCZdfrF8P0FgU-E-n8hgNVshg3BBJuCuYOdTwEz4DMQ3mPDvg@mail.gmail.com> <CANtk6Sjs15P1oWyJcbzmHtmeHvkNjrqzcvo82qGm=PcheZmZoQ@mail.gmail.com> <CANtk6Sj9EiF1fjEPU6R4xhaTrUTuLCRTz2ZdkBQZoQv1qTY%2BZA@mail.gmail.com> <CANtk6SjStgG4fR19ZCmK3SwMVCkTAP4q06zGj5ivdXASpjEFGg@mail.gmail.com> <CANtk6SjE7BRto2rRBi4faiK0NfjVSu6N3BCYHBRjKWmdt9YcZA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--0000000000007d1f2f05f09f33c0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sat, Dec 24, 2022 at 7:55 PM Hiroo Ono (=E5=B0=8F=E9=87=8E=E5=AF=9B=E7=
=94=9F) <
hiroo.ono+freebsd@gmail.com> wrote:

> Equivalent change by Allan Jude is under review.
> https://reviews.freebsd.org/D37766


Yea, this just changes the heap we use to be code pages, not data pages...
But the loader allocates its pages for the kernel, etc in copy.c. I'm not
surprised
this didn't work.

I have already tried this change, but it did not succeeded for me.
> https://reviews.freebsd.org/D37765


Yea, this looks somewhat like what you shared with me :)

I wonder if it's worth climbing the hill to get -target
aarch64-unknown-uefi working for clang and fixing our build to use it...
The current pecoff header stuff is a bit hackish, as this issue is pointing
out...

Warner


>
> 2022=E5=B9=B412=E6=9C=8824=E6=97=A5(=E5=9C=9F) 22:18 Hiroo Ono (=E5=B0=8F=
=E9=87=8E=E5=AF=9B=E7=94=9F) <hiroo.ono+freebsd@gmail.com>:
> >
> > Sorry again.
> > The patch is needed for
> > * stand/efi/loader/arch/arm64/start.S
> > * stand/efi/loader/arch/arm64/ldscript.arm64
> > * stand/efi/loader/Makefile
> >
> > I forgot the last one. I remade the patch for three.
> >
> > 2022=E5=B9=B412=E6=9C=8824=E6=97=A5(=E5=9C=9F) 22:11 Hiroo Ono (=E5=B0=
=8F=E9=87=8E=E5=AF=9B=E7=94=9F) <hiroo.ono+freebsd@gmail.com>:
> > >
> > > 2022=E5=B9=B412=E6=9C=8824=E6=97=A5(=E5=9C=9F) 10:35 Hiroo Ono (=E5=
=B0=8F=E9=87=8E=E5=AF=9B=E7=94=9F) <hiroo.ono+freebsd@gmail.com>:
> > > >
> > > > > I run other arm64 machines w/o issue with the current code.
> > > >
> > > > Yes, Qualcomm's snapdragon is weird. I saw Linux people complain
> about
> > > > it somewhere... Wanted to know  before I bought this Yoga C630.
> > > >
> > > > 2022=E5=B9=B412=E6=9C=8824=E6=97=A5(=E5=9C=9F) 10:03 Warner Losh <i=
mp@bsdimp.com>:
> > > > >
> > > > >
> > > > >
> > > > > On Fri, Dec 23, 2022 at 5:49 PM Hiroo Ono (=E5=B0=8F=E9=87=8E=E5=
=AF=9B=E7=94=9F) <
> hiroo.ono+freebsd@gmail.com> wrote:
> > > > >>
> > > > >> The current status of FreeBSD 14-current on Lenovo Yoga C630 is
> as follows:
> > > > >>
> > > > >>  1) Merging from OpenBSD's loader code made the loader boot apar=
t
> from
> > > > >> 3 points (#2 to 4 ).
> > > > >>  2) when comconsole->c_init() runs the 2nd time, it seems to
> freeze.
> > > > >> (might be C630 specific)
> > > > >>  3) SetVirtualAddressMap() in efi_do_vmap() freezes. (might also
> > > > >> affect other snapdragon systems like Microsoft Arm Developer Kit=
)
> > > > >>  4) The kernel is kicked but does not start.
> > > > >>
> > > > >> 1) is quite straightforward. What needs to be changed is
> > > > >> stand/efi/loader/arch/arm64/start.S.
> > > > >
> > > > >
> > > > > Can you share what needs to be done? To my eye, we don't need any
> changes, so it would be good to know what you've had to do exactly.
> > > >
> > > > Attached is the diff to start.S. There are 3 points.
> > > > 1) The loader has to be aligned to 4kb.
> > > > 2) Proper characteristic value should be in the PE header.
> > > > 3) .text and .data segment have to be separate.
> > > >
> > > > It is from OpenBSD:
> > > >
> https://github.com/openbsd/src/blob/master/sys/arch/arm64/stand/efiboot/s=
tart.S
> > >
> > > Sorry patch to ldscript.arm64 was missing.
> > > I am going to test your serial patch now.
> > >
> > >
> > > > >> For 2), I do not know what to do. Currently, I commented out
> > > > >> comconsole from struct console *consoles[] in
> stand/efi/loader/conf.c
> > > > >> as a workaround. Maybe, I should write a fault handler that help=
s
> > > > >> returning from the fault.
> > > > >
> > > > >
> > > > > There were problems with this with HyperV on aarch64 too.
> > > > >
> > > > > Something like
> > > > > diff --git a/stand/efi/loader/efiserialio.c
> b/stand/efi/loader/efiserialio.c
> > > > > index 8b3f8e83e0b3..54ee39096685 100644
> > > > > --- a/stand/efi/loader/efiserialio.c
> > > > > +++ b/stand/efi/loader/efiserialio.c
> > > > > @@ -261,11 +261,11 @@ comc_probe(struct console *sc)
> > > > >                 if (comc_port =3D=3D NULL)
> > > > >                         return;
> > > > >         }
> > > > > -       comc_port->baudrate =3D COMSPEED;
> > > > > +       comc_port->baudrate =3D 0;
> > > > >         comc_port->ioaddr =3D 0;                  /* default port=
 */
> > > > > -       comc_port->databits =3D 8;                /* 8,n,1 */
> > > > > -       comc_port->parity =3D NoParity;           /* 8,n,1 */
> > > > > -       comc_port->stopbits =3D OneStopBit;       /* 8,n,1 */
> > > > > +       comc_port->databits =3D 0;                /* 8,n,1 */
> > > > > +       comc_port->parity =3D 0;          /* 8,n,1 */
> > > > > +       comc_port->stopbits =3D 0;        /* 8,n,1 */
> > > > >         comc_port->ignore_cd =3D 1;               /* ignore cd */
> > > > >         comc_port->rtsdtr_off =3D 0;              /* rts-dtr is o=
n */
> > > > >         comc_port->sio =3D NULL;
> > > > >
> > > > > was needed.  Possibly the following would be better:
> > > > >
> > > > > diff --git a/stand/efi/loader/efiserialio.c
> b/stand/efi/loader/efiserialio.c
> > > > > index 8b3f8e83e0b3..54ee39096685 100644
> > > > > --- a/stand/efi/loader/efiserialio.c
> > > > > +++ b/stand/efi/loader/efiserialio.c
> > > > > @@ -494,8 +494,7 @@ comc_setup(void)
> > > > >                 return (false);
> > > > >
> > > > >         status =3D comc_port->sio->SetAttributes(comc_port->sio,
> > > > > -           comc_port->baudrate, 0, 0, comc_port->parity,
> > > > > -           comc_port->databits, comc_port->stopbits);
> > > > > +           0, 0, 0, 0, 0, 0);
> > > > >         if (EFI_ERROR(status))
> > > > >                 return (false);
> > > > >
>

--0000000000007d1f2f05f09f33c0
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Sat, Dec 24, 2022 at 7:55 PM Hiroo=
 Ono (=E5=B0=8F=E9=87=8E=E5=AF=9B=E7=94=9F) &lt;<a href=3D"mailto:hiroo.ono=
%2Bfreebsd@gmail.com">hiroo.ono+freebsd@gmail.com</a>&gt; wrote:<br></div><=
blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l=
eft:1px solid rgb(204,204,204);padding-left:1ex">Equivalent change by Allan=
 Jude is under review.<br>
<a href=3D"https://reviews.freebsd.org/D37766" rel=3D"noreferrer" target=3D=
"_blank">https://reviews.freebsd.org/D37766</a></blockquote><div><br></div>=
<div>Yea, this just changes the heap we use to be code pages, not data page=
s...=C2=A0</div><div>But the loader allocates its pages for the kernel, etc=
 in copy.c. I&#39;m not surprised</div><div>this didn&#39;t work.</div><div=
><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.=
8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
I have already tried this change, but it did not succeeded for me.<br>
<a href=3D"https://reviews.freebsd.org/D37765" rel=3D"noreferrer" target=3D=
"_blank">https://reviews.freebsd.org/D37765</a></blockquote><div><br></div>=
<div>Yea, this looks somewhat like what=C2=A0you shared with me :)</div><di=
v><br></div><div>I wonder if it&#39;s worth climbing the hill to get -targe=
t aarch64-unknown-uefi working for clang and fixing our build to use it... =
The current pecoff header stuff is a bit hackish, as this issue is pointing=
 out...</div><div><br></div><div>Warner</div><div>=C2=A0</div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px soli=
d rgb(204,204,204);padding-left:1ex"><br>
2022=E5=B9=B412=E6=9C=8824=E6=97=A5(=E5=9C=9F) 22:18 Hiroo Ono (=E5=B0=8F=
=E9=87=8E=E5=AF=9B=E7=94=9F) &lt;<a href=3D"mailto:hiroo.ono%2Bfreebsd@gmai=
l.com" target=3D"_blank">hiroo.ono+freebsd@gmail.com</a>&gt;:<br>
&gt;<br>
&gt; Sorry again.<br>
&gt; The patch is needed for<br>
&gt; * stand/efi/loader/arch/arm64/start.S<br>
&gt; * stand/efi/loader/arch/arm64/ldscript.arm64<br>
&gt; * stand/efi/loader/Makefile<br>
&gt;<br>
&gt; I forgot the last one. I remade the patch for three.<br>
&gt;<br>
&gt; 2022=E5=B9=B412=E6=9C=8824=E6=97=A5(=E5=9C=9F) 22:11 Hiroo Ono (=E5=B0=
=8F=E9=87=8E=E5=AF=9B=E7=94=9F) &lt;<a href=3D"mailto:hiroo.ono%2Bfreebsd@g=
mail.com" target=3D"_blank">hiroo.ono+freebsd@gmail.com</a>&gt;:<br>
&gt; &gt;<br>
&gt; &gt; 2022=E5=B9=B412=E6=9C=8824=E6=97=A5(=E5=9C=9F) 10:35 Hiroo Ono (=
=E5=B0=8F=E9=87=8E=E5=AF=9B=E7=94=9F) &lt;<a href=3D"mailto:hiroo.ono%2Bfre=
ebsd@gmail.com" target=3D"_blank">hiroo.ono+freebsd@gmail.com</a>&gt;:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; I run other arm64 machines w/o issue with the current c=
ode.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Yes, Qualcomm&#39;s snapdragon is weird. I saw Linux people =
complain about<br>
&gt; &gt; &gt; it somewhere... Wanted to know=C2=A0 before I bought this Yo=
ga C630.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; 2022=E5=B9=B412=E6=9C=8824=E6=97=A5(=E5=9C=9F) 10:03 Warner =
Losh &lt;<a href=3D"mailto:imp@bsdimp.com" target=3D"_blank">imp@bsdimp.com=
</a>&gt;:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; On Fri, Dec 23, 2022 at 5:49 PM Hiroo Ono (=E5=B0=8F=E9=
=87=8E=E5=AF=9B=E7=94=9F) &lt;<a href=3D"mailto:hiroo.ono%2Bfreebsd@gmail.c=
om" target=3D"_blank">hiroo.ono+freebsd@gmail.com</a>&gt; wrote:<br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt; The current status of FreeBSD 14-current on Lenovo =
Yoga C630 is as follows:<br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;=C2=A0 1) Merging from OpenBSD&#39;s loader code mad=
e the loader boot apart from<br>
&gt; &gt; &gt; &gt;&gt; 3 points (#2 to 4 ).<br>
&gt; &gt; &gt; &gt;&gt;=C2=A0 2) when comconsole-&gt;c_init() runs the 2nd =
time, it seems to freeze.<br>
&gt; &gt; &gt; &gt;&gt; (might be C630 specific)<br>
&gt; &gt; &gt; &gt;&gt;=C2=A0 3) SetVirtualAddressMap() in efi_do_vmap() fr=
eezes. (might also<br>
&gt; &gt; &gt; &gt;&gt; affect other snapdragon systems like Microsoft Arm =
Developer Kit)<br>
&gt; &gt; &gt; &gt;&gt;=C2=A0 4) The kernel is kicked but does not start.<b=
r>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt; 1) is quite straightforward. What needs to be chang=
ed is<br>
&gt; &gt; &gt; &gt;&gt; stand/efi/loader/arch/arm64/start.S.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Can you share what needs to be done? To my eye, we don&=
#39;t need any changes, so it would be good to know what you&#39;ve had to =
do exactly.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Attached is the diff to start.S. There are 3 points.<br>
&gt; &gt; &gt; 1) The loader has to be aligned to 4kb.<br>
&gt; &gt; &gt; 2) Proper characteristic value should be in the PE header.<b=
r>
&gt; &gt; &gt; 3) .text and .data segment have to be separate.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; It is from OpenBSD:<br>
&gt; &gt; &gt; <a href=3D"https://github.com/openbsd/src/blob/master/sys/ar=
ch/arm64/stand/efiboot/start.S" rel=3D"noreferrer" target=3D"_blank">https:=
//github.com/openbsd/src/blob/master/sys/arch/arm64/stand/efiboot/start.S</=
a><br>
&gt; &gt;<br>
&gt; &gt; Sorry patch to ldscript.arm64 was missing.<br>
&gt; &gt; I am going to test your serial patch now.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; For 2), I do not know what to do. Currently, I comm=
ented out<br>
&gt; &gt; &gt; &gt;&gt; comconsole from struct console *consoles[] in stand=
/efi/loader/conf.c<br>
&gt; &gt; &gt; &gt;&gt; as a workaround. Maybe, I should write a fault hand=
ler that helps<br>
&gt; &gt; &gt; &gt;&gt; returning from the fault.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; There were problems with this with HyperV on aarch64 to=
o.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Something like<br>
&gt; &gt; &gt; &gt; diff --git a/stand/efi/loader/efiserialio.c b/stand/efi=
/loader/efiserialio.c<br>
&gt; &gt; &gt; &gt; index 8b3f8e83e0b3..54ee39096685 100644<br>
&gt; &gt; &gt; &gt; --- a/stand/efi/loader/efiserialio.c<br>
&gt; &gt; &gt; &gt; +++ b/stand/efi/loader/efiserialio.c<br>
&gt; &gt; &gt; &gt; @@ -261,11 +261,11 @@ comc_probe(struct console *sc)<br=
>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0if (comc_port =3D=3D NULL)<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0comc_port-&gt;baudrate =3D =
COMSPEED;<br>
&gt; &gt; &gt; &gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0comc_port-&gt;baudrate =3D =
0;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0comc_port-&gt;ioaddr =
=3D 0;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* def=
ault port */<br>
&gt; &gt; &gt; &gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0comc_port-&gt;databits =3D =
8;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* 8,n,1 */<br>
&gt; &gt; &gt; &gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0comc_port-&gt;parity =3D No=
Parity;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* 8,n,1 */<br>
&gt; &gt; &gt; &gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0comc_port-&gt;stopbits =3D =
OneStopBit;=C2=A0 =C2=A0 =C2=A0 =C2=A0/* 8,n,1 */<br>
&gt; &gt; &gt; &gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0comc_port-&gt;databits =3D =
0;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* 8,n,1 */<br>
&gt; &gt; &gt; &gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0comc_port-&gt;parity =3D 0;=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* 8,n,1 */<br>
&gt; &gt; &gt; &gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0comc_port-&gt;stopbits =3D =
0;=C2=A0 =C2=A0 =C2=A0 =C2=A0 /* 8,n,1 */<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0comc_port-&gt;ignore_c=
d =3D 1;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* ignore cd=
 */<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0comc_port-&gt;rtsdtr_o=
ff =3D 0;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* rts-dtr is on =
*/<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0comc_port-&gt;sio =3D =
NULL;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; was needed.=C2=A0 Possibly the following would be bette=
r:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; diff --git a/stand/efi/loader/efiserialio.c b/stand/efi=
/loader/efiserialio.c<br>
&gt; &gt; &gt; &gt; index 8b3f8e83e0b3..54ee39096685 100644<br>
&gt; &gt; &gt; &gt; --- a/stand/efi/loader/efiserialio.c<br>
&gt; &gt; &gt; &gt; +++ b/stand/efi/loader/efiserialio.c<br>
&gt; &gt; &gt; &gt; @@ -494,8 +494,7 @@ comc_setup(void)<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0return (false);<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0status =3D comc_port-&=
gt;sio-&gt;SetAttributes(comc_port-&gt;sio,<br>
&gt; &gt; &gt; &gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0comc_port-&gt=
;baudrate, 0, 0, comc_port-&gt;parity,<br>
&gt; &gt; &gt; &gt; -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0comc_port-&gt=
;databits, comc_port-&gt;stopbits);<br>
&gt; &gt; &gt; &gt; +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00, 0, 0, 0, 0=
, 0);<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (EFI_ERROR(status))=
<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0return (false);<br>
&gt; &gt; &gt; &gt;<br>
</blockquote></div></div>

--0000000000007d1f2f05f09f33c0--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfrwPC=0pWM1-6=n2pQmVWsiDk4F7t2wsLuK_7wfD3dT2w>