Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue 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

Aperta
#232 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
c, linux, raspberry-pi

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
C
Stelle
12
Fork
3
Merge medio
1h 33m
PR unite (30g)
58

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di nextbsd/nextbsd-kernel

Tutte le issue di nextbsd/nextbsd-kernel

Issue simili

Altre issue su C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.