[SRU][R/N][PATCH 0/1] firmware: arm_ffa: Respect firmware advertised RX/TX buffer size limits
Mitchell Augustin
mitchell.augustin at canonical.com
Wed Jul 29 18:35:27 UTC 2026
NAKing this myself, my bad - this should only be applied to 7.0
kernels that pulled in the two patches listed[0], so the header should
actually be pointing to Resolute and Noble-hwe-7.0. I will resubmit
with the correct header, sorry for the noise.
[0]
| `7bfaed6b412b` firmware: arm_ffa: Use the correct buffer size during
RXTX_MAP | `83210251fd70` | LP #2156385 |
| `105dac1d2c92` firmware: arm_ffa: Align RxTx buffer size before
mapping | `0399e3f872ca` | LP #2156390 |
On Wed, Jul 29, 2026 at 1:29 PM <mitchell.augustin at canonical.com> wrote:
>
> From: Mitchell Augustin <mitchell.augustin at canonical.com>
>
> BugLink: https://bugs.launchpad.net/bugs/2162012
>
> [ Summary ]
>
> A recent stable-update pulled two v7.1 FF-A commits into the linux-nvidia 7.0
> branches, but not the third commit in the chain. The result is that FF-A
> fails to initialise on 64K page kernels whose firmware rejects a 64K RX/TX
> buffer, taking every FF-A device with it. This backports the missing fix.
>
> ### The regression
>
> Stable-updates applied these two, both of which first shipped
> upstream in **v7.1**:
>
> | Backport | Upstream | BugLink |
> |---|---|---|
> | `7bfaed6b412b` firmware: arm_ffa: Use the correct buffer size during RXTX_MAP | `83210251fd70` | LP #2156385 |
> | `105dac1d2c92` firmware: arm_ffa: Align RxTx buffer size before mapping | `0399e3f872ca` | LP #2156390 |
>
> The first makes the driver advertise `PAGE_ALIGN(rxtx_bufsz)` to firmware; the
> second is its follow-up fix. Both landed in `Ubuntu-nvidia-bos-7.0.0-2016.16`,
> the most recent tag on this branch. Earlier tags are not affected.
>
> The third commit in the chain, which fixes the fallout from the first, only
> landed upstream in **v7.2-rc4**:
>
> 53716a4d745f firmware: arm_ffa: Respect firmware advertised RX/TX buffer size limits
>
> [ Impact ]
>
> On a 64K page kernel the driver takes the firmware advertised minimum RX/TX
> buffer size, rounds it up to `PAGE_SIZE`, and asks firmware to map that. FF-A
> implementations before v1.2 advertise no maximum and may simply reject the
> rounded up size. There is no clamp and no retry, so probe fails:
>
> ARM FF-A: Driver version 1.2
> ARM FF-A: Firmware version 1.1 found
> ARM FF-A: failed to register FFA RxTx buffers
>
> and no FF-A devices are registered at all. Anything sitting on FF-A goes with
> it, including TPM over FF-A.
>
> Trigger is `PAGE_SIZE` greater than the advertised minimum, so the 64K
> flavours. Platforms with FF-A v1.2 or later firmware are unaffected, since the
> advertised maximum is then respected.
>
> [ Fix ]
>
> Backport of `53716a4d745f`. It decodes the maximum buffer size that
> FF-A v1.2+ reports, clamps the page aligned minimum to it, and where no maximum
> is advertised retries `RXTX_MAP` at the advertised minimum if the rounded size
> is rejected with `INVALID_PARAMETERS`.
>
> [ Test Plan ]
>
> Tested on an Arm server reporting FF-A firmware version 1.1, running a 64K page
> kernel built from this branch's own `nvidia-bos-64k` flavour annotations.
>
> Before, on the unmodified branch tip:
>
> ARM FF-A: failed to register FFA RxTx buffers
> /sys/bus/arm_ffa/devices/ -> empty
>
> After, with this commit applied:
>
> ARM FF-A: Firmware version 1.1 found
> ARM FF-A: Failed to create IRQ mapping!
> /sys/bus/arm_ffa/devices/ -> arm-ffa-1 .. arm-ffa-5
>
> All five partitions enumerate again. The remaining "Failed to create IRQ
> mapping" line is pre-existing and also present on the distro kernel that
> predates the regression. No new BUG, WARNING or call traces.
>
> [ Where Problems Could Occur ]
>
> A regression in this fix could cause issues with the ARM FF-A driver's partition enumeration
>
> Seth Forshee (1):
> firmware: arm_ffa: Respect firmware advertised RX/TX buffer size
> limits
>
> drivers/firmware/arm_ffa/driver.c | 27 ++++++++++++++++++++-------
> 1 file changed, 20 insertions(+), 7 deletions(-)
>
> --
> 2.53.0
>
--
Mitchell Augustin
Software Engineer / Tech Lead - Ubuntu on NVIDIA DGX
Email:mitchell.augustin at canonical.com
mitchellaugustin at ubuntu.com
Location:United States of America (Central Time)
canonical.com
ubuntu.com
More information about the kernel-team
mailing list