Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync with the internal repository #31

Merged
merged 1 commit into from
Jan 14, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# SPDX-License-Identifier: GPL-2.0-only

root = true

[{*.{awk,c,dts,dtsi,dtso,h,mk,s,S},Kconfig,Makefile,Makefile.*}]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = tab
indent_size = 8

[*.{json,py,rs}]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4

# this must be below the general *.py to overwrite it
[tools/{perf,power,rcu,testing/kunit}/**.py,]
indent_style = tab
indent_size = 8

[*.yaml]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 2
19 changes: 19 additions & 0 deletions .github/workflows/build-drivers-hosted.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Build and install camera drivers

on:
workflow_call:
inputs:
platform:
required: false
type: string

jobs:
build-drivers:
runs-on: [self-hosted, linux, ARM64, "${{ inputs.platform }}"]
timeout-minutes: 5
steps:
- uses: actions/checkout@v3
- name: Build deb package
run: cd ./pkg/ && ./create_deb_pkg.sh
- name: Install deb package and build drivers with DKMS
run: yes Y | sudo dpkg -i *.deb
52 changes: 52 additions & 0 deletions .github/workflows/camera-hotplug-hosted.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Hot plug cameras

on:
workflow_call:
inputs:
platform:
required: false
type: string
dt-overlay-options:
required: true
type: string

jobs:
camera-hotplug:
runs-on: [self-hosted, linux, ARM64, "${{ inputs.platform }}"]
timeout-minutes: 3
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Build dtbocfg
run: |
cd ./scripts/common/hotplug/dtbocfg/
make
ls -l ./dtbocfg.ko
sudo rmmod dtbocfg || true
sudo insmod ./dtbocfg.ko || true
lsmod | grep dtbocfg
- name: Hotplug
run: |
./scripts/common/hotplug/camera-hotplug.sh ${{ inputs.dt-overlay-options }}

post-hotplug-checks:
runs-on: [self-hosted, linux, ARM64, "${{ inputs.platform }}"]
needs: camera-hotplug
timeout-minutes: 3
steps:
- run: |
find /proc/device-tree/ -name "*isx*" || find /proc/device-tree/ -name "*imx*"
find /proc/device-tree/ -name "*max9295*"
find /proc/device-tree/ -name "*max9296*"
find /proc/device-tree/ -name "*fpga*"
ls -l /dev/video*
ls -l /dev/v4l-*
ls -l /dev/media*
ls -l /dev/gmsl/
for media_device in $(find /dev/ -type c -name "media*"); do
media-ctl -d "${media_device}" -p
done
for video_device in $(find /dev/ -type c -name "video*"); do
v4l2-ctl -d "${video_device}" --all
done
40 changes: 40 additions & 0 deletions .github/workflows/ecu-rqx58g-a.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: ROSCube RQX-58G A C1x8

on:
pull_request:
types: [opened, reopened, synchronize]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build-drivers:
uses: ./.github/workflows/build-drivers-hosted.yaml
with:
platform: rqx58g-a

camera-hotplug:
needs: build-drivers
uses: ./.github/workflows/camera-hotplug-hosted.yaml
with:
platform: rqx58g-a
dt-overlay-options: roscube R32.6.1 -8 C1

test-8-cameras:
needs: camera-hotplug
strategy:
matrix:
dev-index: [0, 1, 2, 3, 4, 5, 6, 7]
uses: ./.github/workflows/test-v4l2-gstreamer-hosted.yaml
with:
platform: rqx58g-a
video-device: /dev/video${{ matrix.dev-index }}
gstreamer-options: 'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY'
artifact-name: gstreamer-v4l2-mjpeg-c1-${{ matrix.dev-index }}

unload-camera-drivers:
needs: test-8-cameras
uses: ./.github/workflows/unload-drivers-hosted.yaml
with:
platform: rqx58g-a
40 changes: 40 additions & 0 deletions .github/workflows/ecu-rqx58g-b.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: ROSCube RQX-58G B C2x8

on:
pull_request:
types: [opened, reopened, synchronize]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build-drivers:
uses: ./.github/workflows/build-drivers-hosted.yaml
with:
platform: rqx58g-b

camera-hotplug:
needs: build-drivers
uses: ./.github/workflows/camera-hotplug-hosted.yaml
with:
platform: rqx58g-b
dt-overlay-options: roscube R32.6.1 -8 C2

test-8-cameras:
needs: camera-hotplug
strategy:
matrix:
dev-index: [0, 1, 2, 3, 4, 5, 6, 7]
uses: ./.github/workflows/test-v4l2-gstreamer-hosted.yaml
with:
platform: rqx58g-b
video-device: /dev/video${{ matrix.dev-index }}
gstreamer-options: 'video/x-raw, width=2880, height=1860, framerate=30/1, format=UYVY'
artifact-name: gstreamer-v4l2-mjpeg-c2-${{ matrix.dev-index }}

unload-camera-drivers:
needs: test-8-cameras
uses: ./.github/workflows/unload-drivers-hosted.yaml
with:
platform: rqx58g-b
100 changes: 100 additions & 0 deletions .github/workflows/ecu-rqx58g-c.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
name: ROSCube RQX-58G C C1x2 C2x2 C1x2 C2x2

on:
pull_request:
types: [opened, reopened, synchronize]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build-drivers:
uses: ./.github/workflows/build-drivers-hosted.yaml
with:
platform: rqx58g-c

camera-hotplug:
needs: build-drivers
uses: ./.github/workflows/camera-hotplug-hosted.yaml
with:
platform: rqx58g-c
dt-overlay-options: roscube R32.6.1 -2 C1 -2 C2 -2 C1 -2 C2

test-camera-0:
needs: camera-hotplug
uses: ./.github/workflows/test-v4l2-gstreamer-hosted.yaml
with:
platform: rqx58g-c
video-device: /dev/gmsl/tier4-isx021-cam1
gstreamer-options: 'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY'
artifact-name: gstreamer-v4l2-mjpeg-c1-0

test-camera-1:
needs: camera-hotplug
uses: ./.github/workflows/test-v4l2-gstreamer-hosted.yaml
with:
platform: rqx58g-c
video-device: /dev/gmsl/tier4-isx021-cam2
gstreamer-options: 'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY'
artifact-name: gstreamer-v4l2-mjpeg-c1-1

test-camera-2:
needs: camera-hotplug
uses: ./.github/workflows/test-v4l2-gstreamer-hosted.yaml
with:
platform: rqx58g-c
video-device: /dev/gmsl/tier4-imx490-cam3
gstreamer-options: 'video/x-raw, width=2880, height=1860, framerate=30/1, format=UYVY'
artifact-name: gstreamer-v4l2-mjpeg-c2-2

test-camera-3:
needs: camera-hotplug
uses: ./.github/workflows/test-v4l2-gstreamer-hosted.yaml
with:
platform: rqx58g-c
video-device: /dev/gmsl/tier4-imx490-cam4
gstreamer-options: 'video/x-raw, width=2880, height=1860, framerate=30/1, format=UYVY'
artifact-name: gstreamer-v4l2-mjpeg-c2-3

test-camera-4:
needs: camera-hotplug
uses: ./.github/workflows/test-v4l2-gstreamer-hosted.yaml
with:
platform: rqx58g-c
video-device: /dev/gmsl/tier4-isx021-cam5
gstreamer-options: 'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY'
artifact-name: gstreamer-v4l2-mjpeg-c1-4

test-camera-5:
needs: camera-hotplug
uses: ./.github/workflows/test-v4l2-gstreamer-hosted.yaml
with:
platform: rqx58g-c
video-device: /dev/gmsl/tier4-isx021-cam6
gstreamer-options: 'video/x-raw, width=1920, height=1280, framerate=30/1, format=UYVY'
artifact-name: gstreamer-v4l2-mjpeg-c1-5

test-camera-6:
needs: camera-hotplug
uses: ./.github/workflows/test-v4l2-gstreamer-hosted.yaml
with:
platform: rqx58g-c
video-device: /dev/gmsl/tier4-imx490-cam7
gstreamer-options: 'video/x-raw, width=2880, height=1860, framerate=30/1, format=UYVY'
artifact-name: gstreamer-v4l2-mjpeg-c2-6

test-camera-7:
needs: camera-hotplug
uses: ./.github/workflows/test-v4l2-gstreamer-hosted.yaml
with:
platform: rqx58g-c
video-device: /dev/gmsl/tier4-imx490-cam8
gstreamer-options: 'video/x-raw, width=2880, height=1860, framerate=30/1, format=UYVY'
artifact-name: gstreamer-v4l2-mjpeg-c2-7

unload-camera-drivers:
needs: [test-camera-0, test-camera-1, test-camera-2, test-camera-3, test-camera-4, test-camera-5, test-camera-6, test-camera-7]
uses: ./.github/workflows/unload-drivers-hosted.yaml
with:
platform: rqx58g-c
Loading
Loading