<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial, 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-29T03:58:12+00:00</updated>
<entry>
<title>DynamicTablesPkg/FdtHwInfoParserLib: Fix serial access size parsing</title>
<updated>2026-09-29T03:58:12+00:00</updated>
<author>
<name>Djordje Nedic</name>
<email>djordje.nedic@nextsilicon.com</email>
</author>
<published>2026-09-25T09:43:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=6ad176741f41702ee63cfe85d0838c08298d794a'/>
<id>urn:sha1:6ad176741f41702ee63cfe85d0838c08298d794a</id>
<content type='text'>
Previously, access size values were taken as-is, instead of mapped to
ACPI defines.
This made for incorrect parsing of DWORD and QWORD access sizes.

Signed-off-by: Djordje Nedic &lt;djordje.nedic@nextsilicon.com&gt;
</content>
</entry>
<entry>
<title>DynamicTablesPkg/HwInfoParser: Add FdtGetTranslatedReg()</title>
<updated>2026-09-11T09:05:39+00:00</updated>
<author>
<name>Pierre Gondois</name>
<email>pierre.gondois@arm.com</email>
</author>
<published>2026-05-27T08:09:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=3819cffa5ef1cfcbbc14d2bc0ba14604dde20488'/>
<id>urn:sha1:3819cffa5ef1cfcbbc14d2bc0ba14604dde20488</id>
<content type='text'>
The Devicetree Specification [1] defines the "ranges" property.
"""
The ranges property provides a means of defining a mapping or
translation between the address space of the bus (the child
address space) and the address space of the bus node’s parent
(the parent address space).
"""

Add a FdtGetTranslatedReg() function, reading the "reg" property
of a node and translating the base address through the "ranges"
properties present in the node hierarchy.

Make use of FdtGetTranslatedReg() wherever relevant.
This allows to handle the presence of "ranges" property in
a node hierarchy by default.

[1] Spec. v0.4, s2.3.8 ranges

Signed-off-by: Pierre Gondois &lt;pierre.gondois@arm.com&gt;
</content>
</entry>
<entry>
<title>DynamicTablesPkg/HwInfoParser: Add FdtGetReg() helper</title>
<updated>2026-09-11T09:05:39+00:00</updated>
<author>
<name>Pierre Gondois</name>
<email>pierre.gondois@arm.com</email>
</author>
<published>2026-05-27T08:06:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=54ef58cb48113208925ec026d8f1ac2a1d2b9f99'/>
<id>urn:sha1:54ef58cb48113208925ec026d8f1ac2a1d2b9f99</id>
<content type='text'>
Add a FdtGetReg() helper to fetch the "reg" property of a node.
Use the newly introduce helper wherever relevant.

Signed-off-by: Pierre Gondois &lt;pierre.gondois@arm.com&gt;
</content>
</entry>
<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: Replace include guards with #pragma once</title>
<updated>2026-02-23T21:01:28+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2026-02-03T17:36:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=01f75b3927b8d98fa0a6fbfb6a79420985f107f0'/>
<id>urn:sha1:01f75b3927b8d98fa0a6fbfb6a79420985f107f0</id>
<content type='text'>
Replace traditional `#ifndef`/`#define`/`#endif` include guards with
`#pragma` once.

`#pragma once` is a widely supported preprocessor directive that
prevents header files from being included multiple times. It is
supported by all toolchains used to build edk2: GCC, Clang/LLVM, and
MSVC.

Compared to macro-based include guards, `#pragma once`:

- Eliminates the risk of macro name collisions or copy/paste errors
  where two headers inadvertently use the same guard macro.
- Eliminate inconsistency in the way include guard macros are named
  (e.g., some files use `__FILE_H__`, others use `FILE_H_`, etc.).
- Reduces boilerplate (three lines replaced by one).
- Avoids polluting the macro namespace with guard symbols.
- Can improve build times as the preprocessor can skip re-opening the
  file entirely, rather than re-reading it to find the matching
  `#endif` ("multiple-include optimization").
  - Note that some compilers may already optimize traditional include
    guards, by recognzining the idiomatic pattern.

This change is made acknowledging that overall portability of the
code will technically be reduced, as `#pragma once` is not part of the
C/C++ standards.

However, this is considered acceptable given:

1. edk2 already defines a subset of supported compilers in
   BaseTools/Conf/tools_def.template, all of which have supported
   `#pragma once` for over two decades.
2. There have been concerns raised to the project about inconsistent
   include guard naming and potential macro collisions.

Approximate compiler support dates:

- MSVC: Supported since Visual C++ 4.2 (1996)
- GCC: Supported since 3.4 (2004)
  (http://gnu.ist.utl.pt/software/gcc/gcc-3.4/changes.html)
- Clang (LLVM based): Since initial release in 2007

Signed-off-by: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
</content>
</entry>
<entry>
<title>DynamicTablesPkg/FdtHwInfoParserLib/Serial: RISC-V: Convert to GSI</title>
<updated>2025-12-02T20:52:41+00:00</updated>
<author>
<name>Sunil V L</name>
<email>sunilvl@ventanamicro.com</email>
</author>
<published>2025-09-12T12:27:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=d6748c514b1f04ecf4e4ed71bb41a159462cde77'/>
<id>urn:sha1:d6748c514b1f04ecf4e4ed71bb41a159462cde77</id>
<content type='text'>
In RISC-V, the GSI space is spread across multiple PLICs/APLICs. Hence,
any device's IRQ number in the FDT should be appropriately converted to
a GSI number based on its parent interrupt controller. Do this for UART
parsing in RISC-V.

Signed-off-by: Sunil V L &lt;sunilvl@ventanamicro.com&gt;
</content>
</entry>
</feed>
