[PATCH v1 0/4] Raspberry Pi: Add support for Pi 5 (PiSP)

Christian Rauch Rauch.Christian at gmx.de
Tue Mar 18 23:30:31 CET 2025


Hi Naush,

Thanks for the efforts upstreaming the Raspberry Pi 5 support. Is this
something that is still being worked on? Is there a rough timeline when
the Raspberry Pi 5 will be supported via the upstream libcamera version?

As far as I understand from Jacopo's patch to the LKML [1], all the
kernel bits are in place and only the "PiSP Front End" (in libpisp?) and
the actual libcamera IPAs and pipelines are missing. But this is already
10 months ago and I am not fully aware of the progress and to which
degree the Raspberry Pi 5 is already supported by upstream libcamera.

Since I am providing an application based on libcamera (a ROS 2 node) to
cover generic V4L2 devices as well as the Raspberry Pi Camera Modules,
and I am dealing with frequent issue reports as to why the Raspberry Pi
Camera Modules do not work with libcamera, I am essentially wondering if
this situation will resolve itself in the near future, or if the
Raspberry Pi fork of libcamera and the upstream version will continue to
exist in parallel like this indefinitely.

Is there anything I could help with to make this upstreaming of the
Raspberry Pi 5 support happen?

Best,
Christian

[1]
https://lore.kernel.org/all/20240531080707.34568-1-jacopo.mondi@ideasonboard.com/


Am 13.01.25 um 10:24 schrieb Naushir Patuck:
> Hi,
>
> A long time coming... this series add support for Raspberry Pi 5 (PiSP) to
> upstream libcamera. The IPA and pipeline handler code have been taken mostly
> unchanged from the Raspberry Pi downstream libcamera tree:
> https://github.com/raspberrypi/libcamera. Support for IMX500 and CNNs are not
> available in this series since we have yet to attempt to upstream the kernel
> changes.
>
> IMPORTANT NOTE
> --------------
> The Pi 5 pipeline handler in this commit is NOT COMPATIBLE with the Raspberry Pi
> kernel drivers just yet! Instead, you must use the mainline kernel upstream
> drivers with this pipeline handler. When futher upstreaming development for
> embedded data is completed, RPi will backport the upstream kernel drives to our
> tree and this pipeline handler will then begin to work with both upstream and
> downstream kernel trees.
>
> Thanks,
> Naush
>
> Naushir Patuck (4):
>    meson: Add libpisp.wrap
>    ipa: rpi: Add support for Raspberry Pi 5
>    pipeline: rpi: Add new stream flags for PiSP
>    pipeline: rpi: Add support for Raspberry Pi 5
>
>   Documentation/guides/pipeline-handler.rst     |    2 +-
>   include/libcamera/ipa/meson.build             |    1 +
>   include/libcamera/meson.build                 |    1 +
>   meson.build                                   |    1 +
>   meson_options.txt                             |    4 +-
>   src/ipa/rpi/pisp/data/imx219.json             | 1187 +++++++++
>   src/ipa/rpi/pisp/data/imx219_noir.json        | 1112 ++++++++
>   src/ipa/rpi/pisp/data/imx290.json             |  341 +++
>   src/ipa/rpi/pisp/data/imx296.json             | 1194 +++++++++
>   src/ipa/rpi/pisp/data/imx296_16mm.json        | 1247 +++++++++
>   src/ipa/rpi/pisp/data/imx296_6mm.json         | 1247 +++++++++
>   src/ipa/rpi/pisp/data/imx296_mono.json        |  960 +++++++
>   src/ipa/rpi/pisp/data/imx378.json             |  634 +++++
>   src/ipa/rpi/pisp/data/imx415.json             | 1159 ++++++++
>   src/ipa/rpi/pisp/data/imx462.json             |  342 +++
>   src/ipa/rpi/pisp/data/imx477.json             | 1186 +++++++++
>   src/ipa/rpi/pisp/data/imx477_16mm.json        | 1240 +++++++++
>   src/ipa/rpi/pisp/data/imx477_6mm.json         | 1240 +++++++++
>   src/ipa/rpi/pisp/data/imx477_noir.json        | 1148 ++++++++
>   src/ipa/rpi/pisp/data/imx477_scientific.json  |  546 ++++
>   src/ipa/rpi/pisp/data/imx519.json             |  634 +++++
>   src/ipa/rpi/pisp/data/imx708.json             | 1270 +++++++++
>   src/ipa/rpi/pisp/data/imx708_noir.json        | 1233 +++++++++
>   src/ipa/rpi/pisp/data/imx708_wide.json        | 1293 +++++++++
>   src/ipa/rpi/pisp/data/imx708_wide_noir.json   | 1148 ++++++++
>   src/ipa/rpi/pisp/data/meson.build             |   29 +
>   src/ipa/rpi/pisp/data/ov5647.json             | 1186 +++++++++
>   src/ipa/rpi/pisp/data/ov5647_noir.json        | 1121 ++++++++
>   src/ipa/rpi/pisp/data/ov64a40.json            | 1133 ++++++++
>   src/ipa/rpi/pisp/data/ov9281_mono.json        |  215 ++
>   src/ipa/rpi/pisp/data/se327m12.json           |  639 +++++
>   src/ipa/rpi/pisp/data/uncalibrated.json       |  135 +
>   src/ipa/rpi/pisp/meson.build                  |   49 +
>   src/ipa/rpi/pisp/pisp.cpp                     | 1068 ++++++++
>   src/libcamera/control_ids_rpi.yaml            |   13 +
>   .../pipeline/rpi/common/rpi_stream.h          |   10 +
>   .../pipeline/rpi/pisp/data/example.yaml       |   45 +
>   .../pipeline/rpi/pisp/data/meson.build        |    8 +
>   src/libcamera/pipeline/rpi/pisp/meson.build   |   12 +
>   src/libcamera/pipeline/rpi/pisp/pisp.cpp      | 2372 +++++++++++++++++
>   subprojects/.gitignore                        |    1 +
>   subprojects/libpisp.wrap                      |    6 +
>   42 files changed, 28410 insertions(+), 2 deletions(-)
>   create mode 100644 src/ipa/rpi/pisp/data/imx219.json
>   create mode 100644 src/ipa/rpi/pisp/data/imx219_noir.json
>   create mode 100644 src/ipa/rpi/pisp/data/imx290.json
>   create mode 100644 src/ipa/rpi/pisp/data/imx296.json
>   create mode 100644 src/ipa/rpi/pisp/data/imx296_16mm.json
>   create mode 100644 src/ipa/rpi/pisp/data/imx296_6mm.json
>   create mode 100644 src/ipa/rpi/pisp/data/imx296_mono.json
>   create mode 100644 src/ipa/rpi/pisp/data/imx378.json
>   create mode 100755 src/ipa/rpi/pisp/data/imx415.json
>   create mode 100644 src/ipa/rpi/pisp/data/imx462.json
>   create mode 100644 src/ipa/rpi/pisp/data/imx477.json
>   create mode 100644 src/ipa/rpi/pisp/data/imx477_16mm.json
>   create mode 100644 src/ipa/rpi/pisp/data/imx477_6mm.json
>   create mode 100644 src/ipa/rpi/pisp/data/imx477_noir.json
>   create mode 100644 src/ipa/rpi/pisp/data/imx477_scientific.json
>   create mode 100644 src/ipa/rpi/pisp/data/imx519.json
>   create mode 100644 src/ipa/rpi/pisp/data/imx708.json
>   create mode 100644 src/ipa/rpi/pisp/data/imx708_noir.json
>   create mode 100644 src/ipa/rpi/pisp/data/imx708_wide.json
>   create mode 100644 src/ipa/rpi/pisp/data/imx708_wide_noir.json
>   create mode 100644 src/ipa/rpi/pisp/data/meson.build
>   create mode 100644 src/ipa/rpi/pisp/data/ov5647.json
>   create mode 100644 src/ipa/rpi/pisp/data/ov5647_noir.json
>   create mode 100755 src/ipa/rpi/pisp/data/ov64a40.json
>   create mode 100644 src/ipa/rpi/pisp/data/ov9281_mono.json
>   create mode 100644 src/ipa/rpi/pisp/data/se327m12.json
>   create mode 100644 src/ipa/rpi/pisp/data/uncalibrated.json
>   create mode 100644 src/ipa/rpi/pisp/meson.build
>   create mode 100644 src/ipa/rpi/pisp/pisp.cpp
>   create mode 100644 src/libcamera/pipeline/rpi/pisp/data/example.yaml
>   create mode 100644 src/libcamera/pipeline/rpi/pisp/data/meson.build
>   create mode 100644 src/libcamera/pipeline/rpi/pisp/meson.build
>   create mode 100644 src/libcamera/pipeline/rpi/pisp/pisp.cpp
>   create mode 100644 subprojects/libpisp.wrap
>



More information about the libcamera-devel mailing list