Skip to content

Commit 098eb01

Browse files
committed
X-LINUX-ISP v5.0.0
Signed-off-by: Vincent ABRIOU <vincent.abriou@st.com>
1 parent 4ad17e8 commit 098eb01

58 files changed

Lines changed: 16023 additions & 1 deletion

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CODE_OF_CONDUCT.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
In the interest of fostering an open and welcoming environment, we as
6+
contributors and maintainers pledge to making participation in our project and
7+
our community a harassment-free experience for everyone, regardless of age, body
8+
size, disability, ethnicity, sex characteristics, gender identity and expression,
9+
level of experience, education, socio-economic status, nationality, personal
10+
appearance, race, religion, or sexual identity and orientation.
11+
12+
## Our Standards
13+
14+
Examples of behavior that contributes to creating a positive environment
15+
include:
16+
17+
* Using welcoming and inclusive language
18+
* Being respectful of differing viewpoints and experiences
19+
* Gracefully accepting constructive criticism
20+
* Focusing on what is best for the community
21+
* Showing empathy towards other community members
22+
23+
Examples of unacceptable behavior by participants include:
24+
25+
* The use of sexualized language or imagery and unwelcome sexual attention or
26+
advances
27+
* Trolling, insulting/derogatory comments, and personal or political attacks
28+
* Public or private harassment
29+
* Publishing others' private information, such as a physical or electronic
30+
address, without explicit permission
31+
* Other conduct which could reasonably be considered inappropriate in a
32+
professional setting
33+
34+
## Our Responsibilities
35+
36+
Project maintainers are responsible for clarifying the standards of acceptable
37+
behavior and are expected to take appropriate and fair corrective action in
38+
response to any instances of unacceptable behavior.
39+
40+
Project maintainers have the right and responsibility to remove, edit, or
41+
reject comments, commits, code, wiki edits, issues, and other contributions
42+
that are not aligned to this Code of Conduct, or to ban temporarily or
43+
permanently any contributor for other behaviors that they deem inappropriate,
44+
threatening, offensive, or harmful.
45+
46+
## Scope
47+
48+
This Code of Conduct applies both within project spaces and in public spaces
49+
when an individual is representing the project or its community. Examples of
50+
representing a project or community include using an official project e-mail
51+
address, posting via an official social media account, or acting as an appointed
52+
representative at an online or offline event. Representation of a project may be
53+
further defined and clarified by project maintainers.
54+
55+
## Enforcement
56+
57+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
58+
reported by contacting the project team via this [link](https://www.st.com/content/st_com/en/contact-us.html).
59+
All complaints will be reviewed and investigated and will result in a response that
60+
is deemed necessary and appropriate to the circumstances. The project team is
61+
obligated to maintain confidentiality with regard to the reporter of an incident.
62+
Further details of specific enforcement policies may be posted separately.
63+
64+
Project maintainers who do not follow or enforce the Code of Conduct in good
65+
faith may face temporary or permanent repercussions as determined by other
66+
members of the project's leadership.
67+
68+
## Attribution
69+
70+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 1.4,
71+
available [here](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html).
72+
73+
For answers to common questions about this code of conduct, refer to the FAQ section [here](https://www.contributor-covenant.org/faq).

CONTRIBUTING.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Contributing guide
2+
3+
This document serves as a checklist before contributing to this repository.
4+
It includes links to read up on if topics are unclear to you.
5+
6+
This guide mainly focuses on the proper use of Git.
7+
8+
## 1. Issues
9+
10+
__Before opening an issue__
11+
12+
Please check the following boxes before posting an issue:
13+
- [ ] `Make sure you are using the latest commit (major releases are tagged, but corrections are available as new commits).`
14+
- [ ] `Make sure your issue is a question/feedback/suggestions **related to** the software provided in this repository.` Otherwise, it should be submitted to the ST Community under the MPU topic [page](https://community.st.com/s/topic/0TO0X0000003u2AWAQ/stm32-mpus).
15+
- [ ] `Make sure your issue is not already reported/fixed on GitHub or discussed on a previous issue.` Do not forget to browse into the **closed** issues.
16+
17+
__Posting the issue__
18+
19+
When you have checked the previous boxes, create a new issue from the **Issues** tab of this repository.
20+
21+
## 2. Pull Requests
22+
23+
STMicrolectronics is happy to receive contributions from the community, based on an initial Contributor License Agreement (CLA) procedure.
24+
25+
* If you are an individual writing original source code and you are sure **you own the intellectual property**, then you need to sign an Individual CLA (https://cla.st.com).
26+
* If you work for a company that wants also to allow you to contribute with your work, your company needs to provide a Corporate CLA (https://cla.st.com) mentioning your GitHub account name.
27+
* If you are not sure that a CLA (Individual or Corporate) has been signed for your GitHub account you can check here (https://cla.st.com).
28+
29+
Please note that:
30+
* The Corporate CLA will always take precedence over the Individual CLA.
31+
* One CLA submission is sufficient, for any project proposed by STMicroelectronics.
32+
33+
__How to proceed__
34+
35+
* We recommend to fork the project in your GitHub account to further develop your contribution. Please use the latest commit version.
36+
* Please, submit one Pull Request for one new feature or proposal. This will ease the analysis and final merge if accepted.
37+
38+
__Note__
39+
40+
Merge will not be done directly in GitHub but it will need first to follow internal integration process before public deliver in a standard release. The Pull request will stay open until it is merged and delivered.

LICENSE.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Software Build Of Materials (SBOM)
2+
| Components | Copyright | License
3+
|:--------- |:---------- |:-------
4+
| libcamera_core | Red Hat Inc., Raspberry Pi Ltd., Junio C Hamano, Google Inc., Ideas on Board Oy, Umang Jain, Utkarsh Tiwari, NXP, The Chromium Authors, The Android Open Source Project, Vedant Paranjape, Andrei Konovalov, The Sphinx team, Arducam Technology co., Ltd., Paul Elder, Linaro, Rockchip Electronics Co., Ltd., Martijn Braam, Morgan McGuire. All rights reserved., Free Software Foundation, Inc., Guennadi Liakhovetski, Tomi Valkeinen, Collabora Ltd., Jacopo Mondi, Laurent Pinchart, The Linux Foundation and its contributors, Dennis Bonke, Nokia Corporation, Sebastian Fricke, Intel Corporation, Kaaira Gupta, STMicroelectronics | [LGPL-2.1-or-later](https://opensource.org/license/lgpl-2-1)
5+
| libcamera_ipa | Red Hat Inc., Raspberry Pi Ltd., Junio C Hamano, Google Inc., Ideas on Board Oy, Umang Jain, Utkarsh Tiwari, NXP, The Chromium Authors, The Android Open Source Project, Vedant Paranjape, Andrei Konovalov, The Sphinx team, Arducam Technology co., Ltd., Paul Elder, Linaro, Rockchip Electronics Co., Ltd., Martijn Braam, Morgan McGuire. All rights reserved., Free Software Foundation, Inc., Guennadi Liakhovetski, Tomi Valkeinen, Collabora Ltd., Jacopo Mondi, Laurent Pinchart, The Linux Foundation and its contributors, Dennis Bonke, Nokia Corporation, Sebastian Fricke, Intel Corporation, Kaaira Gupta, STMicroelectronics | [LGPL-2.1-or-later](https://opensource.org/license/lgpl-2-1)
6+
| libcamera_gst | Red Hat Inc., Raspberry Pi Ltd., Junio C Hamano, Google Inc., Ideas on Board Oy, Umang Jain, Utkarsh Tiwari, NXP, The Chromium Authors, The Android Open Source Project, Vedant Paranjape, Andrei Konovalov, The Sphinx team, Arducam Technology co., Ltd., Paul Elder, Linaro, Rockchip Electronics Co., Ltd., Martijn Braam, Morgan McGuire. All rights reserved., Free Software Foundation, Inc., Guennadi Liakhovetski, Tomi Valkeinen, Collabora Ltd., Jacopo Mondi, Laurent Pinchart, The Linux Foundation and its contributors, Dennis Bonke, Nokia Corporation, Sebastian Fricke, Intel Corporation, Kaaira Gupta, STMicroelectronics | [LGPL-2.1-or-later](https://opensource.org/license/lgpl-2-1)
7+
| libcamera_apps | Red Hat Inc., Raspberry Pi Ltd., Junio C Hamano, Google Inc., Ideas on Board Oy, Umang Jain, Utkarsh Tiwari, NXP, The Chromium Authors, The Android Open Source Project, Vedant Paranjape, Andrei Konovalov, The Sphinx team, Arducam Technology co., Ltd., Paul Elder, Linaro, Rockchip Electronics Co., Ltd., Martijn Braam, Morgan McGuire. All rights reserved., Free Software Foundation, Inc., Guennadi Liakhovetski, Tomi Valkeinen, Collabora Ltd., Jacopo Mondi, Laurent Pinchart, The Linux Foundation and its contributors, Dennis Bonke, Nokia Corporation, Sebastian Fricke, Intel Corporation, Kaaira Gupta, STMicroelectronics | [GPL-2.0-or-later](https://opensource.org/license/gpl-2-0)
8+
| x-linux-isp applications | STMicroelectronics | [SLA0044](https://www.st.com/SLA0044)
9+
| x-linux-isp stm32 isp IQTune application | STMicroelectronics | [SLA0044](https://www.st.com/SLA0044)
10+
| evision | LACROIX - Impulse - STMicroelectronics | [SLA0044](https://www.st.com/SLA0044)

README.md

Lines changed: 82 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,82 @@
1-
# meta-st-x-linux-isp
1+
<p align="center">
2+
<img width="720" src="https://raw.githubusercontent.com/STMicroelectronics/meta-st-x-linux-isp/master/x-linux-isp-logo.png">
3+
</p>
4+
5+
X-LINUX-ISP version: v5.0.0
6+
7+
X-LINUX-ISP is a free of charge open-source software package providing ISP
8+
(Image Signal Processing) image quality software targeting the STM32MP25x series
9+
that embed an ISP camera pipeline called.<br>
10+
It brings advanced image quality capabilities that allow developers working with
11+
OpenSTLinux to **create ISP-based application very easily.**
12+
* **Pre-integrated** into Linux distribution based on ST environment
13+
* include **libcamera** with the support of the DCMIPP ISP Image Processing
14+
Algorithm (IPA) integrating **Auto Exposure (AE)** and **Auto White Balance
15+
(AWB)** and all ISP controls
16+
* include **libcamerasrc gstreamer plugin** supporting DCMIPP ISP properties
17+
* include **Sensor tuning application** (running on the target) that allows to
18+
interact with the **STM32 ISP IQTune desktop application** executed on the
19+
host computer (connected through USB) allowing to access ISP configuration and
20+
perform a sensor tuning procedure
21+
* include **Simple ISP preview application example** taking advantage of
22+
libcamera and libcamerasrc gstreamer plugin for easy prototyping.
23+
* Delivered under **GitHub as a Yocto meta-layer**
24+
25+
# meta-st-x-linux-isp
26+
X-LINUX-ISP OpenEmbedded meta layer to be integrated into OpenSTLinux
27+
distribution. It contains recipes for ISP image quality software, tools and
28+
application examples for STM32MP25 series.
29+
30+
## Compatibility
31+
The X-LINUX-ISP OpenSTLinux Expansion Package v5.0.0 is compatible with the
32+
Yocto Project™ build system Mickledore. It is validated over the OpenSTLinux
33+
Distribution v5.1.x on STM32MP25x series.
34+
35+
## Versioning
36+
The major versioning of the X-LINUX-ISP OpenSTLinux Expansion Package is aligned
37+
on the major versioning of the OpenSTLinux Distribution. This prevents painful
38+
backward compatibility attempts and makes dependencies straightforward.<br>
39+
The X-LINUX-ISP generic versioning v**x**.**y**.**z** is built as follows:
40+
* **x**: major version matching the OpenSTLinux Distribution major version.
41+
Each new major version is incompatible with previous OpenSTLinux Distribution
42+
versions.
43+
* **y**: minor version, which is changed when new functionalities are added to
44+
the X-LINUX-ISP OpenSTLinux Expansion Package in a backward compatible manner.
45+
* **z**: patch version to introduce bug fixes. A patch version is implemented in
46+
a backward compatible manner.
47+
48+
## Available frameworks and tools within the meta-layer
49+
[X-LINUX-ISP v5.0.0 expansion package](https://wiki.st.com/stm32mpu/wiki/Category:X-LINUX-ISP_expansion_package):
50+
* ISP software:
51+
* libcamera with the support of the DCMIPP ISP Image Processing Algorithm
52+
(IPA) integrating Auto Exposure (AE) and Auto White Balance (AWB) and all
53+
ISP controls
54+
* libcamerasrc gstreamer plugin supporting DCMIPP ISP properties
55+
56+
* Application examples:
57+
* Simple ISP preview :
58+
* Python™ example taking advantage of libcamera and libcamerasrc gstreamer
59+
plugin for easy prototyping
60+
61+
* Utilities:
62+
* X-LINUX-ISP tool suite provides tools for software information and ISP
63+
packages management.
64+
* STM32 ISP IQTune application (running on the target) used to tune the ISP
65+
by providing communication services between the host and the device
66+
67+
* Host tools:
68+
* STM32 ISP IQTune desktop application that provide services to tune the ISP
69+
present in STM32 devices
70+
71+
## Further information on how to install and how to use X-LINUX-ISP Starter package
72+
<https://wiki.st.com/stm32mpu/wiki/X-LINUX-ISP_Starter_package>
73+
74+
## Further information on how to install and how to use X-LINUX-ISP Distribution package
75+
<https://wiki.st.com/stm32mpu/wiki/X-LINUX-ISP_Distribution_package>
76+
77+
## Application samples
78+
<https://wiki.st.com/stm32mpu/wiki/Category:ISP_-_Application_examples>
79+
80+
## STM32 ISP tuning procedure
81+
<https://wiki.st.com/stm32mpu/wiki/How_to_tune_ISP_using_the_STM32_ISP_IQTune>
82+

SECURITY.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Report potential product security vulnerabilities
2+
ST places a high priority on security, and our Product Security Incident Response Team (PSIRT) is committed to rapidly addressing potential security vulnerabilities affecting our products. PSIRT's long history and vast experience in security allows ST to perform clear analyses and provide appropriate guidance on mitigations and solutions when applicable.
3+
If you wish to report potential security vulnerabilities regarding our products, **please do not report them through public GitHub issues.** Instead, we encourage you to report them to our ST PSIRT following the process described at: **https://www.st.com/content/st_com/en/security/report-vulnerabilities.html**
4+
5+
### IMPORTANT - READ CAREFULLY:
6+
STMicroelectronics International N.V., on behalf of itself, its affiliates and subsidiaries, (collectively “ST”) takes all potential security vulnerability reports or other related communications (“Report(s)”) seriously. In order to review Your Report (the terms “You” and “Yours” include your employer, and all affiliates, subsidiaries and related persons or entities) and take actions as deemed appropriate, ST requires that we have the rights and Your permission to do so.
7+
As such, by submitting Your Report to ST, You agree that You have the right to do so, and You grant to ST the rights to use the Report for purposes related to security vulnerability analysis, testing, correction, patching, reporting and any other related purpose or function.
8+
By submitting Your Report, You agree that ST’s [Privacy Policy](https://www.st.com/content/st_com/en/common/privacy-portal.html) applies to all related communications.

conf/layer.conf

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# We have a conf and classes directory, add to BBPATH
2+
BBPATH .= ":${LAYERDIR}"
3+
4+
# Add recipes to to BBFILES
5+
BBFILES += " ${LAYERDIR}/recipes-*/*.bb "
6+
BBFILES += " ${LAYERDIR}/recipes-*/*/*.bb "
7+
BBFILES += " ${LAYERDIR}/recipes-*/*/*.bbappend* "
8+
9+
BBFILE_COLLECTIONS += "x-linux-isp"
10+
BBFILE_PATTERN_x-linux-isp := "^${LAYERDIR}/"
11+
BBFILE_PRIORITY_x-linux-isp = "5"
12+
13+
# This should only be incremented on significant changes that will
14+
# cause compatibility issues with other layers
15+
LAYERVERSION_x-linux-isp = "1"
16+
LAYERSERIES_COMPAT_x-linux-isp = "mickledore"
17+
18+
LAYERDEPENDS_x-linux-isp = "stm-st-stm32mp"
19+
LAYERDEPENDS_x-linux-isp += "st-openstlinux"
20+
21+
ST_OSTL_COMPATIBILITY_VERSION_x-linux-isp = "5.1"
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Copyright (C) 2024, STMicroelectronics - All Rights Reserved
2+
# Released under the MIT license (see COPYING.MIT for the terms)
3+
4+
SUMMARY = "The goal is to enable USB gadget ACM composite configuration"
5+
6+
LICENSE = "MIT"
7+
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
8+
9+
PV = "1.0"
10+
11+
SRC_URI = " file://stm32_usbotg_acm_config.sh \
12+
"
13+
14+
S = "${WORKDIR}/git"
15+
16+
do_install() {
17+
install -d ${D}${base_sbindir}
18+
install -m 0755 ${WORKDIR}/stm32_usbotg_acm_config.sh ${D}${base_sbindir}
19+
}
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
#!/bin/sh
2+
#
3+
# Copyright (c) 2024 STMicroelectronics.
4+
# All rights reserved.
5+
#
6+
# This software is licensed under MIT License terms that can be found here:
7+
#
8+
# https://opensource.org/license/mit
9+
10+
# This script configures USB Gadget configfs to use USB OTG as a USB serial
11+
# gadget
12+
13+
configfs="/sys/kernel/config/usb_gadget"
14+
g=g1
15+
c=c.1
16+
d="${configfs}/${g}"
17+
func_acm=acm.GS0
18+
func_uvc=uvc.0
19+
20+
VENDOR_ID="0x483"
21+
PRODUCT_ID="0x5740"
22+
23+
do_start() {
24+
if [ ! -d ${configfs} ]; then
25+
modprobe libcomposite
26+
if [ ! -d ${configfs} ]; then
27+
exit 1
28+
fi
29+
fi
30+
31+
if [ -d ${d} ]; then
32+
exit 0
33+
fi
34+
35+
udc=$(ls -1 /sys/class/udc/)
36+
if [ -z $udc ]; then
37+
echo "No UDC driver registered"
38+
exit 1
39+
fi
40+
41+
mkdir ${d}
42+
echo ${VENDOR_ID} > ${d}/idVendor
43+
echo ${PRODUCT_ID} > ${d}/idProduct
44+
45+
# Both interface may not operate independently
46+
echo 0xEF > ${d}/bDeviceClass
47+
echo 0x02 > ${d}/bDeviceSubClass
48+
echo 0x01 > ${d}/bDeviceProtocol
49+
50+
mkdir -p ${d}/strings/0x409
51+
tr -d '\0' < /proc/device-tree/serial-number > ${d}/strings/0x409/serialnumber
52+
echo "STMicroelectronics" > ${d}/strings/0x409/manufacturer
53+
echo "STM32MP25" > ${d}/strings/0x409/product
54+
55+
# Config
56+
mkdir -p ${d}/configs/${c}
57+
mkdir -p ${d}/configs/${c}/strings/0x409
58+
echo "CDC ACM" > ${d}/configs/${c}/strings/0x409/configuration
59+
60+
# Create ACM function
61+
mkdir -p ${d}/functions/${func_acm}
62+
ln -s ${d}/functions/${func_acm} ${d}/configs/${c}
63+
64+
# Bind USB Device Controller
65+
echo ${udc} > ${d}/UDC
66+
}
67+
68+
do_stop() {
69+
echo "" > ${d}/UDC
70+
71+
# Delete ACM gadget
72+
[ -L ${d}/configs/${c}/${func_acm} ] && rm ${d}/configs/${c}/${func_acm}
73+
[ -d ${d}/functions/${func_acm} ] && rmdir ${d}/functions/${func_acm}
74+
75+
[ -d ${d}/configs/${c}/strings/0x409 ] && rmdir ${d}/configs/${c}/strings/0x409
76+
[ -d ${d}/configs/${c} ] && rmdir ${d}/configs/${c}
77+
[ -d ${d}/strings/0x409/ ] && rmdir ${d}/strings/0x409/
78+
[ -d ${d} ] && rmdir ${d}
79+
}
80+
81+
case $1 in
82+
start)
83+
echo "Start usb acm gadget"
84+
do_start
85+
;;
86+
stop)
87+
echo "Stop usb acm gadget"
88+
do_stop
89+
;;
90+
restart)
91+
echo "Stop usb acm gadget"
92+
do_stop
93+
sleep 1
94+
echo "Start usb acm gadget"
95+
do_start
96+
;;
97+
*)
98+
echo "Usage: $0 (stop | start | restart)"
99+
;;
100+
esac

0 commit comments

Comments
 (0)