<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/MdeModulePkg/Library/ArmFfaLib, 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-07-20T19:13:15+00:00</updated>
<entry>
<title>MdePkg,MdeModulePkg: ArmFfaLib: Expand to include first 4 registers</title>
<updated>2026-07-20T19:13:15+00:00</updated>
<author>
<name>Kun Qin</name>
<email>kuqin@microsoft.com</email>
</author>
<published>2026-06-19T17:05:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=89c6073683e18cd3271d7263b0e2712c88c7ec12'/>
<id>urn:sha1:89c6073683e18cd3271d7263b0e2712c88c7ec12</id>
<content type='text'>
The direct message arguments stripped off the header, making the
underlying FF-A function interface to lose information when it comes to
certain return code, i.e. FFA_YIELD and FFA_INTERRUPT.

This change adds back the header field for this purpose so that the
callers can decide how to act on the corresponding return codes.

It then populates the header field for this purpose in FFA direct
message functions so that the callers can decide how to act on the
corresponding return codes.

Continuous-integration-options: PatchCheck.ignore-multi-package

Signed-off-by: Kun Qin &lt;kun.qin@microsoft.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/ArmFfaLib: Use EFI_PAGES_TO_SIZE</title>
<updated>2026-07-08T05:02:11+00:00</updated>
<author>
<name>Mingjie Shen</name>
<email>shen497@purdue.edu</email>
</author>
<published>2026-05-07T23:21:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=b38d9eb7c6299d1bbb46773d261452a11427505b'/>
<id>urn:sha1:b38d9eb7c6299d1bbb46773d261452a11427505b</id>
<content type='text'>
Replace manual page-size multiplication with EFI_PAGES_TO_SIZE
in the ArmFfaLib sources.

This commit mimics 3457388 and is generated by the following coccinelle
scipt:

```smpl
@pages_to_size@
expression PAGE_COUNT;
@@
- PcdGet64 (PAGE_COUNT) * EFI_PAGE_SIZE
+ EFI_PAGES_TO_SIZE (PcdGet64 (PAGE_COUNT))
```

Tested:
- stuart_ci_build -c .pytool/CISettings.py -p MdeModulePkg -a AARCH64 -t DEBUG TOOL_CHAIN_TAG=GCC
- stuart_ci_build -c .pytool/CISettings.py -p MdeModulePkg -a AARCH64 -t RELEASE,NO-TARGET TOOL_CHAIN_TAG=GCC

Signed-off-by: Mingjie Shen &lt;shen497@purdue.edu&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/ArmFfaLib: return error when CurrentVersion is NULL</title>
<updated>2026-05-29T18:44:57+00:00</updated>
<author>
<name>Yeoreum Yun</name>
<email>yeoreum.yun@arm.com</email>
</author>
<published>2026-05-02T17:26:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=d0da872d961b3a0b535293e5c0f978313a376e45'/>
<id>urn:sha1:d0da872d961b3a0b535293e5c0f978313a376e45</id>
<content type='text'>
Output parameter CurrentVersion of ArmFfaLibGetVersion() is
not optional parameter. That means it should return error
when CurrentVersion is NULL.

Signed-off-by: Yeoreum Yun &lt;yeoreum.yun@arm.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/ArmFfaLib: Fix VM ID handling for RX release and RXTX unmap</title>
<updated>2026-05-28T23:51:09+00:00</updated>
<author>
<name>Shenghu Liu</name>
<email>shenghul@qti.qualcomm.com</email>
</author>
<published>2026-05-13T21:38:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=7f0fd11273126838dcff879185642ea53f84c26d'/>
<id>urn:sha1:7f0fd11273126838dcff879185642ea53f84c26d</id>
<content type='text'>
According to the FFA specification, when FFA_RX_RELEASE or
FFA_RXTX_UNMAP is invoked from UEFI as a non-secure virtual instance,
the w1 register must be zero (MBZ). Supplying a non-zero value causes the
SPMC to return FFA_INVALID_PARAMETER.

When these interfaces are invoked from UEFI as a non-secure physical
instance, FFA_ID_GET always returns a VM ID of zero. Therefore,
providing a non-zero VM ID in this context is unnecessary and may be
invalid.

Update ArmFfaLib to always set w1 (VM ID / partition ID) to zero when
invoking FFA_RX_RELEASE and FFA_RXTX_UNMAP, ensuring compliance with
the FFA specification.

Signed-off-by: Shenghu Liu &lt;shenghul@qti.qualcomm.com&gt;
</content>
</entry>
<entry>
<title>ArmPkg,MdePkg,MdeModulePkg: change ArmFfaLibGetVersion() with whole version</title>
<updated>2026-04-28T17:19:44+00:00</updated>
<author>
<name>Yeoreum Yun</name>
<email>yeoreum.yun@arm.com</email>
</author>
<published>2026-04-22T15:12:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=ae2d2d76c1b9c1f28abaee67f335dec29c96f7ec'/>
<id>urn:sha1:ae2d2d76c1b9c1f28abaee67f335dec29c96f7ec</id>
<content type='text'>
Current ArmFfaLibGetVersion()'s arguments receive two arguments
-- major version and minor version.

However, This gives some impression treating major and minor version
of the ABI as two unrelated 16-bit variables as opposed to
the upper and lower 16-bits of a 32-bit version variable.

Therefore, change the arguments with whole version and
let user to get major/minor version via ARM_FFA_MAJOR/MINOR_VERSION_GET
macros.

Also, add some useful helper to check version compatibility and
mimimum require ABI version.

Continuous-integration-options: PatchCheck.ignore-multi-package
Suggested-by: Leif Lindholm &lt;quic_llindhol@quicinc.com&gt;
Signed-off-by: Yeoreum Yun &lt;yeoreum.yun@arm.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg/Library: ArmFfaLib: add mapping ARM_FFA_RET_RETRY</title>
<updated>2026-04-23T08:22:22+00:00</updated>
<author>
<name>Yeoreum Yun</name>
<email>yeoreum.yun@arm.com</email>
</author>
<published>2026-04-16T18:06:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=87cfc60f2066c35e58b0803e9c022397acc8797d'/>
<id>urn:sha1:87cfc60f2066c35e58b0803e9c022397acc8797d</id>
<content type='text'>
There is no mapping ARM_FFA_RET_RETRY with EFI_STATUS but
it falls to EFI_UNSUPPORTED.

Map ARM_FFA_RET_RETRY with EFI_TIMEOUT so that don't make it fall to
EFI_UNSUPPORTED.

Signed-off-by: Yeoreum Yun &lt;yeoreum.yun@arm.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Add library class SafeIntLib where ArmFfaCommon.c is used</title>
<updated>2026-03-09T03:35:31+00:00</updated>
<author>
<name>Mike Beaton</name>
<email>mjsbeaton@gmail.com</email>
</author>
<published>2026-03-07T15:32:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=1f5c9f2a5cb126251cb00d6b34702dddb1c3337d'/>
<id>urn:sha1:1f5c9f2a5cb126251cb00d6b34702dddb1c3337d</id>
<content type='text'>
Required by implementation of ArmFfaLibYield.

Fixes: 6479778e6b3890f65580bfbd50426046533b85a8

Signed-off-by: Mike Beaton &lt;mjsbeaton@gmail.com&gt;
</content>
</entry>
<entry>
<title>MdePkg,MdeModulePkg: Add FFA_YIELD command</title>
<updated>2026-03-07T09:34:09+00:00</updated>
<author>
<name>Raymond-MS</name>
<email>raymonddiaz@microsoft.com</email>
</author>
<published>2025-10-17T01:06:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=6479778e6b3890f65580bfbd50426046533b85a8'/>
<id>urn:sha1:6479778e6b3890f65580bfbd50426046533b85a8</id>
<content type='text'>
Add the FF-A YIELD command to the FF-A library.
Continuous-integration-options: PatchCheck.ignore-multi-package

Signed-off-by: Raymond Diaz &lt;raymonddiaz@microsoft.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: Add FFA_NS_RES_INFO_GET to ArmFfaCommon</title>
<updated>2026-03-04T01:22:07+00:00</updated>
<author>
<name>rdiaz</name>
<email>raymonddiaz@microsoft.com</email>
</author>
<published>2026-02-03T00:08:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=a39c3835aaea8757854b2b0890d14fe16cdcbb21'/>
<id>urn:sha1:a39c3835aaea8757854b2b0890d14fe16cdcbb21</id>
<content type='text'>
Add FFA_NS_RES_INFO_GET implementation to ArmFfaCommon

Signed-off-by: Raymond Diaz &lt;raymonddiaz@microsoft.com&gt;
</content>
</entry>
<entry>
<title>MdeModulePkg: 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-03T18:48:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=7a934d0befca7d10f361c76af6d2fcb6eb48c835'/>
<id>urn:sha1:7a934d0befca7d10f361c76af6d2fcb6eb48c835</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>
</feed>
