Page MenuHomeFreeBSD

apex: add a driver for the Google Apex Edge TPU
Needs ReviewPublic

Authored by seuros on Jul 30 2026, 8:12 PM.
Referenced Files
Unknown Object (File)
Sun, Sep 13, 1:53 AM
Unknown Object (File)
Sat, Sep 12, 9:00 PM
Unknown Object (File)
Fri, Sep 11, 2:55 AM
Unknown Object (File)
Mon, Sep 7, 11:40 PM
Unknown Object (File)
Mon, Sep 7, 4:16 PM
Unknown Object (File)
Sat, Sep 5, 1:05 PM
Unknown Object (File)
Fri, Sep 4, 7:23 AM
Unknown Object (File)
Fri, Sep 4, 4:59 AM
Subscribers

Details

Reviewers
adrian
ziaee
Group Reviewers
drivers
manpages
Summary

The Apex is the accelerator on Coral PCI Express and M.2 modules,
appearing as 1ac1:089a
Google's Linux driver left staging in 5.16 and the out of tree
repository was archived; no BSD has had one.

Tested on: amd64, Coral M.2 Accelerator, running MobileNet v1
with the TensorFlow Lite 2.16 and LiteRT runtimes

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 76851
Build 73734: arc lint + arc unit

Event Timeline

The USB variant is more common than the PCIE/M2 in the wild, but i did not want to port it without testing it on hardware.

I will check with some frigate or home-assistant friends if they have they can undust the coral .

PS: the linux driver has a bug that will never be fixed (the repo is archived) which pushed people in stopped the coral usage. this port address it.

in general good; just update your email address!

sys/dev/apex/apex.c
60

Maybe create a #define for how big this can get instead of '3' and use that for bounds checking the array?

ziaee requested changes to this revision.Sun, Sep 13, 12:19 AM
ziaee added a reviewer: manpages.

looks cool; please also relnotes: yes for any new driver

share/man/man4/apex.4
14–27

can also add tunables and sysctls if you want, see share/examples/mdoc/example.4

44

see share/man/man5/style.mdoc.5

This revision now requires changes to proceed.Sun, Sep 13, 12:19 AM