Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Jun 2022 22:03:15 +0000
From:      Souradeep Chakrabarti <schakrabarti@microsoft.com>
To:        Warner Losh <imp@bsdimp.com>
Cc:        "freebsd-arm@FreeBSD.org" <freebsd-arm@FreeBSD.org>, "tsoome@FreeBSD.org" <tsoome@FreeBSD.org>, Wei Hu <weh@microsoft.com>
Subject:   Re: [EXTERNAL] Re: serial console and comconsole in FreeBSD arm64
Message-ID:  <PSAP153MB0536E7F2B5A8DBF521E306E5CCDF9@PSAP153MB0536.APCP153.PROD.OUTLOOK.COM>
In-Reply-To: <CANCZdfpjPrXZk15%2B3oFiYa_4VGkJmDC40-EndVry5WnVXKp05g@mail.gmail.com>
References:  <PSAP153MB05367C6802D76EC6BA352431CCDD9@PSAP153MB0536.APCP153.PROD.OUTLOOK.COM> <CANCZdfpjPrXZk15%2B3oFiYa_4VGkJmDC40-EndVry5WnVXKp05g@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--_000_PSAP153MB0536E7F2B5A8DBF521E306E5CCDF9PSAP153MB0536APCP_
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

Hi Warner,

Thanks for pointing boot_multicons, and yes it has solved the problem of Fr=
eeBSD kernel boot logs

not coming in Putty in both x86 and arm64.

Regarding FreeBSD 13,  yes loader.efi logs are not coming in Putty mostly b=
ecause of EFI gfx usage

which is not supported in Putty.

Now we can overcome it in x86 by setting set console=3D=94comconsole=94, as=
 it is using the different

uart implementation of comconsole of loader, which is not the same in arm64=
. The implementation

of comconsole in arm64 loader.efi is not supported in Hyper-V looks like. A=
s Hyper-V only supports

ttyAMA0 for serial console in ARM64 but supports uart in x86.


Regarding ConOut, I have got it from x86 FreeBSD13, (as arm64 is in the pro=
cess of bringing up and

ConOut is same for arm64 and x86, confirmed by using efishell binary and Li=
nux shell).


efivar --device-path 8be4df61-93ca-11d2-aa0d-00e098032b8c-ConOut

8be4df61-93ca-11d2-aa0d-00e098032b8c-ConOut

: AcpiEx(VMBus,,)/VenHw(9b17e5a2-0891-42dd-b653-80b5c22809ba,02780ada77e3ac=
4a8e770558eb1073f8c7e020566280ce4daeb7520c7ef76171)


On Mon, May 30, 2022, 3:31 AM Souradeep Chakrabarti <schakrabarti@microsoft=
.com> wrote:

>>Hi,

>>I am trying to access virtual serial console via Putty and in 13.0 it is =
not working

>>for both x86 and arm64.

>>

>>It is very easy to reproduce:

>>1) In Windows Hyper-V set a  FreeBSD 13.0 VM

>>2) Use Powershell in Admin privileged mode and run following:

>>                Set-VMComPort -VMName <vm_name> -number 1 -path \\.\pipe\=
Testpipe

>>2) In another Powershell with Admin privilege run following:

>>3) start the VM and open putty to connect the \\.\pipe\Testpipe in serial=
 mode.

>>No output will be seen on putty.

>Not even from the boot loader? That sure sounds like the automatic fallbac=
k to simple text output isn't happening.

>

>What does:

>% sudo efivar --device-path 8be4df61-93ca-11d2-aa0d-00e098032b8c-ConOut

>tell you? (Or run as root if you don't like sudo).

>

>The boot loader grew a non-optional graphics mode that's disabled when the=
 boot code

>detects we're talking to a 'serial port' between 12.x and 13.x. If you are=
 getting no output

>from the loader at all, I suspect this is likely to blame.

>But the same works in FreeBSD 12.3 and Putty gets the output from EFI load=
er for both x86 and arm64.

>But during kernel booting the console output does not come in Putty, it on=
ly comes in vmconnect.exe.

>

>So on 12.3, kernel output doesn't come out of both? Do you have boot_multi=
cons=3DYES in your loader.conf?

>If not, only one of the consoles will get output from the kernel.

>

>Warner

>>Like below :

>>

>>Loading kernel...

>>/boot/kernel/kernel text=3D0x931f24 data=3D0x187450 data=3D0x0+0x2d095e s=
yms=3D[0x8+0x138120+0x8+0x124824]

>>Loading configured modules...

>>can't find '/boot/entropy'

>>can't find '/etc/hostid'

>>No valid device tree blob found!

>>WARNING! Trying to fire up the kernel, but no device tree blob found!

>>EFI framebuffer information:

>>addr, size     0xe0000000, 0x800000

>>dimensions     1024 x 768

>>stride         1024

>>masks          0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 <<<<

>>

>>After this log is not coming in Putty in 12.3 for both x86 and arm64.



Thanks & Regards,
 Souradeep


--_000_PSAP153MB0536E7F2B5A8DBF521E306E5CCDF9PSAP153MB0536APCP_
Content-Type: text/html; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1=
252">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
Hi Warner,
<div><br>
</div>
<div>Thanks for pointing boot_multicons, and yes it has solved the problem =
of FreeBSD kernel boot logs</div>
<div><br>
</div>
<div>not coming in Putty in both x86 and arm64.</div>
<div><br>
</div>
<div>Regarding FreeBSD 13, &nbsp;yes loader.efi logs are not coming in Putt=
y mostly because of EFI gfx usage</div>
<div><br>
</div>
<div>which is not supported in Putty.</div>
<div><br>
</div>
<div>Now we can overcome it in x86 by setting set console=3D=94comconsole=
=94, as it is using the different</div>
<div><br>
</div>
<div>uart implementation of comconsole of loader, which is not the same in =
arm64. The implementation</div>
<div><br>
</div>
<div>of comconsole in arm64 loader.efi is not supported in Hyper-V looks li=
ke. As Hyper-V only supports</div>
<div><br>
</div>
<div>ttyAMA0 for serial console in ARM64 but supports uart in x86.</div>
<div><br>
</div>
<div>&nbsp;</div>
<div>Regarding ConOut, I have got it from x86 FreeBSD13, (as arm64 is in th=
e process of bringing up and</div>
<div><br>
</div>
<div>ConOut is same for arm64 and x86, confirmed by using efishell binary a=
nd Linux shell).</div>
<div><br>
</div>
<div><br>
</div>
<div>efivar --device-path 8be4df61-93ca-11d2-aa0d-00e098032b8c-ConOut</div>
<div><br>
</div>
<div>8be4df61-93ca-11d2-aa0d-00e098032b8c-ConOut</div>
<div><br>
</div>
<div>: AcpiEx(VMBus,,)/VenHw(9b17e5a2-0891-42dd-b653-80b5c22809ba,02780ada7=
7e3ac4a8e770558eb1073f8c7e020566280ce4daeb7520c7ef76171)</div>
<div><br>
</div>
&nbsp;<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
On Mon, May 30, 2022, 3:31 AM Souradeep Chakrabarti &lt;schakrabarti@micros=
oft.com&gt; wrote:</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
<div><br>
</div>
<div>&gt;&gt;Hi,</div>
<div><br>
</div>
<div>&gt;&gt;I am trying to access virtual serial console via Putty and in =
13.0 it is not working</div>
<div><br>
</div>
<div>&gt;&gt;for both x86 and arm64.</div>
<div><br>
</div>
<div>&gt;&gt;</div>
<div><br>
</div>
<div>&gt;&gt;It is very easy to reproduce:</div>
<div><br>
</div>
<div>&gt;&gt;1) In Windows Hyper-V set a &nbsp;FreeBSD 13.0 VM</div>
<div><br>
</div>
<div>&gt;&gt;2) Use Powershell in Admin privileged mode and run following:<=
/div>
<div><br>
</div>
<div>&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set-VM=
ComPort -VMName &lt;vm_name&gt; -number 1 -path \\.\pipe\Testpipe</div>
<div><br>
</div>
<div>&gt;&gt;2) In another Powershell with Admin privilege run following:</=
div>
<div><br>
</div>
<div>&gt;&gt;3) start the VM and open putty to connect the \\.\pipe\Testpip=
e in serial mode.</div>
<div><br>
</div>
<div>&gt;&gt;No output will be seen on putty.</div>
<div><br>
</div>
<div>&gt;Not even from the boot loader? That sure sounds like the automatic=
 fallback to simple text output isn't happening.</div>
<div><br>
</div>
<div>&gt; </div>
<div><br>
</div>
<div>&gt;What does:</div>
<div><br>
</div>
<div>&gt;% sudo efivar --device-path 8be4df61-93ca-11d2-aa0d-00e098032b8c-C=
onOut</div>
<div><br>
</div>
<div>&gt;tell you? (Or run as root if you don't like sudo).</div>
<div><br>
</div>
<div>&gt; </div>
<div><br>
</div>
<div>&gt;The boot loader grew a non-optional graphics mode that's disabled =
when the boot code</div>
<div><br>
</div>
<div>&gt;detects we're talking to a 'serial port' between 12.x and 13.x. If=
 you are getting no output</div>
<div><br>
</div>
<div>&gt;from the loader at all, I suspect this is likely to blame.</div>
<div><br>
</div>
<div>&gt;But the same works in FreeBSD 12.3 and Putty gets the output from =
EFI loader for both x86 and arm64.</div>
<div><br>
</div>
<div>&gt;But during kernel booting the console output does not come in Putt=
y, it only comes in vmconnect.exe.</div>
<div><br>
</div>
<div>&gt; </div>
<div><br>
</div>
<div>&gt;So on 12.3, kernel output doesn't come out of both? Do you have bo=
ot_multicons=3DYES in your loader.conf?</div>
<div><br>
</div>
<div>&gt;If not, only one of the consoles will get output from the kernel.<=
/div>
<div><br>
</div>
<div>&gt; </div>
<div><br>
</div>
<div>&gt;Warner</div>
<div><br>
</div>
<div>&gt;&gt;Like below :</div>
<div><br>
</div>
<div>&gt;&gt;</div>
<div><br>
</div>
<div>&gt;&gt;Loading kernel...</div>
<div><br>
</div>
<div>&gt;&gt;/boot/kernel/kernel text=3D0x931f24 data=3D0x187450 data=3D0x0=
+0x2d095e syms=3D[0x8+0x138120+0x8+0x124824]</div>
<div><br>
</div>
<div>&gt;&gt;Loading configured modules...</div>
<div><br>
</div>
<div>&gt;&gt;can't find '/boot/entropy'</div>
<div><br>
</div>
<div>&gt;&gt;can't find '/etc/hostid'</div>
<div><br>
</div>
<div>&gt;&gt;No valid device tree blob found!</div>
<div><br>
</div>
<div>&gt;&gt;WARNING! Trying to fire up the kernel, but no device tree blob=
 found!</div>
<div><br>
</div>
<div>&gt;&gt;EFI framebuffer information:</div>
<div><br>
</div>
<div>&gt;&gt;addr, size &nbsp; &nbsp; 0xe0000000, 0x800000</div>
<div><br>
</div>
<div>&gt;&gt;dimensions &nbsp; &nbsp; 1024 x 768</div>
<div><br>
</div>
<div>&gt;&gt;stride &nbsp; &nbsp; &nbsp; &nbsp; 1024</div>
<div><br>
</div>
<div>&gt;&gt;masks &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x00ff0000, 0x0000ff00=
, 0x000000ff, 0xff000000 &lt;&lt;&lt;&lt;</div>
<div><br>
</div>
<div>&gt;&gt;</div>
<div><br>
</div>
<div>&gt;&gt;After this log is not coming in Putty in 12.3 for both x86 and=
 arm64.</div>
<br>
</div>
<div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id=3D"Signature">
<div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Thanks &amp; Regards,</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
&nbsp;Souradeep</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
</div>
</div>
</div>
</body>
</html>

--_000_PSAP153MB0536E7F2B5A8DBF521E306E5CCDF9PSAP153MB0536APCP_--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?PSAP153MB0536E7F2B5A8DBF521E306E5CCDF9>