[PATCH v4 2/3] pinctrl: bcm: Add STB family pin controller driver

Peter Robinson pbrobinson at gmail.com
Sun Sep 7 09:24:43 PDT 2025


Hey Andrea,

> On 21:06 Thu 04 Sep     , Linus Walleij wrote:
> > On Thu, Aug 28, 2025 at 2:45 PM Andrea della Porta
> > <andrea.porta at suse.com> wrote:
> >
> > > From: "Ivan T. Ivanov" <iivanov at suse.de>
> > >
> > > This driver provide pin muxing and configuration functionality
> > > for BCM2712 SoC used by RPi5. According to [1] this chip is an
> > > instance of the one used in Broadcom STB  product line.
> > >
> > > [1] https://lore.kernel.org/lkml/f6601f73-cb22-4ba3-88c5-241be8421fc3@broadcom.com/
> > >
> > > Cc: Jonathan Bell <jonathan at raspberrypi.com>
> > > Cc: Phil Elwell <phil at raspberrypi.com>
> > > Signed-off-by: Ivan T. Ivanov <iivanov at suse.de>
> > > Reviewed-by: Phil Elwell <phil at raspberrypi.com>
> > > Signed-off-by: Andrea della Porta <andrea.porta at suse.com>
> >
> > Patch applied!
> >
> > > +config PINCTRL_BRCMSTB
> > > +        tristate "Broadcom STB product line pin controller driver"
> > > +        depends on OF && (ARCH_BRCMSTB || COMPILE_TEST)
> >
> > I changed this to (ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST)
> > because Peter Robinson told me the Pi5 needs this driver too.
> > See commit 1d99f92f71b6b4b2eee776562c991428490f71ef for details.
>
> Indeed, thanks for spotting this!

I've been testing this, and other associated patches, with Fedora
(feel free to cc: me on any patches too) and I'm seeing the following
crash on the 2Gb model, someone else reported to me they see it on
their 16gb, I'm assuming there's some issue/nuance in the d0 rev of
the SoC that causes issues. Wondering if you've done any testing with
the newer SoC rev or know of any issues there?

Peter

[   56.289183] SError Interrupt on CPU3, code 0x00000000be000011 -- SError
[   56.289194] CPU: 3 UID: 0 PID: 341 Comm: (udev-worker) Tainted: G
M               ------  ---  6.17.0-0.rc4.36.pr3.fc43.aarch64 #1
PREEMPT(voluntary)
[   56.289200] Tainted: [M]=MACHINE_CHECK
[   56.289201] Hardware name: raspberrypi Raspberry Pi 5 Model B Rev
1.0/Raspberry Pi 5 Model B Rev 1.0, BIOS 2025.04 04/01/2025
[   56.289204] pstate: 804000c9 (Nzcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   56.289208] pc : brcmstb_pull_config_set+0x5c/0xd8
[   56.289216] lr : brcmstb_pull_config_set+0x44/0xd8
[   56.289220] sp : ffff800080663500
[   56.289221] x29: ffff800080663500 x28: ffffbcba6aaab480 x27: 0000000000000370
[   56.289227] x26: 0000ffffa9554298 x25: ffffbcbad6ad2360 x24: ffff000000776240
[   56.289231] x23: ffff0000011352b8 x22: ffff000002a16080 x21: 0000000000000014
[   56.289235] x20: 0000000000000118 x19: ffff000002a16080 x18: 00000000fffffffc
[   56.289239] x17: ffff0000010f1180 x16: ffffbcbad419c418 x15: 000000000000000a
[   56.289243] x14: ffffffffffffffff x13: 0000000000000001 x12: 0000000000000000
[   56.289247] x11: 0000000000000040 x10: 0000000000000000 x9 : ffffbcbad3dda6d4
[   56.289251] x8 : 0000000000000014 x7 : 0000000000000000 x6 : ffffbcbad3dda768
[   56.289254] x5 : ffff00000204f480 x4 : 0000000000000020 x3 : 0000000000000000
[   56.289258] x2 : 0000000000000001 x1 : 0000000000000000 x0 : 0000000000000000
[   56.289262] Kernel panic - not syncing: Asynchronous SError Interrupt
[   56.422659] CPU: 3 UID: 0 PID: 341 Comm: (udev-worker) Tainted: G
M               ------  ---  6.17.0-0.rc4.36.pr3.fc43.aarch64 #1
PREEMPT(voluntary)
[   56.436367] Tainted: [M]=MACHINE_CHECK
[   56.440123] Hardware name: raspberrypi Raspberry Pi 5 Model B Rev
1.0/Raspberry Pi 5 Model B Rev 1.0, BIOS 2025.04 04/01/2025
[   56.451472] Call trace:
[   56.453919]  show_stack+0x30/0x90 (C)
[   56.457595]  dump_stack_lvl+0x7c/0xa0
[   56.461268]  dump_stack+0x18/0x2c
[   56.464590]  vpanic+0x140/0x338
[   56.467737]  panic+0x68/0x70
[   56.470622]  nmi_panic+0x90/0xa0
[   56.473859]  arm64_serror_panic+0x78/0x90
[   56.477878]  arm64_is_fatal_ras_serror+0x90/0x98
[   56.482509]  do_serror+0x38/0x60
[   56.485742]  el1h_64_error_handler+0x38/0x60
[   56.490026]  el1h_64_error+0x84/0x88
[   56.493609]  brcmstb_pull_config_set+0x5c/0xd8 (P)
[   56.498416]  brcmstb_pinconf_set+0xbc/0xe8
[   56.502523]  pinconf_apply_setting+0xc4/0x148
[   56.506893]  pinctrl_commit_state+0x124/0x240
[   56.511262]  pinctrl_select_state+0x24/0x40
[   56.515456]  pinctrl_bind_pins+0x1ec/0x280
[   56.519565]  really_probe+0x60/0x3a0
[   56.523150]  __driver_probe_device+0x84/0x160
[   56.527520]  driver_probe_device+0x48/0x130
[   56.531716]  __driver_attach+0xd0/0x1f8
[   56.535560]  bus_for_each_dev+0x84/0x100
[   56.539494]  driver_attach+0x2c/0x40
[   56.543078]  bus_add_driver+0x158/0x280
[   56.546924]  driver_register+0x70/0x138
[   56.550769]  __platform_driver_register+0x28/0x40
[   56.555487]  gpio_keys_init+0x28/0xff8 [gpio_keys]
[   56.560296]  do_one_initcall+0x5c/0x318
[   56.564143]  do_init_module+0x9c/0x2b8
[   56.567903]  load_module+0x7e0/0x998
[   56.571486]  init_module_from_file+0x90/0xf0
[   56.575769]  __arm64_sys_finit_module+0x270/0x380
[   56.580488]  invoke_syscall.constprop.0+0x64/0xe8
[   56.585208]  el0_svc_common.constprop.0+0xc0/0xe8
[   56.589927]  do_el0_svc+0x24/0x38
[   56.593250]  el0_svc+0x3c/0x168
[   56.596398]  el0t_64_sync_handler+0xa0/0xf0
[   56.600593]  el0t_64_sync+0x1b0/0x1b8
[   56.604264] SMP: stopping secondary CPUs
[   56.608198] Kernel Offset: 0x3cba532a0000 from 0xffff800080000000
[   56.614310] PHYS_OFFSET: 0x0
[   56.617194] CPU features: 0x080000,00017000,24023140,0401720b
[   56.622958] Memory Limit: none
[   56.626147] ---[ end Kernel panic - not syncing: Asynchronous
SError Interrupt ]---



More information about the linux-arm-kernel mailing list