<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/DynamicTablesPkg/Library/FdtHwInfoParserLib/Arm/GenericTimer/ArmGenericTimerParser.c, branch master</title>
<subtitle>EDK II (mirror)</subtitle>
<id>https://git.radix-linux.su/Tianocore/edk2.git/atom?h=master</id>
<link rel='self' href='https://git.radix-linux.su/Tianocore/edk2.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/'/>
<updated>2026-09-11T09:05:39+00:00</updated>
<entry>
<title>DynamicTablesPkg/HwInfoParser: Add FdtResolveInterrupt()</title>
<updated>2026-09-11T09:05:39+00:00</updated>
<author>
<name>Pierre Gondois</name>
<email>pierre.gondois@arm.com</email>
</author>
<published>2026-08-10T12:54:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=b377584b344a47f878124c52cfba5904cd886587'/>
<id>urn:sha1:b377584b344a47f878124c52cfba5904cd886587</id>
<content type='text'>
The Devicetree Specification [1] defines the concept of interrupt
mapping, interrupt domain, interrupt nexus and interrupt controller.
An interrupt property might need to be translated through an
interrupt nexus to obtain the interrupt type, id, flags.

Add a FdtResolveInterrupt() function, resolving an interrupt property
through interrupt nexuses until reaching the interrupt-controller
node.

Make use of FdtResolveInterrupt() wherever relevant.
This allows to handle the presence of interrupt nexus
by default.

[1] Spec. v0.4, s2.4 Interrupts and Interrupt Mapping

Signed-off-by: Pierre Gondois &lt;pierre.gondois@arm.com&gt;
</content>
</entry>
<entry>
<title>DynamicTablesPkg/HwInfoParser: Add Size param to interrupt getters</title>
<updated>2026-09-11T09:05:39+00:00</updated>
<author>
<name>Pierre Gondois</name>
<email>pierre.gondois@arm.com</email>
</author>
<published>2026-06-09T09:01:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=c5cfa75ee54d910771f1fd9cf183e4637f45b339'/>
<id>urn:sha1:c5cfa75ee54d910771f1fd9cf183e4637f45b339</id>
<content type='text'>
Add a Size parameter to:
- FdtGetInterruptId()
- FdtGetInterruptFlags()
This allows to check the size of the interrupt data to parse
inside the later functions.

Signed-off-by: Pierre Gondois &lt;pierre.gondois@arm.com&gt;
</content>
</entry>
<entry>
<title>DynamicTablesPkg/HwInfoParser: Relax GetNodeInterruptCells()</title>
<updated>2026-09-11T09:05:39+00:00</updated>
<author>
<name>Pierre Gondois</name>
<email>pierre.gondois@arm.com</email>
</author>
<published>2026-06-01T09:39:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=3601415fb481a5d952a1bd7aba682f43a2fce884'/>
<id>urn:sha1:3601415fb481a5d952a1bd7aba682f43a2fce884</id>
<content type='text'>
FdtGetInterruptCellsInfo() expects to receive an interrupt
controller node. However, a common use-case is to get the
"#interrupt-cells" of a non interrupt-controller node in order
to decode an "interrupts" property.

Add a "SearchInHierarchy" parameter to
FdtGetInterruptCellsInfo() to conditionnaly relax the
function and either get the "#interrupt-cells" property:
- from the input node
- from the hierachy of the input node.

Signed-off-by: Pierre Gondois &lt;pierre.gondois@arm.com&gt;
</content>
</entry>
<entry>
<title>DynamicTablesPkg/HwInfoParser: Split FdtGetIntcParentNode()</title>
<updated>2026-09-11T09:05:39+00:00</updated>
<author>
<name>Pierre Gondois</name>
<email>pierre.gondois@arm.com</email>
</author>
<published>2026-06-09T06:58:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=767340edee7a48cc45b8f98384b0686d590ad3d5'/>
<id>urn:sha1:767340edee7a48cc45b8f98384b0686d590ad3d5</id>
<content type='text'>
The Devicetree Specification [1] defines the concept of interrupt
mapping, interrupt domain, interrupt nexus and interrupt controller.

The "interrupt-controller" property defines a node as an interrupt
controller. The "interrupt-map" property defines a node as an
interrupt nexus. Both node types are defined as the root of an
interrupt domain.

A GIC (Generic Interrupt Controller) is an interrupt controller. The
GIC version should be fetched to the matching device tree node. A
node defining an interrupt domain might not necessarily be an
interrupt controller and contain this information.

Introduce 2 functions:
- FdtGetIntControllerNode()
- FdtGetIntDomainNode()`
to distinguish the 2 concepts.

As the presence of interrupt nexus/domains is currently not supported,
replace FdtGetIntcParentNode() calls with FdtGetIntControllerNode().
The distinction will be useful in following patches.

Also, update the detection of an interrupt domain to the presence
of one of these properties:
- interrupt-controller
- interrupt-map
instead of relying on the presence of the #interrupt-cells property,
which is not a guarantee.

[1] Spec. v0.4, s2.4 Interrupts and Interrupt Mapping

Signed-off-by: Pierre Gondois &lt;pierre.gondois@arm.com&gt;
</content>
</entry>
<entry>
<title>DynamicTablesPkg/HwInfoParser: Rename FdtGetIntcParentNode</title>
<updated>2026-09-11T09:05:39+00:00</updated>
<author>
<name>Pierre Gondois</name>
<email>pierre.gondois@arm.com</email>
</author>
<published>2026-06-08T11:24:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=369a603902c381e8ac9e360483866a861815bea3'/>
<id>urn:sha1:369a603902c381e8ac9e360483866a861815bea3</id>
<content type='text'>
The interrupt parent of a node is:
- the node pointed by the "interrupt-parent" property
  if the property is present
- the direct parent otherwise.

FdtGetIntcParentNode() doesn't aim to find the next
parent node in the interrupt hierarchy. It aims to find
the interrupt-controller node upon which the input node
depends. This interrupt-controller node might be multiple
nodes up in the device tree hierarchy.

Thus, rename FdtGetIntcParentNode() to FdtGetIntcNode()
to make the function name less ambiguous and prepare for
the addition of a function which gets the next parent node
in an interrupt hierarchy.

No functional change.

Signed-off-by: Pierre Gondois &lt;pierre.gondois@arm.com&gt;
</content>
</entry>
<entry>
<title>DynamicTablesPkg: Support EL2 virtual timer in ArmGenericTimerParser</title>
<updated>2026-07-31T13:57:58+00:00</updated>
<author>
<name>Marc Zyngier</name>
<email>maz@kernel.org</email>
</author>
<published>2026-06-27T15:52:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=abff40cb50ed7ffd6d8549f44b68a2fd7552e067'/>
<id>urn:sha1:abff40cb50ed7ffd6d8549f44b68a2fd7552e067</id>
<content type='text'>
When edk2 runs as a kvmtool guest with nested virtualization enabled,
the Arm architectural timer DT node contains five interrupt specifiers.
The fifth interrupt describes the EL2 virtual timer.

ArmGenericTimerParser currently expects exactly four timer interrupts.
It therefore asserts when parsing the timer node generated for a nested
virtualization guest.

Determine the number of interrupt specifiers present in the DT and
populate each architectural timer entry only when it is available.
Add support for the EL2 virtual timer and use it to populate the
VirtualPL2Timer fields in the generated GTDT information.

Tested as a KVM guest at EL1 and EL2, with both E2H==0 and E2H==1.

Signed-off-by: Marc Zyngier &lt;maz@kernel.org&gt;
[Varshit Pandya: Rewrite commit message for clarity.]
Ref: https://edk2.groups.io/g/devel/message/122008
Signed-off-by: Varshit Pandya &lt;varshit.pandya@arm.com&gt;
</content>
</entry>
<entry>
<title>ArmVirtPkg,DynamicTablesPkg,EmbeddedPkg,OvmfPkg: use MdePkg BaseFdtLib</title>
<updated>2025-04-30T10:56:03+00:00</updated>
<author>
<name>Leif Lindholm</name>
<email>leif.lindholm@oss.qualcomm.com</email>
</author>
<published>2024-09-26T18:22:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=8aad683e59dc5342a4c9b8bc3d84133d4b1896f6'/>
<id>urn:sha1:8aad683e59dc5342a4c9b8bc3d84133d4b1896f6</id>
<content type='text'>
Migrate these packages to use the up-to-date BaseFdtLib instead
of the EmbeddedPkg relic that is going away.

Continuous-integration-options: PatchCheck.ignore-multi-package
Signed-off-by: Leif Lindholm &lt;leif.lindholm@oss.qualcomm.com&gt;
</content>
</entry>
<entry>
<title>DynamicTablesPkg/FdtHwInfoParserLib: add missing resolutions/includes</title>
<updated>2024-09-27T07:40:06+00:00</updated>
<author>
<name>Leif Lindholm</name>
<email>quic_llindhol@quicinc.com</email>
</author>
<published>2024-09-26T15:52:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=fe93b3745f13d7eb891d9666debf2689a8975e5b'/>
<id>urn:sha1:fe93b3745f13d7eb891d9666debf2689a8975e5b</id>
<content type='text'>
FdtHwInfoParserLib does not explicitly call out its dependencies on
BaseLib/BaseMemoryLib, which is currently hidden when EmbeddedPkg FdtLib
pulls them in instead. But that is going away, so make the necessary
explicit references and add missing include statements.

Signed-off-by: Leif Lindholm &lt;quic_llindhol@quicinc.com&gt;
</content>
</entry>
<entry>
<title>DynamicTablesPkg: FdtHwInfoParserLib: Move ARM parsers to Arm directory</title>
<updated>2024-07-29T13:44:55+00:00</updated>
<author>
<name>Pierre Gondois</name>
<email>pierre.gondois@arm.com</email>
</author>
<published>2024-06-10T12:00:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=e2fda42a221a69140c42224e94bc5808a038e676'/>
<id>urn:sha1:e2fda42a221a69140c42224e94bc5808a038e676</id>
<content type='text'>
Create an Arm directory in the FdtHwInfoParserLib as a preparation
step to support other architectures.

Suggested-by: Sunil V L &lt;sunilvl@ventanamicro.com&gt;
Signed-off-by: Pierre Gondois &lt;pierre.gondois@arm.com&gt;
Reviewed-by: Sami Mujawar &lt;sami.mujawar@arm.com&gt;
</content>
</entry>
</feed>
