Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Oct 2022 06:03:19 +0000
From:      Wei Hu <weh@microsoft.com>
To:        "freebsd-hackers@FreeBSD.org" <freebsd-hackers@freebsd.org>, John Baldwin <jhb@FreeBSD.org>
Cc:        Li-Wen Hsu <lwhsu@freebsd.org>, Souradeep Chakrabarti <schakrabarti@microsoft.com>
Subject:   FW: newbus and acpi issue on Hyper-V
Message-ID:  <SI2P153MB04412944658A25DB25666079BB249@SI2P153MB0441.APCP153.PROD.OUTLOOK.COM>
In-Reply-To: <SI2P153MB044187FAF9A71259432CBAA1BB259@SI2P153MB0441.APCP153.PROD.OUTLOOK.COM>
References:  <SI2P153MB044165FA2E21C8E46D2484BCBB259@SI2P153MB0441.APCP153.PROD.OUTLOOK.COM> <SI2P153MB044187FAF9A71259432CBAA1BB259@SI2P153MB0441.APCP153.PROD.OUTLOOK.COM>

next in thread | previous in thread | raw e-mail | index | archive | help
--_004_SI2P153MB04412944658A25DB25666079BB249SI2P153MB0441APCP_
Content-Type: multipart/alternative;
	boundary="_000_SI2P153MB04412944658A25DB25666079BB249SI2P153MB0441APCP_"

--_000_SI2P153MB04412944658A25DB25666079BB249SI2P153MB0441APCP_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi,



We are working on enabling FreeBSD running on ARM64 Hyper-V at Microsoft. R=
ight now we are hitting a road blocker which seems only happening on FreeBS=
D guest, due to its newbus architecture and how resources are presented in =
Hyper-V's ACPI tables. I am writing in hope to find a short term solution o=
r workaround. Without it, it would be hard to make SRIOV work on ARM64 Free=
BSD guests. Appreciate any inputs.



Here are the details. Hyper-V presents two system resources at two differen=
t places/nodes in its ACPI table.



1) PCI mmio resource in HID "ACPI0004", which is needed by the FreeBSD gues=
t for SRIOV devices.



   Device (\_SB.VMOD)    <-- This is currently owned by acpi_syscontainer m=
odule on FreeBSD

    {

        Name (_HID, "ACPI0004" /* Module Device */)  // _HID: Hardware ID

        Name (_UID, Zero)  // _UID: Unique ID

        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings

        {

            ...

        }

        CreateDWordField (_CRS, \_SB.VMOD._Y00._MIN, MIN6)  // _MIN: Minimu=
m Base Address

        CreateDWordField (_CRS, \_SB.VMOD._Y00._MAX, MAX6)  // _MAX: Maximu=
m Base Address

        CreateDWordField (_CRS, \_SB.VMOD._Y00._LEN, LEN6)  // _LEN: Length

        CreateQWordField (_CRS, \_SB.VMOD._Y01._MIN, MIN7)  // _MIN: Minimu=
m Base Address

        CreateQWordField (_CRS, \_SB.VMOD._Y01._MAX, MAX7)  // _MAX: Maximu=
m Base Address

        CreateQWordField (_CRS, \_SB.VMOD._Y01._LEN, LEN7)  // _LEN: Length

        Method (_INI, 0, NotSerialized)  // _INI: Initialize

        {

            MIN6 =3D MG2B /* \MG2B */

            LEN6 =3D MG2L /* \MG2L */

            Local0 =3D MG2L /* \MG2L */

            MAX6 =3D (MIN6 + Local0--)

            Local1 =3D (HMIB << 0x14)

            Local2 =3D (HMIL << 0x14)

            MIN7 =3D Local1

            LEN7 =3D Local2

            Local0 =3D Local2

            MAX7 =3D (MIN7 + Local0--)

        }

    }



2) Vmbus IRQ resource in HID "VMBus", which is needed to get Hyper-V vmbus =
interrupt to work on guests.

Device (\_SB.VMOD.VMBS)   <--- currently owned by vmbus_res module on FreeB=
SD

    {

        ...

        Name (_HID, "VMBus")  // _HID: Hardware ID

        Name (_UID, Zero)  // _UID: Unique ID

        ...

        Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings

        {

            Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )

            {

                0x00000012,

            }

        })

    }



On x86, FreeBSD just needs PCI mmio resource 1). We ignore the vmbus IRQ re=
source in the ACPI and pick a fixed vector for all cpu interrupt. But on AR=
M64, the guest needs all the information in order to make bus_alloc_resouce=
() to work for both interrupt and mmio. Therefore, the main Hyper-V device =
driver vmbus needs to be the child for both these nodes to make the resourc=
e allocation to work. But it seems to us that one device driver can only ha=
ve one parent in the newbus architecture, we can only make one resource all=
ocation to work in this scenario, either IRQ or mmio, but not both.



Following is a picture of current device tree on a AMD64 FreeBSD guest on H=
yper-V



[cid:image002.png@01D8DF2F.A3DB8800]



As you can see vmbus module is under acpi_syscontainer which owns PCI mmio =
resource. The vmbus IRQ resouce is owned by vmbus_res module, which is just=
 a place holder for this resouce and never been used on am64. On ARM64, vmb=
us module needs to be the child for both vmbus_res and acpi_syscontainer to=
 get the both resources, which doesn't seem to be possible under newbus arc=
hitecture.



Any suggestions or workarounds are welcome. Thanks in advacne.



Wei





--_000_SI2P153MB04412944658A25DB25666079BB249SI2P153MB0441APCP_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:DengXian;
	panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:DengXian;
	panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0in;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri",sans-serif;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"#0563C1" vlink=3D"#954F72" style=3D"word-wrap:=
break-word">
<div class=3D"WordSection1">
<p class=3D"MsoPlainText">Hi,<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">We are working on enabling FreeBSD running on ARM=
64 Hyper-V at Microsoft. Right now we are hitting a road blocker which seem=
s only happening on FreeBSD guest, due to its newbus architecture and how r=
esources are presented in Hyper-V's
 ACPI tables. I am writing in hope to find a short term solution or workaro=
und. Without it, it would be hard to make SRIOV work on ARM64 FreeBSD guest=
s. Appreciate any inputs.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Here are the details. Hyper-V presents two system=
 resources at two different places/nodes in its ACPI table.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1) PCI mmio resource in HID &quot;ACPI0004&quot;,=
 which is needed by the FreeBSD guest for SRIOV devices.
<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp; Device (\_SB.VMOD)&nbsp;&nbsp;&nbsp;=
 &lt;-- This is currently owned by acpi_syscontainer module on FreeBSD<o:p>=
</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp; {<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name (=
_HID, &quot;<span style=3D"background:yellow;mso-highlight:yellow">ACPI0004=
</span>&quot; /* Module Device */)&nbsp; // _HID: Hardware ID<o:p></o:p></p=
>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name (=
_UID, Zero)&nbsp; // _UID: Unique ID<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name (=
_CRS, ResourceTemplate ()&nbsp; // _CRS: Current Resource Settings<o:p></o:=
p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<o:p>=
</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp; ...<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p>=
</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Create=
DWordField (_CRS, \_SB.VMOD._Y00._MIN, MIN6)&nbsp; // _MIN: Minimum Base Ad=
dress<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Create=
DWordField (_CRS, \_SB.VMOD._Y00._MAX, MAX6)&nbsp; // _MAX: Maximum Base Ad=
dress<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Create=
DWordField (_CRS, \_SB.VMOD._Y00._LEN, LEN6)&nbsp; // _LEN: Length<o:p></o:=
p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Create=
QWordField (_CRS, \_SB.VMOD._Y01._MIN, MIN7)&nbsp; // _MIN: Minimum Base Ad=
dress<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Create=
QWordField (_CRS, \_SB.VMOD._Y01._MAX, MAX7)&nbsp; // _MAX: Maximum Base Ad=
dress<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Create=
QWordField (_CRS, \_SB.VMOD._Y01._LEN, LEN7)&nbsp; // _LEN: Length<o:p></o:=
p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Method=
 (_INI, 0, NotSerialized)&nbsp; // _INI: Initialize<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<o:p>=
</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp; MIN6 =3D MG2B /* \MG2B */<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp; LEN6 =3D MG2L /* \MG2L */<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp; Local0 =3D MG2L /* \MG2L */<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp; MAX6 =3D (MIN6 + Local0--)<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp; Local1 =3D (HMIB &lt;&lt; 0x14)<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp; Local2 =3D (HMIL &lt;&lt; 0x14)<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp; MIN7 =3D Local1<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp; LEN7 =3D Local2<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;Local0 =3D Local2<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp; MAX7 =3D (MIN7 + Local0--)<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p>=
</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp; }<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">2) Vmbus IRQ resource in HID &quot;VMBus&quot;, w=
hich is needed to get Hyper-V vmbus interrupt to work on guests.<o:p></o:p>=
</p>
<p class=3D"MsoPlainText">Device (\_SB.VMOD.VMBS)&nbsp; &nbsp;&lt;--- curre=
ntly owned by vmbus_res module on FreeBSD<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp; {<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<o:=
p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name (=
_HID, &quot;<span style=3D"background:yellow;mso-highlight:yellow">VMBus</s=
pan>&quot;)&nbsp; // _HID: Hardware ID<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name (=
_UID, Zero)&nbsp; // _UID: Unique ID<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<o:=
p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name (=
_CRS, ResourceTemplate ()&nbsp; // _CRS: Current Resource Settings<o:p></o:=
p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<o:p>=
</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp; Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive,=
 ,, )<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp; {<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x00000012,<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp; }<o:p></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; })<o:p=
></o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp;&nbsp; }<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">On x86, FreeBSD just needs PCI mmio resource 1). =
We ignore the vmbus IRQ resource in the ACPI and pick a fixed vector for al=
l cpu interrupt. But on ARM64, the guest needs all the information in order=
 to make bus_alloc_resouce() to work
 for both interrupt and mmio. Therefore, the main Hyper-V device driver vmb=
us needs to be the child for both these nodes to make the resource allocati=
on to work. But it seems to us that one device driver can only have one par=
ent in the newbus architecture,
 we can only make one resource allocation to work in this scenario, either =
IRQ or mmio, but not both.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Following is a picture of current device tree on =
a AMD64 FreeBSD guest on Hyper-V
<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><img width=3D"484" height=3D"218" style=3D"width:=
5.0416in;height:2.2708in" id=3D"Picture_x0020_1" src=3D"cid:image002.png@01=
D8DF2F.A3DB8800"><o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">As you can see vmbus module is under acpi_syscont=
ainer which owns PCI mmio resource. The vmbus IRQ resouce is owned by vmbus=
_res module, which is just a place holder for this resouce and never been u=
sed on am64. On ARM64, vmbus module
 needs to be the child for both vmbus_res and acpi_syscontainer to get the =
both resources, which doesn&#8217;t seem to be possible under newbus archit=
ecture.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Any suggestions or workarounds are welcome. Thank=
s in advacne.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Wei<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>

--_000_SI2P153MB04412944658A25DB25666079BB249SI2P153MB0441APCP_--

--_004_SI2P153MB04412944658A25DB25666079BB249SI2P153MB0441APCP_
Content-Type: image/png; name="image002.png"
Content-Description: image002.png
Content-Disposition: inline; filename="image002.png"; size=24247;
	creation-date="Thu, 13 Oct 2022 11:43:28 GMT";
	modification-date="Fri, 14 Oct 2022 06:03:18 GMT"
Content-ID: <image002.png@01D8DF2F.A3DB8800>
Content-Transfer-Encoding: base64

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
/H/woNDxLIgihwAAAABJRU5ErkJggg==

--_004_SI2P153MB04412944658A25DB25666079BB249SI2P153MB0441APCP_--



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