I was asked by @vwadekar to raise issues here. See:
opened 06:40AM - 20 Sep 25 UTC
I recently began transferring my project to using v2.12 for t210, t186, and t194… . And my tests with t210 failed to boot. On both the l4t r32.7.6 boot stack and the android rel-shield-r one. So I began stepping backwards to through release tags to find the last working tag for the arch. And found that it was v2.7. Three years ago.
Next I started bisecting to find where the breakage occurred. 0fe7b9f2bcdf754c483399c841e5f0ec71e53ef3 broke the arch during the v2.8 development cycle. Then 40a4e2d84c38ffae899eaa2c33c1e280312919cf fixed that during the v2.9 dev cycle. However, f8a35797b919d8ea041480bd5eb2a334e7056e0b quickly broke things again. cb6c8efc4f2dd951b2b51801a12ba1755d49fe79 was supposed to fix that, but it actually doesn't. I get send_smc errors spammed in the boot log and boot never completes. However, that doesn't even matter because before that was merged, 0b9f05fcaea069bff6894d99ec5babc4be29ca67 landed which prevents t210 from even loading tf-a enough to start logging. End result: v2.9 doesn't boot for two separate reasons. And nothing changed from then until now.
If I revert cb6c8efc4f2dd951b2b51801a12ba1755d49fe79, 0b9f05fcaea069bff6894d99ec5babc4be29ca67, and f8a35797b919d8ea041480bd5eb2a334e7056e0b on top of v2.12, t210 boots as expected. This is not a valid solution however, because it reverts an intentional change to meet spec and it also breaks the other tegra platforms.
<br/>
This all raises a big question for me. Are the tegra platforms maintained at all? I looked at using tf-a release tags, expecting that the platforms were being verified and confirmed stable. Tegra210, Tegra186, and Tegra194 are listed in docs as supported. However:
a) Tegra210 hasn't even booted for three years.
b) Tegra186 throws mmu faults galore, causing display corruption during boot and likely other issues. And the [maintainer said](https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/35535/1#message-e4cfa0537335d6d88de06352eab731eff5ea4eb7) that Tegra186 support was developed against an internal bootloader that was never released to the public, so it has never worked right. And since that platform is EOL, it is unlikely the closed source updates will ever be released.
c) Tegra194 seems to work okay, but with the condition of the other two archs, my confidence is waning.
d) As a related note, it appears that Nvidia has no intention of pushing support for the newer platforms such as Tegra234 and Tegra264 and intends to only support those in downstream forks with no commit history. Which makes it near impossible to unify back to a single repo for supporting multiple archs inside a project.
So my question is: Is there any intention to maintain tegra support in upstream tf-a? If not, then the illusion that it is needs to be removed. Mark the platforms as unmaintained, so any potential users know to expect to put in work to make things usable. Or remove the platforms entirely.
This issue was originally discussed on the following tf-a gerrit change:
https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/35535
Using TF-A v2.12 and every version I’ve tried back to v2.6 with the rest of the public L4T bootloader, for example: r32.7.6, results in the kernel throwing mmu faults during boot and the display flashing white. I submitted 35535 as a fix for that issue. The response I got was that there were changes to the closed source bootloaders needed to fix this, and tf-a should remain as is. But apparently these have never been released. Will an update be released with these changes? Or will effort be put into upstream tf-a to make it work as expected with the publicly available bootloader?
A follow-up to that report: After all this discussion had happened, I noticed that with 35535, the display will flash white during kernel shutdown. This does not happen with the downstream tf-a fork included with L4T r32.7.6. So the workaround unfortunately isn’t even a complete workaround.
hello Steel01,
it’s not supported, as you can see.. JetPack 4 Reaches End of Life .