Skip to content

Commit 0ebdf11

Browse files
committed
firmware: tegra: Enable BPMP support on Tegra234
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 <jonathanh@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
1 parent e5c8898 commit 0ebdf11

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

drivers/firmware/tegra/bpmp.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -856,7 +856,8 @@ static const struct tegra_bpmp_soc tegra210_soc = {
856856

857857
static const struct of_device_id tegra_bpmp_match[] = {
858858
#if IS_ENABLED(CONFIG_ARCH_TEGRA_186_SOC) || \
859-
IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC)
859+
IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC) || \
860+
IS_ENABLED(CONFIG_ARCH_TEGRA_234_SOC)
860861
{ .compatible = "nvidia,tegra186-bpmp", .data = &tegra186_soc },
861862
#endif
862863
#if IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC)

drivers/mailbox/tegra-hsp.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
#include <linux/pm.h>
1414
#include <linux/slab.h>
1515

16+
#include <soc/tegra/fuse.h>
17+
1618
#include <dt-bindings/mailbox/tegra186-hsp.h>
1719

1820
#include "mailbox.h"
@@ -322,7 +324,12 @@ static int tegra_hsp_doorbell_startup(struct mbox_chan *chan)
322324
if (!ccplex)
323325
return -ENODEV;
324326

325-
if (!tegra_hsp_doorbell_can_ring(db))
327+
/*
328+
* On simulation platforms the BPMP hasn't had a chance yet to mark
329+
* the doorbell as ringable by the CCPLEX, so we want to skip extra
330+
* checks here.
331+
*/
332+
if (tegra_is_silicon() && !tegra_hsp_doorbell_can_ring(db))
326333
return -ENODEV;
327334

328335
spin_lock_irqsave(&hsp->lock, flags);

0 commit comments

Comments
 (0)