Re: [Patch V2] memory: tegra: Remove clients SID override programming

From: Ashish Mhetre
Date: Thu Nov 24 2022 - 05:21:06 EST



On 11/22/2022 4:44 PM, Krzysztof Kozlowski wrote:
External email: Use caution opening links or attachments


On 22/11/2022 06:31, Ashish Mhetre wrote:
On newer Tegra releases, early boot SID override programming and SID
override programming during resume is handled by bootloader.
Also, SID override is programmed on-demand during probe_finalize() call
of IOMMU which is done in tegra186_mc_client_sid_override() in this same
file. This function does it more correctly by checking if write is
permitted on SID override register. It also checks if SID override
register is already written with correct value and skips re-writing it
in that case.
Hence, removing the SID override programming of all clients.

Fixes: 393d66fd2cac ("memory: tegra: Implement SID override programming")
I could not get from commit msg what is the bug being fixed. You just
said "more correctly", but usually things are either correct or not.
What are visible effects of the bug?

Otherwise it sounds more like optimization or a bit better approach, but
not a bugfix.

Best regards,
Krzysztof

Thanks for the review. In the function tegra186_mc_program_sid() which is
getting removed, SID override register of all clients is written without
checking if secure firmware has allowed write on it or not. If write is
disabled by secure firmware then it can lead to errors coming from secure
firmware and hang in kernel boot. So, that's a possible bug.
Also, it's an optimization over current approach because it saves time by
removing re-writing of these SID override registers as in new Tegra releases
SID override of all clients is programmed by bootloader. So, MC driver don't
need to program them again.

Thanks,
Ashish Mhetre