Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

rpi5: measure what the firmware leaves for the onboard CYW43455 Bluetooth (BT_ON gio 29, uarta pinmux, 96 MHz clock, bdaddr) before any driver work

Abierto
#232 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
c, linux, raspberry-pi

Línea de trabajo

Start with the referenced bcm2712-rpi-5-b.dts, bcm2712.dtsi, bcm2712-rpi.dtsi, and config/rpi5.env. On a Pi 500+, run the listed GPIO, clock, Bluetooth, and dmesg commands, then compare them with ofwdump and devinfo output from NEXTBSD-RPI5. Done means recording all four answers with raw output and identifying which GPIO and pinctrl drivers K8 requires.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

area:bluetooth area:rpi5 needs-hardware question

E16 draft id K7 · epic nextbsd/nextbsd#473

Question

The Pi 5 / Pi 500 Bluetooth radio is UART-attached, and every layer between it and ng_hci is missing in FreeBSD 15.1 (K8 has the list). Before sizing that work, three facts have to be read off the board — they decide whether K8 is "a UART compat line and an H4 node" or "three new SoC drivers first":

  1. Is BT_ON already high? The radio's reset is shutdown-gpios = <&gio 29 GPIO_ACTIVE_HIGH> (bcm2712-rpi-5-b.dts:377), on the SoC's brcm,brcmstb-gpio block at 0x107d508500 (bcm2712.dtsi:497-508 in rpi-6.6.y), for which FreeBSD has no driver. Linux hci_bcm toggles it itself. If the Pi firmware/EEPROM leaves it high, a GPIO driver can wait; if it leaves the chip in reset, K8 needs brcmstb-gpio first.
  2. Are gpio24–27 muxed to uart0 (uarta)? pinctrl-0 = <&uarta_24_pins &bt_shutdown_pins> on brcm,bcm2712-pinctrl at 0x107d504100 (bcm2712.dtsi:402-…), also driverless. Linux applies it at probe.
  3. What does uarta (brcm,bcm7271-uart, 0x107d50c000, reg-shift=2, reg-io-width=4, clock-frequency=96000000) actually run at, and does skip-init mean the firmware already programmed it? Same class of question as the UART10 clock hunt in config/rpi5.env (44.2368 MHz measured vs 9.216 MHz claimed) — the number has to come from the hardware, not the DT.
  4. What BD address does the firmware put in the DT? local-bd-address is zeros in the source dts; the Pi firmware patches it at boot (bdaddr override, bcm2712-rpi.dtsi:177). Dump /proc/device-tree/…/bluetooth/local-bd-address from Linux and the FreeBSD ofw view.

How

On a Pi 500+ under Raspberry Pi OS: raspi-gpio get 24-29 (or pinctrl get 24-29), gpioinfo for gio line 29 state, cat /sys/kernel/debug/clk/clk_summary | grep -i uart, hcitool dev / btmgmt info for the working baud/bdaddr, and dmesg | grep -i 'hci_uart\|bcm' for the firmware file the kernel loaded (expect brcm/BCM4345C0.hcd or the raspberrypi,5-model-b variant). Then boot NEXTBSD-RPI5 and read the same registers/DT nodes from FreeBSD (ofwdump -a, devinfo -v, a kldstat-free peek via ddb or a tiny /dev/mem read if needed) to see what our boot path leaves.

Acceptance

  • The four answers, with the raw command output, on this ticket
  • K8's scope updated: which of {brcmstb-gpio, bcm2712-pinctrl} are hard prerequisites vs later
  • The measured uarta clock and the firmware file name recorded for K8

Related

  • K8 (the bring-up, parked), #99 (WiFi half of the same chip — separate SDIO path, no shared code), #107/#108 (the UART10 clock precedent)
  • nextbsd/nextbsd#440 (E7), #473 (E16)

Dependencies (E16)

  • Depends on: nothing
  • Blocks: nextbsd/nextbsd-kernel#233 (K8)

Draft ids (K = kernel & hardware, B = engine/BLE, D = bluetoothd/CLI, H = HID, A = audio) are listed with their issue numbers in nextbsd/nextbsd#473.

Lenguaje dominante
C
Estrellas
12
Forks
3
Merge medio
7 h 1 min
PR fusionados (30 d)
7

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de nextbsd/nextbsd-kernel

Todos los issues de nextbsd/nextbsd-kernel

Issues similares

Más issues de C

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.