<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/arm/broadcom, branch main</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=main</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2026-03-31T19:54:21Z</updated>
<entry>
<title>bcm2835_virtgpio: Add driver for virtual GPIO controller on some RPi models</title>
<updated>2026-03-31T19:54:21Z</updated>
<author>
<name>Tetsuya Uemura</name>
<email>t_uemura@macome.co.jp</email>
</author>
<published>2026-03-30T15:24:38Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=84c68dbb59df81d5371f0d1eea888d30561d428d'/>
<id>urn:sha1:84c68dbb59df81d5371f0d1eea888d30561d428d</id>
<content type='text'>
This driver enables bcm2835-virtgpio GPIO controller found on RPi3B and
some CM boards. On which, the ACT (green) LED is connected to this
controller. It is essential for FreeBSD to have this driver to control
this LED.

It will be exposed via gpioled(4).

Reviewed by:	mhorne
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D51456
</content>
</entry>
<entry>
<title>arm bcm2835: Appease a warning from GCC</title>
<updated>2026-02-17T20:46:48Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2026-02-17T20:46:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c7f7b67411b2ac325b548422191896cfa66d15cb'/>
<id>urn:sha1:c7f7b67411b2ac325b548422191896cfa66d15cb</id>
<content type='text'>
No code currently uses the vc_audio_msg_type_names array of strings.

Reported by:	-Wunused-variable
Differential Revision:	https://reviews.freebsd.org/D55162
</content>
</entry>
<entry>
<title>arm/broadcom: Fix a typo in a source code comment</title>
<updated>2026-02-08T11:58:39Z</updated>
<author>
<name>Gordon Bergling</name>
<email>gbe@FreeBSD.org</email>
</author>
<published>2026-02-08T11:58:39Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=8aa4fa7bf9b36a873aa2fd3cc22e8e15b97ea81e'/>
<id>urn:sha1:8aa4fa7bf9b36a873aa2fd3cc22e8e15b97ea81e</id>
<content type='text'>
- s/preceeded/preceded/

MFC after:	3 days
</content>
</entry>
<entry>
<title>vchiq: fix build with clang 21</title>
<updated>2026-01-16T14:02:35Z</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2026-01-16T14:02:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b39662fc388678db2b7b5fa3c900205252d15b3b'/>
<id>urn:sha1:b39662fc388678db2b7b5fa3c900205252d15b3b</id>
<content type='text'>
When compiling vchiq with clang 21, the following -Werror warning is
produced:

    sys/contrib/vchiq/interface/vchiq_arm/vchiq_arm.c:728:27: error: default initialization of an object of type 'VCHIQ_QUEUE_MESSAGE32_T' with const member leaves the object uninitialized [-Werror,-Wdefault-const-init-field-unsafe]
      728 |                 VCHIQ_QUEUE_MESSAGE32_T args32;
          |                                         ^
    sys/contrib/vchiq/interface/vchiq_arm/vchiq_ioctl.h:151:40: note: member 'elements' declared 'const' here
      151 |         const /*VCHIQ_ELEMENT_T * */ uint32_t elements;
          |                                               ^

While the warning is formally correct, the 'args32' object is
immediately initialized after its declaration. Therefore, suppress the
warning.

MFC after:	3 days
</content>
</entry>
<entry>
<title>arm64: Add support to vchiq and bcm2835_audio (plus some fixes)</title>
<updated>2025-11-15T03:27:46Z</updated>
<author>
<name>Marco Devesas Campos</name>
<email>devesas.campos@gmail.com</email>
</author>
<published>2025-10-20T02:50:19Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=aa6b871ea77e5b52cf4683c5f304a82d2e351ba0'/>
<id>urn:sha1:aa6b871ea77e5b52cf4683c5f304a82d2e351ba0</id>
<content type='text'>
Add 64 bit support to vchiq:

 * update fields to the appropriate fixed bit-size variants (everywhere [cf. e.g., ref:sizes and ref:sizes2])
 * refer to event semaphores (that go into the very 32 bit VC) by offset instead of pointers [ref:sems]
 * dsb() is dsb(sy) in arm64 (vchiq_{core.c,core.h,kmod.c}) [ref:dsb]
 * comment out some unneeded code in parse_rx_slots around VCHIQ_MSG_BULK_RX (cf. [ref:deadcode])
 * adapt remote_event_signal to arm64 caching behaviours (vchiq_kmod.c)
 * refactor synchronization around remote_event_signal, forcing a wmb to be on the safe side; thereby make it look more like what linux does [ref:sync] (vchiq_{core,kmod}.c); and make a comment in vchiq_core.c true (wasn't before)
 * add a few more syncs to be on the safe side (vchiq_2835_arm.c)
 * use arm64 dcache invalidation mechanisms (vchiq_2835_arm.c)
 * explicitly invalidate pages on arm64 post bulk-read (vchiq_2835_arm.c)
 * support bulk transfers on rpi-4 (aka "long address space" transfers), by hard-coding their vc offset (0) and different bit-shift [ref:longbulk] (vchiq_2835_arm.c)
 * refactor a loop-of-constant-test (vchiq_2835_arm.c)
 * use the correct (hard-coded) cache-line size on arm64
 * rework the handling of chipset "features" to account for the extra behaviours with 64 bit chipsets. (vchiq_kmod.c)
 * add sysctl-s (log, arm_log) to control debug (vchiq_kmod.c)
 * add example kernel config (GENERIC-VCHIQ)

Fixes:

 * Rework error handling in create_pagelist, avoiding a potential panic when
   freeing memory that had been dmamem_alloc, a potential null dereference,
   and a leak when having problems pinning pages (vchiq_2835_arm.c)
 * fix a confusion about the behaviour cv_wait_sig that lead to
   uninterruptible looping (vchiq_bsd.c)
 * implement detection of fatal signals (vchiq_bsd.c)
 * fix a confusion with the name of a variable introduced by #a0b8746
   that could lead to a panic when closing the cdev file (vchiq_arm.c)
 * release user connection when destructing cdevpriv and avoid user processes
   sharing connection data, which lead to stalls and data corruption. (vchiq_arm.c)

Update bcm2835_audio to work on 64bit systems:

 * update VC audio fields (vc_vchi_audioserv_defs.h, bcm2835_audio.c)
 * repurpose the hitherto unused callback field to help push a 64 bit pointer in (bcm2835_audio.c)
 * increase (hopefully) the robustness of the code that shifts data to VC (bcm2835_audio.c)
 * add a sysctl to control the amount of debugging info output by bcm2835_audio.c

Tested on zero, zero2 and 4+ with ping, functional, bulk and control vchiq_test-s, and omxplayer

  [ref:dsb]: https://github.com/raspberrypi/linux/commit/35b7ebda57affcfd3616d39d5a727a4495b31123
  [ref:sems]: https://github.com/raspberrypi/linux/commit/24a4262afb10907fce3cdbc3ae336fcf4cdaece5
  [ref:sizes]: https://github.com/raspberrypi/linux/commit/e64568b8ea6c04e747e432c17ce2452652075216
  [ref:sizes2]: https://github.com/raspberrypi/linux/commit/f9bee6dd24addfa00c2c8d50c25b73efbfbb28ba
  [ref:deadcode]: https://github.com/raspberrypi/linux/commit/14f4d72fb799a9b3170a45ab80d4a3ddad541960
  [ref:sync]: https://github.com/raspberrypi/linux/commit/51c071265079319583e4c6e8c61e09660300d0bf
  [ref:longbulk]: https://github.com/raspberrypi/linux/commit/37f6f19a83722c9b866cecb5e455b2e16e5bbc6b

Differential Revision:	https://reviews.freebsd.org/D37878
Submitted by: Marco Devesas Campos &lt;devesas.campos@gmail.com&gt;
</content>
</entry>
<entry>
<title>sound: Get rid of useless sndbuf getters and setters</title>
<updated>2025-11-11T12:05:34Z</updated>
<author>
<name>Christos Margiolis</name>
<email>christos@FreeBSD.org</email>
</author>
<published>2025-11-11T12:05:34Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=78c5026ae13b2d30b479f9bc892ecdb6f5a5bc0b'/>
<id>urn:sha1:78c5026ae13b2d30b479f9bc892ecdb6f5a5bc0b</id>
<content type='text'>
No functional change intended.

Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D53528
</content>
</entry>
<entry>
<title>vchiq: fix another logging format string for 32/64 bit</title>
<updated>2025-10-30T00:48:12Z</updated>
<author>
<name>Marco Devesas Campos</name>
<email>devesas.campos@gmail.com</email>
</author>
<published>2025-10-26T23:08:24Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=8b43286fc3badc646ff5a828bae226c8fca90268'/>
<id>urn:sha1:8b43286fc3badc646ff5a828bae226c8fca90268</id>
<content type='text'>
This is from work from https://reviews.freebsd.org/D37878.

Submitted by: Marco Devesas Campos &lt;devesas.campos@gmail.com&gt;
Differential Revision:	https://reviews.freebsd.org/D53372
</content>
</entry>
<entry>
<title>vchiq: logging/tracing refactoring</title>
<updated>2025-10-30T00:48:05Z</updated>
<author>
<name>Marco Devesas Campos</name>
<email>devesas.campos@gmail.com</email>
</author>
<published>2025-10-26T23:04:17Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=df764dd133ecba8eade6a44e9baf1f0e9cf0d2f3'/>
<id>urn:sha1:df764dd133ecba8eade6a44e9baf1f0e9cf0d2f3</id>
<content type='text'>
* Create macros for error, info, warn, trace / debug
* Migrate existing printf() logging to use the above macros
* Add a sysctl knob to control it at runtime

This is based on work done in https://reviews.freebsd.org/D37878 .

Submitted by: Marco Devesas Campos &lt;devesas.campos@gmail.com&gt;
Differential Revision:	https://reviews.freebsd.org/D53371
</content>
</entry>
<entry>
<title>gpio: implement bus_setup_intr and bus_teardown_intr</title>
<updated>2025-09-30T04:20:05Z</updated>
<author>
<name>Ahmad Khalifa</name>
<email>vexeduxr@FreeBSD.org</email>
</author>
<published>2025-09-30T04:19:37Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f1a372ed88b11c1e096523c0b6cf62902c1db37c'/>
<id>urn:sha1:f1a372ed88b11c1e096523c0b6cf62902c1db37c</id>
<content type='text'>
Implement bus_setup_intr and bus_teardown_intr as bus_generic_setup_intr
and bus_generic_teardown_intr respectively for GPIO drivers that support
interrupts. This allows children to setup interrupts.

Reported by:	Evgenii Ivanov &lt;devivanov@proton.me&gt;
Reviewed by:	imp
MFC after:	1 day
Differential Revision:	https://reviews.freebsd.org/D52197
</content>
</entry>
<entry>
<title>gpio: remove gpiobus_attach_bus</title>
<updated>2025-08-13T11:14:00Z</updated>
<author>
<name>Ahmad Khalifa</name>
<email>vexeduxr@FreeBSD.org</email>
</author>
<published>2025-08-13T11:14:00Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c063fb7accae4cbe5e0fb808a1382600dc1b4249'/>
<id>urn:sha1:c063fb7accae4cbe5e0fb808a1382600dc1b4249</id>
<content type='text'>
Since gpiobus_attach_bus can attach the gpiobus child along with its
children in the same bus pass, the parent controller's reference to
gpiobus might not be set by the time the children need it. Instead,
drivers should use gpiobus_add_bus and explicitly call
bus_attach_children.

Reviewed by:	mmel, imp (older version)
Approved by:	imp (mentor)
Differential Revision:	https://reviews.freebsd.org/D51578
</content>
</entry>
</feed>
