<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/firmware/tegra/bpmp.c, branch linux-6.3.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.3.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.3.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2022-10-24T13:18:23Z</updated>
<entry>
<title>firmware: tegra: bpmp: Do not support big-endian</title>
<updated>2022-10-24T13:18:23Z</updated>
<author>
<name>Thierry Reding</name>
</author>
<published>2022-09-22T13:41:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=228722c519644f8fee2ef75fe8e9d53cd40a3c6c'/>
<id>urn:sha1:228722c519644f8fee2ef75fe8e9d53cd40a3c6c</id>
<content type='text'>
The CPU and BPMP inter-processor communication code is only partially
endian-aware, so it doesn't work properly when run on a big-endian CPU
anyway. Running Tegra SoCs in big-endian mode has also never been
supported, especially not on those with 64-bit ARM processors.

If big-endian support ever becomes necessary this can be added back but
will need additional fixes for completeness.

Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
</content>
</entry>
<entry>
<title>firmware: tegra: bpmp: Use iosys-map helpers</title>
<updated>2022-10-24T13:18:11Z</updated>
<author>
<name>Thierry Reding</name>
</author>
<published>2022-09-22T13:41:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4c1e0a97351a5e88e7e503b40cdbe0f220039a5e'/>
<id>urn:sha1:4c1e0a97351a5e88e7e503b40cdbe0f220039a5e</id>
<content type='text'>
The shared memory used for inter-processor communication between the CPU
and the BPMP can reside either in system memory or in I/O memory. Use
the iosys-map helpers to abstract these differences away.

Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
</content>
</entry>
<entry>
<title>firmware: tegra: bpmp: Do only aligned access to IPC memory area</title>
<updated>2022-06-24T15:57:29Z</updated>
<author>
<name>Timo Alho</name>
</author>
<published>2022-06-22T13:22:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a4740b148a04dc60e14fe6a1dfe216d3bae214fd'/>
<id>urn:sha1:a4740b148a04dc60e14fe6a1dfe216d3bae214fd</id>
<content type='text'>
Use memcpy_toio and memcpy_fromio variants of memcpy to guarantee no
unaligned access to IPC memory area. This is to allow the IPC memory to
be mapped as Device memory to further suppress speculative reads from
happening within the 64 kB memory area above the IPC memory when 64 kB
memory pages are used.

Signed-off-by: Timo Alho &lt;talho@nvidia.com&gt;
Signed-off-by: Mikko Perttunen &lt;mperttunen@nvidia.com&gt;
Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
</content>
</entry>
<entry>
<title>firmware: tegra: bpmp: Fix Tegra234-only builds</title>
<updated>2021-06-11T11:31:51Z</updated>
<author>
<name>Thierry Reding</name>
</author>
<published>2021-04-13T12:23:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bd778b893963d67d7eb01f49d84ffcd3eaf229dd'/>
<id>urn:sha1:bd778b893963d67d7eb01f49d84ffcd3eaf229dd</id>
<content type='text'>
The tegra186_bpmp_ops symbol is used on Tegra234, so make sure it's
available.

Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
</content>
</entry>
<entry>
<title>firmware: tegra: Enable BPMP support on Tegra234</title>
<updated>2020-09-18T13:57:04Z</updated>
<author>
<name>Thierry Reding</name>
</author>
<published>2020-09-17T10:07:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0ebdf11699d0491c0a1eee5bb5d920f4f36810ba'/>
<id>urn:sha1:0ebdf11699d0491c0a1eee5bb5d920f4f36810ba</id>
<content type='text'>
Enable support for the BPMP on Tegra234 to avoid relying on Tegra194
being enabled to pull in the needed OF device ID table entry.

On simulation platforms the BPMP hasn't booted up yet by the time we
probe the BPMP driver and the BPMP hasn't had a chance to mark the
doorbell as ringable by the CCPLEX. This corresponding check in the
BPMP driver will therefore fail. Work around this by disabling the
check on simulation platforms.

Reviewed-by: Jon Hunter &lt;jonathanh@nvidia.com&gt;
Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
</content>
</entry>
<entry>
<title>firmware: tegra: Use consistent return variable name</title>
<updated>2020-07-14T15:57:18Z</updated>
<author>
<name>Jon Hunter</name>
</author>
<published>2020-07-12T10:01:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=edb2bca2ac48ad5fa2fcf7491fdf915a56dd24f6'/>
<id>urn:sha1:edb2bca2ac48ad5fa2fcf7491fdf915a56dd24f6</id>
<content type='text'>
Most functions in the BPMP driver use 'err' as the return variable
name but there are a few places that use 'ret'. Let's use 'err' to
be consistent.

Signed-off-by: Jon Hunter &lt;jonathanh@nvidia.com&gt;
Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
</content>
</entry>
<entry>
<title>firmware: tegra: Make BPMP a regular driver</title>
<updated>2020-04-21T22:02:10Z</updated>
<author>
<name>Thierry Reding</name>
</author>
<published>2020-04-21T22:00:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d70f5e541ab30bf5ff29b219e9d1980e082ba159'/>
<id>urn:sha1:d70f5e541ab30bf5ff29b219e9d1980e082ba159</id>
<content type='text'>
The Tegra BPMP driver typically ends up deferring probe because it wants
to attach to the SMMU, so there's little sense in registering it at the
core init-level.

One side-effect of this is that the driver will be probed later even if
it doesn't want to attach to an SMMU, which means that consumers will
end up deferring probe, which in turn takes care of ordering the suspend
and resume queue in the correct way. Currently since suspend/resume
order depends on instantiation order, and because BPMP is listed at the
very end of the device tree (after most of its consumers), the suspend
and resume queue is ordered wrongly, which can cause issues for drivers
(like I2C) which suspend after and resume before BPMP. In the case of
I2C this typically leads to the clock failing to enable.

Besides fixing this suspend/resume ordering issue, this also has the
added benefit of allowing the driver to be built as a loadable module,
which can help decrease the size of multiplatform kernel.

Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
</content>
</entry>
<entry>
<title>firmware: tegra: Move BPMP resume to noirq phase</title>
<updated>2019-10-01T14:38:45Z</updated>
<author>
<name>Vidya Sagar</name>
</author>
<published>2019-08-02T06:17:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=befc1bab91171d25de22dbcbf41309582a63ecd7'/>
<id>urn:sha1:befc1bab91171d25de22dbcbf41309582a63ecd7</id>
<content type='text'>
Modules like PCIe in Tegra194 need BPMP firmware services in noirq phase
and hence move BPMP resume to noirq phase.
This patch is verified on Tegra210, Tegra186 and Tegra194.

Signed-off-by: Vidya Sagar &lt;vidyas@nvidia.com&gt;
Reviewed-by: Timo Alho &lt;talho@nvidia.com&gt;
Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'tegra-for-5.3-firmware' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/drivers</title>
<updated>2019-06-25T12:41:44Z</updated>
<author>
<name>Olof Johansson</name>
</author>
<published>2019-06-25T12:41:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9d9dd994b5090955264ce555b1944a48865765a1'/>
<id>urn:sha1:9d9dd994b5090955264ce555b1944a48865765a1</id>
<content type='text'>
firmware: tegra: Changes for v5.3-rc1

This contains a single, simple change that resumes the BPMP driver early
so that it is available when the various consumers want to enable their
clocks.

* tag 'tegra-for-5.3-firmware' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  firmware: tegra: Early resume BPMP

Signed-off-by: Olof Johansson &lt;olof@lixom.net&gt;
</content>
</entry>
<entry>
<title>firmware: tegra: Early resume BPMP</title>
<updated>2019-06-14T15:45:17Z</updated>
<author>
<name>Bitan Biswas</name>
</author>
<published>2019-06-14T12:31:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=61ed7ef952fc482ec8d4a966ed0d1e32df276c59'/>
<id>urn:sha1:61ed7ef952fc482ec8d4a966ed0d1e32df276c59</id>
<content type='text'>
Early resume Tegra BPMP to fix Xavier clock rate error as follows:

	[  159.017101] of_serial 3110000.serial: calling platform_pm_resume+0x0/0x58 @ 317, parent: cbb
	[  159.025501] of_serial 3110000.serial: platform_pm_resume+0x0/0x58 returned 0 after 14 usecs
	[  159.033694] tegra-i2c 31c0000.i2c: calling platform_pm_resume+0x0/0x58 @ 317, parent: cbb
	[  159.042254] tegra-i2c 31c0000.i2c: failed changing clock rate: -22
	[  159.048216] PM: dpm_run_callback(): platform_pm_resume+0x0/0x58 returns -22
	[  159.055553] tegra-i2c 31c0000.i2c: platform_pm_resume+0x0/0x58 returned -22 after 13072 usecs
	[  159.063875] PM: Device 31c0000.i2c failed to resume: error -22

Signed-off-by: Bitan Biswas &lt;bbiswas@nvidia.com&gt;
Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
</content>
</entry>
</feed>
