Skip to content

fh8626v100: move to the fullhan-fh8626 4.19 kernel - #2803

Open
difanz wants to merge 7 commits into
OpenIPC:masterfrom
difanz:fullhan/fh8626-4.19
Open

difanz wants to merge 7 commits into
OpenIPC:masterfrom
difanz:fullhan/fh8626-4.19

Conversation

@difanz

@difanz difanz commented Nov 9, 2026 •

Copy link
Copy Markdown

Problem

fh8626v100_lite builds the FH8852V200 4.9 kernel with an FH8626 config. That kernel has no FH8626V100 media, audio or ARC drivers, so the image does not work as a camera.

This moves the board to OpenIPC/linux's fullhan-fh8626 4.19 kernel (OpenIPC/linux#187, merged), whose media, audio and coprocessor drivers are in-tree V4L2, ALSA and remoteproc drivers, with the board DTB appended to the uImage. Commits:

  • fh8626-arc-firmware: a minimal firmware for the ARC coprocessor, which the fh8626-arc remoteproc driver loads from /lib/firmware/fh8626-arc.elf. It is ARC600 assembly built from source: a resource table with two 32-entry vrings, the rpmsg-arc-echo name service and an echo endpoint at address 1024. arc-binutils builds the arc-elf32 assembler and linker from the binutils sources Buildroot already uses.
  • rda5995-openipc: the driver becomes a choice. rdawlan (default) is the existing build, unchanged, so no board that selects the package changes. rdawlan-rda5995 builds rda-wlan's 4.19 USB driver, which takes its firmware from /lib/firmware, and installs only the station images it loads (the AP images would cost 160 KB of rootfs). The rda-wlan is another seperate PR.
  • fh8626-3ad: automatic exposure and white balance, a daemon that uses the kernel's ISP statistics and controls (local source, Apache-2.0 or GPL-2.0). This is basically "our version" of the vendor daemon.
  • fullhan-osdrv-fh8626: load_fullhan, which loads the modules the devices ask for (mdev does not do that for devices present at boot) and raises a 4.9 SDK osmem to all of the DDR once. There is no vendor SDK, so nothing goes in files/ and make toolchain bundles none.
  • divinus: with that driver package selected, divinus is built with its V4L2/ALSA backend (Add V4L2 support divinus#72) and gets a start script, as it is the only streamer on the image. No other board changes.
  • fh8626v100: the board itself. It selects all of the above and openipc-failsafe, because the kernel reserves U-Boot's boot counter. The kernel config leaves out ext4, swap, VT/PS2 input, IPsec transforms and signed regdb support, and builds cfg80211 and the V4L2 core as modules. The board also gets its own toolchain, toolchain.fullhan-fh8626 (added to toolchain.yml): the borrowed FH8852V200 one has 4.9 kernel headers, which predate UAPI the 4.19 drivers use, such as the HEVC pixel format. This was fh8626v100: build its own toolchain, with 4.19 headers #2804, folded in here.

Depends on OpenIPC/rda-wlan#1 and OpenIPC/divinus#72, and on OpenIPC/divinus#77 so that sysupgrade finds divinus feeding the watchdog. DIVINUS_VERSION is HEAD, so divinus needs no bump; once rda-wlan#1 merges, this PR gets one more commit that moves RDA5995_OPENIPC_VERSION to the merge commit. After that, toolchain.yml needs one run from this branch so that toolchain.fullhan-fh8626 exists before CI builds the board.

Hardware tested on

FH8626V100 (GC1054 sensor, RDA5995 USB Wi-Fi 1e04:8888, 8 MB NOR), OpenIPC U-Boot. The image was built from this branch, with a locally built toolchain.fullhan-fh8626 (GCC 13.3, musl, 4.19 headers) and the divinus PRs above applied.

Evidence

Image sizes (the uImage was 2025 KB with the full 4.19 defconfig, before the config trim):

- uImage: [1678KB/2048KB]
- rootfs.squashfs: [2876KB/5120KB]

After boot (uptime, boot counter word, wlan0 address, unresolved module symbols, /dev/snd, number of /dev/video* nodes):

 10:31:11 up 1 min,  load average: 0.68, 0.25, 0.09
0x00000000
    inet 10.20.34.131/23 brd 10.20.35.255 scope global wlan0
0
controlC0
pcmC0D0c
pcmC0D0p
timer
15

Wi-Fi driver, and the 3A daemon:

rdawfmac              122880  0
cfg80211              241664  1 rdawfmac
  517 root      0:06 /usr/sbin/fh8626-3ad -b -P /var/run/fh8626-3ad.pid -A auto -W auto -f off -m whitepoint -p normal -F 12.5

ARC coprocessor, started through sysfs:

remoteproc remoteproc0: powering up soc:remoteproc
remoteproc remoteproc0: Booting fw image fh8626-arc.elf, size 21612
virtio_rpmsg_bus virtio0: rpmsg host is online
remoteproc remoteproc0: registered virtio0 (type 7)
virtio_rpmsg_bus virtio0: creating channel rpmsg-arc-echo addr 0x400
remoteproc remoteproc0: remote processor soc:remoteproc is now up

RTSP from divinus, 10 s:

m=video 0 RTP/AVP 96
a=rtpmap:96 H264/90000
10.0s packets {0: 948, 1: 200} bytes {0: 1200426, 1: 7200}

With audio enabled in divinus.yaml:

m=video 0 RTP/AVP 96
a=rtpmap:96 H264/90000
m=audio 0 RTP/AVP 14
a=rtpmap:14 MPA/90000
10.0s packets {2: 418, 3: 418, 0: 999, 1: 199} bytes {2: 167200, 3: 15048, 0: 1280261, 1: 7164}

sysupgrade from this image to itself:

/dev/watchdog: pid 522 feeds it; taken over if that dies

After each upgrade the camera reboots, Wi-Fi (WPA-PSK), DHCP and SSH come back on their own, and S99bootok clears the counter.

@openipc-ai openipc-ai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, this is a solid piece of work: the ARC firmware is real source, the 3A tables are documented measurements, and the module loading fits the existing S70vendor → load_fullhan -i path. ci-matrix.py --self-test, test_shell_parse.sh and test_strip_shell_comments.sh pass on the branch. It can't merge in its current state, though.

Blocking

  1. The board does not build. RDA5995_OPENIPC_VERSION is still 06fd4b61252788bc46a66c88fd2773493ab5dd2a, and that tree has no rdawlan-rda5995/ (only rdawlan, include, Kconfig, Makefile, README.md). The directory arrives with OpenIPC/rda-wlan#1, which is still open. Once it merges, pin the merge commit as a full SHA.
  2. No streamer until OpenIPC/divinus#72 lands. DIVINUS_VERSION = HEAD builds divinus master, where -DDIVINUS_V4L2 does nothing. The image would start divinus with no backend for this SoC. Please wait for #72 to merge.
  3. This branch has never been built on its own. The evidence image includes #2804, and #2804 says the 4.9 headers lack UAPI the 4.19 drivers use (the HEVC pixel format). With the borrowed fh8852v200 toolchain, the build will probably break as soon as #72 is in. Please fold #2804 into this PR rather than merging the two separately.
  4. The description says this stays a draft until rda-wlan#1 merges. Leaving it open for review is fine, but it can't merge before then.

Smaller

  • .github/scripts/ci-matrix.py: please drop the "gdbserver-lite" reflow in NOT_BUILT. Any edit to that file builds the full matrix, and with #2804 folded in, the reflow is the only change left there.
  • fh8626-3ad.mk has no FH8626_3AD_LICENSE_FILES. fullhan-osdrv-fh8626 declares MIT, but neither the package nor load_fullhan carries a license file or header.
  • S80fh8626-3ad accepts gc1054, gc2053, jxf37, sp2306 and sp1405, but isp-tuning.c holds GC1054 tuning only. Either limit the list to what is tuned, or say in the README what the other sensors get.
  • load_fullhan: one line on why total_mem=64M holds for every FH8626V100 (the DDR is built into the chip package) would save the next reader the question.
  • arc-binutils follows Buildroot's BINUTILS_VERSION (2.40 today). That is fine, but a note in the .mk would help, because it changes whenever Buildroot is bumped.

Order of operations: rda-wlan#1 and divinus#72 merge → bump the rda5995 pin → fold in #2804 → run toolchain.yml from the branch so that toolchain.fullhan-fh8626 exists → then CI is approved. CI is held for workflow approval, and because the PR touches ci-matrix.py and divinus.mk it builds every board, so it will be approved once the steps above are done.

The fh8626-arc remoteproc driver in OpenIPC/linux's fullhan-fh8626
kernel loads /lib/firmware/fh8626-arc.elf onto the FH8626V100's ARC.
This is the minimal firmware for it, in ARC600 assembly: a resource
table with two 32-entry vrings, the rpmsg-arc-echo name service and an
echo endpoint at address 1024. It checks every descriptor against the
shared DMA pool and reports a bad one as a crash, on doorbell bit 1,
which it keeps set until the driver resets the core.

arc-binutils builds the arc-elf32 assembler and linker for it from the
binutils sources Buildroot already uses.
rda-wlan carries a second driver, rdawlan-rda5995, for Linux 4.19. It
takes its firmware from /lib/firmware instead of compiling it in. Make
the driver a choice. The default stays the existing rdawlan build at
its current pin, so no board that selects the package changes. The new
choice installs only the station images the driver loads.
The FH8626V100 ISP driver in the kernel exports per-frame zone
statistics and its tuning controls through its V4L2 subdevice, but
nothing closes the loop: without it the sensor stays at its initial
exposure and the ISP at unity white balance. The daemon meters the
statistics and drives the sensor's exposure and gain and the ISP's
white balance, noise reduction and black level, next to whichever
application streams from the capture device.
On the 4.19 kernel the FH8626V100 media, audio and remaining SoC
drivers are modules bound from the device tree, and mdev does not load
modules for devices present at boot. Provide the family's load_fullhan:
it loads the modules the devices ask for. The device tree also reserves
the media and ARC memory, so the kernel needs all of the DDR; an
environment saved with the 4.9 SDK kernel's osmem 29M is raised once,
and the camera rebooted.
The FH8626V100 media and audio drivers are V4L2 and ALSA drivers in the
kernel, which divinus streams from when built with DIVINUS_V4L2. Build
it that way with alsa-lib when the board's driver package is selected,
and install a start script, since divinus is the only streamer there.
The board built the FH8852V200 4.9 kernel with an FH8626 config. That
kernel has no FH8626V100 media, audio or ARC drivers, so the image had
no streamer, and the only wireless firmware it carried was for a dongle
the kernel has no driver for.

Build OpenIPC/linux's fullhan-fh8626 kernel, whose drivers are V4L2,
ALSA and remoteproc drivers in the tree, with its device tree appended
to the uImage. Select divinus as the streamer, the 3A daemon, the ARC
firmware, the driver loader and the RDA5995 driver for 4.19. The kernel
reserves U-Boot's boot counter, so select openipc-failsafe as well,
which clears it once the camera is up.

The FH8852V200 toolchain's 4.9 kernel headers predate UAPI these
drivers use, such as the HEVC pixel format, so add the board to the
toolchain workflow, which publishes toolchain.fullhan-fh8626 with 4.19
headers, and build against that.

The kernel config is the kernel's fh8626_defconfig less what a camera
has no use for: ext4, swap, the VT console and PS/2 input, IPsec
transforms and signed regulatory database support. cfg80211 and the
V4L2 core are modules, loaded with the drivers that need them. That
takes the uImage from 2025K to 1678K of its 2048K.
@difanz
difanz force-pushed the fullhan/fh8626-4.19 branch from b71a1de to be3f7f6 Compare November 9, 2026 11:14
@qodo-free-for-open-source-projects

Copy link
Copy Markdown

PR Summary by Qodo

Move FH8626V100 to the Fullhan 4.19 camera kernel

✨ Enhancement ⚙️ Configuration changes 📝 Documentation 🕐 40+ Minutes

Grey Divider

AI Description

• Switch FH8626V100 to its dedicated 4.19 kernel, enabling in-tree camera, audio, and ARC drivers.
• Add exposure, white-balance, coprocessor firmware, Wi-Fi, and streaming packages to make the image
 usable as a camera.
• Preserve the existing RDA5995 driver default for other boards.
Diagram

graph TD
  Board["FH8626V100 image"] --> Kernel["Fullhan 4.19 kernel"] --> Loader["Module loader"] --> ThreeA["3A daemon"]
  Loader --> Divinus["Divinus streamer"]
  Kernel --> WiFi["RDA5995 driver"]
  Kernel --> Remoteproc["ARC remoteproc"] --> Firmware["ARC echo firmware"]
Loading
High-Level Assessment

The dedicated in-tree-driver kernel is the appropriate foundation: the prior 4.9 kernel lacks this board’s camera and audio drivers, and no usable vendor media SDK is available. Keeping the older RDA5995 build as the choice default limits the migration’s impact on other boards. Review the stated upstream rda-wlan and Divinus dependencies before merging.

Files changed (33) +8104 / -10

Enhancement (15) +4214 / -0
divinus.mkEnable the FH8626 V4L2 and ALSA streaming build +7/-0

Enable the FH8626 V4L2 and ALSA streaming build

• Adds the board-specific Divinus build options, ALSA dependency, and SysV startup-script installation.

general/package/divinus/divinus.mk

S95divinusStart Divinus as the board’s streamer +33/-0

Start Divinus as the board’s streamer

• Adds start, stop, and restart handling for the Divinus service.

general/package/divinus/files/S95divinus

fh8626-3ad.mkBuild and install the local 3A daemon +31/-0

Build and install the local 3A daemon

• Compiles against the selected kernel’s ISP UAPI and installs the binary, defaults, and SysV service.

general/package/fh8626-3ad/fh8626-3ad.mk

S80fh8626-3adStart 3A after ISP and sensor discovery +116/-0

Start 3A after ISP and sensor discovery

• Waits for the expected subdevices before launching the daemon and provides guarded PID-aware service controls.

general/package/fh8626-3ad/files/S80fh8626-3ad

ae-controller.cImplement frame-aware automatic exposure +653/-0

Implement frame-aware automatic exposure

• Meters ISP grid statistics and allocates integration and gains with history-based delay compensation, hysteresis, highlight protection, anti-flicker, and slow-shutter behavior.

general/package/fh8626-3ad/src/ae-controller.c

ae-controller.hDefine exposure configuration and controller state +132/-0

Define exposure configuration and controller state

• Declares sensor control ranges, timing and gain history, metering state, and the exposure-controller interface.

general/package/fh8626-3ad/src/ae-controller.h

awb-controller.cImplement statistics-driven white balance +357/-0

Implement statistics-driven white balance

• Estimates illuminant chroma from usable grid cells and edges, constrains it to calibrated reference points, and smooths ISP gain changes.

general/package/fh8626-3ad/src/awb-controller.c

awb-controller.hDefine white-balance modes and tracking state +62/-0

Define white-balance modes and tracking state

• Declares calibrated locus points, gain bounds, estimator state, and the white-balance-controller interface.

general/package/fh8626-3ad/src/awb-controller.h

fh8626-3ad.cConnect ISP events, sensor controls, and 3A loops +1657/-0

Connect ISP events, sensor controls, and 3A loops

• Discovers subdevices, reads frame statistics and control events, coordinates AE/AWB and ISP tuning, and provides daemon lifecycle and CLI handling.

general/package/fh8626-3ad/src/fh8626-3ad.c

fh8626-3ad.hDefine shared grid and fixed-point helpers +110/-0

Define shared grid and fixed-point helpers

• Adds common daemon declarations, logging and clamp utilities, and the reduced 16×16 ISP statistics representation.

general/package/fh8626-3ad/src/fh8626-3ad.h

isp-tuning.cSchedule GC1054 ISP tuning by gain and illuminant +547/-0

Schedule GC1054 ISP tuning by gain and illuminant

• Adds calibrated black-level, noise-reduction, color-correction, saturation, sharpening, and tone-curve policies that follow exposure and white-balance state.

general/package/fh8626-3ad/src/isp-tuning.c

isp-tuning.hDeclare optional ISP tuning blocks and state +51/-0

Declare optional ISP tuning blocks and state

• Defines tuning-control availability, cached parameters, and the gain-, exposure-, white-balance-, and motion-driven update interface.

general/package/fh8626-3ad/src/isp-tuning.h

firmware.SImplement the ARC RPMsg echo endpoint +417/-0

Implement the ARC RPMsg echo endpoint

• Adds ARC600 startup, resource-table negotiation, split-virtqueue processing, name-service announcement, and echo handling. Validates shared-memory descriptors and reports fatal faults to the host.

general/package/fh8626-arc-firmware/src/firmware.S

load_fullhanLoad boot-present devices and correct DDR allocation +29/-0

Load boot-present devices and correct DDR allocation

• Raises a legacy U-Boot osmem setting to 64 MB once and reboots if needed. Loads modules matching modaliases of devices already present at boot.

general/package/fullhan-osdrv-fh8626/load_fullhan

rda5995-openipc.mkBuild the selected RDA5995 module and station firmware +12/-0

Build the selected RDA5995 module and station firmware

• Selects the 4.19 driver subdirectory when requested and installs only its station firmware; the original module build remains the fallback.

general/package/rda5995-openipc/rda5995-openipc.mk

Documentation (3) +300 / -2
ci-matrix.pyClarify FH8626 kernel and toolchain pairing +4/-2

Clarify FH8626 kernel and toolchain pairing

• Corrects the CI matrix comment to distinguish FH8626’s dedicated kernel from its shared FH8852V200 toolchain. Also reformats a package-list line.

.github/scripts/ci-matrix.py

README.mdDocument the 3A algorithms and operating boundaries +275/-0

Document the 3A algorithms and operating boundaries

• Explains statistics, control timing, exposure, white balance, motion-aware tuning, CLI options, and calibration limits.

general/package/fh8626-3ad/src/README.md

LICENSELicense the ARC firmware source +21/-0

License the ARC firmware source

• Adds the MIT license covering the new firmware.

general/package/fh8626-arc-firmware/src/LICENSE

Other (15) +3590 / -8
fh8626v100.generic.configAdd FH8626V100 Linux 4.19 kernel configuration +3389/-0

Add FH8626V100 Linux 4.19 kernel configuration

• Configures the dedicated SoC, appended board DTB, modular V4L2 and audio drivers, ARC support, and a trimmed feature set for the flash-constrained image.

br-ext-chip-fullhan/board/fh8626/fh8626v100.generic.config

fh8626v100_lite_defconfigMove the lite image onto the FH8626 kernel and camera stack +15/-6

Move the lite image onto the FH8626 kernel and camera stack

• Changes the SoC family and uImage load address while retaining the compatible FH8852V200 toolchain. Selects Divinus, 3A, ARC firmware, driver loading, failsafe, and the new RDA5995 driver choice.

br-ext-chip-fullhan/configs/fh8626v100_lite_defconfig

Config.inExpose new FH8626 packages to Buildroot +4/-0

Expose new FH8626 packages to Buildroot

• Includes the ARC toolchain, 3A daemon, ARC firmware, and FH8626 driver-loader package configurations.

general/package/Config.in

Config.inDeclare a host-only ARC binutils package +8/-0

Declare a host-only ARC binutils package

• Defines the bare-metal assembler and linker dependency used to build the coprocessor firmware.

general/package/arc-binutils/Config.in

arc-binutils.mkBuild ARC assembler and linker from Buildroot binutils sources +37/-0

Build ARC assembler and linker from Buildroot binutils sources

• Reuses Buildroot’s binutils source and version, building and installing only the host ARC gas and ld tools.

general/package/arc-binutils/arc-binutils.mk

Config.inSelect ALSA for the FH8626 Divinus backend +1/-0

Select ALSA for the FH8626 Divinus backend

• Adds an ALSA library selection when the FH8626 driver package is enabled.

general/package/divinus/Config.in

Config.inDeclare the FH8626 ISP control daemon +8/-0

Declare the FH8626 ISP control daemon

• Makes the Linux-dependent automatic exposure and white-balance daemon selectable.

general/package/fh8626-3ad/Config.in

fh8626-3ad.defaultSet board defaults for automatic ISP control +10/-0

Set board defaults for automatic ISP control

• Enables automatic exposure and white balance and sets a 12.5 fps slow-shutter floor.

general/package/fh8626-3ad/files/fh8626-3ad.default

Config.inMake ARC echo firmware selectable +10/-0

Make ARC echo firmware selectable

• Selects the host ARC toolchain and describes the firmware loaded by the kernel remoteproc driver.

general/package/fh8626-arc-firmware/Config.in

fh8626-arc-firmware.mkBuild and install ARC firmware from source +22/-0

Build and install ARC firmware from source

• Invokes the host ARC assembler and linker and installs the resulting ELF under /lib/firmware.

general/package/fh8626-arc-firmware/fh8626-arc-firmware.mk

MakefileAssemble and link the ARC600 firmware +17/-0

Assemble and link the ARC600 firmware

• Defines reproducible ELF build rules using configurable ARC assembler and linker paths.

general/package/fh8626-arc-firmware/src/Makefile

firmware.ldPlace ARC firmware sections in private memory +21/-0

Place ARC firmware sections in private memory

• Defines the ARC ELF entry point and fixed locations for vectors, code, resource table, diagnostics, and data.

general/package/fh8626-arc-firmware/src/firmware.ld

Config.inDeclare the FH8626 boot-time driver package +8/-0

Declare the FH8626 boot-time driver package

• Exposes the module-loading and memory-environment helper for the board.

general/package/fullhan-osdrv-fh8626/Config.in

fullhan-osdrv-fh8626.mkPackage the FH8626 loader without a vendor SDK +18/-0

Package the FH8626 loader without a vendor SDK

• Installs load_fullhan while deliberately shipping no vendor driver files or SDK payload.

general/package/fullhan-osdrv-fh8626/fullhan-osdrv-fh8626.mk

Config.inOffer a Linux 4.19 RDA5995 driver choice +22/-2

Offer a Linux 4.19 RDA5995 driver choice

• Adds the firmware-loading rdawlan-rda5995 variant while retaining the existing embedded-firmware driver as the default.

general/package/rda5995-openipc/Config.in

@difanz

difanz commented Nov 9, 2026

Copy link
Copy Markdown
Author

Thanks. Updated:

  • fh8626v100: build its own toolchain, with 4.19 headers #2804: folded into the board commit, so .github/ now only has the toolchain.yml line and the FH865x comment in ci-matrix.py (it no longer applies to FH8626V100).
  • gdbserver-lite reflow: dropped.
  • Licenses: FH8626_3AD_LICENSE_FILES points at fh8626-3ad.c, which carries the SPDX header; load_fullhan now has an MIT SPDX header and copyright line.
  • Sensors: limited to gc1054 in S80fh8626-3ad, the daemon and the README, since the tuning tables are measured on it and it is the only one tried on hardware.
  • load_fullhan: says why 64M holds for every FH8626V100 (the DDR is in the package).
  • arc-binutils: notes that its version follows Buildroot's binutils.

Rebuilt and flashed: 3A starts on GC1054, RTSP streams, and sysupgrade finds divinus on /dev/watchdog (with divinus#77).

Order as you wrote: rda-wlan#1 and divinus#72 (and #77) merge, then the rda5995 pin bump, then a toolchain.yml run from this branch.

@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (0) 📎 Requirement gaps (0) 🎨 UX issues (0) 🔗 Cross-repo conflicts (0) 📜 Skill insights (0)

Grey Divider


Remediation recommended

1. Some supported sensors block exposure 🐞 Bug ≡ Correctness
Description
S80fh8626-3ad recognizes each sensor name only when it is followed by a space, while the daemon
also accepts an exact name. If a supported sensor subdevice publishes a name such as gc1054
without a bus-address suffix, the startup check times out after ten seconds and never launches the
exposure and white-balance daemon.
Code

general/package/fh8626-3ad/files/S80fh8626-3ad[50]

+                    gc1054\ *|gc2053\ *|jxf37\ *|sp2306\ *|sp1405\ *) sensor_ready=1 ;;
Evidence
The shell pattern requires a space after each listed name and exits on timeout, whereas daemon
discovery explicitly accepts the end of a name as well as a following space.

general/package/fh8626-3ad/files/S80fh8626-3ad[45-59]
general/package/fh8626-3ad/src/fh8626-3ad.c[176-181]
general/package/fh8626-3ad/src/fh8626-3ad.c[256-290]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The init script rejects exact supported sensor subdevice names that the daemon accepts, preventing the daemon from starting.
## Fix Focus Areas
- general/package/fh8626-3ad/files/S80fh8626-3ad[45-59]
- general/package/fh8626-3ad/src/fh8626-3ad.c[176-181]
## Recommended Fix
Match both exact names and names followed by a space in the init script, keeping its supported-sensor list consistent with daemon discovery.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Tip of the day
💡 Did you know, you can move or hide resolved findings to focus on what still needs action

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

@difanz
difanz requested a review from openipc-ai November 9, 2026 11:25
@openipc-ai

Copy link
Copy Markdown
Collaborator

Thanks. be3f7f6f3 covers everything from the review: #2804 folded in, the reflow dropped, license files added, the sensor list limited to GC1054, and the comments in load_fullhan and arc-binutils.mk. CI is approved and running.

Remaining blockers before this can merge:

  1. rdawlan-rda5995: add the RDA5995 USB driver for 4.19 kernels rda-wlan#1 is not merged. RDA5995_OPENIPC_VERSION (06fd4b61252788bc46a66c88fd2773493ab5dd2a) still has no rdawlan-rda5995/, so the board does not build. Once it merges, move the pin to the merge commit (full SHA).
  2. Add V4L2 support divinus#72 is not merged. With DIVINUS_VERSION = HEAD, -DDIVINUS_V4L2 does nothing until it lands, and the image has no streamer.
  3. toolchain/toolchain.fullhan-fh8626.tgz does not exist yet. toolchain.yml has to run from this branch before the board build can fetch it.

Until 1 and 3 are done, expect fh8626v100_lite to fail in this CI run. The rest of the matrix is still worth reading for the divinus.mk change. The Request changes review stays until these are cleared; I'll re-review then.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants