firmware-rubikpi3 (1.9) trixie; urgency=medium

  * renesas-xhci-rebind.service: bind against the xhci-pci-renesas driver.
    On the 7.2 kernel the uPD720201 is claimed by the standalone
    xhci-pci-renesas PCI driver, so the old bind against xhci_hcd did nothing
    and the USB-A ports (2.0 and 3.0 alike, all behind this controller)
    stayed dead even with the firmware partition mounted.
  * Rebuild to supersede 1.8, which circulated in two different builds: an
    early one without var-usbfw.mount and the final one with it. A board
    installed from the early build has the renesas_usb_fw.mem symlink but no
    mount unit, and same-version rebuilds are invisible to apt, so the
    version must move for the complete package to reach every install.

 -- Pedro M. de Echanove Pasquin <pedro.echanove@liberux.net>  Thu, 23 Jul 2026 18:00:00 +0200

firmware-rubikpi3 (1.8) trixie; urgency=medium

  * firmware-rubikpi3-dsp: ship the /lib/firmware/renesas_usb_fw.mem symlink
    into /var/usbfw, until now provided by the vendor rubikpi3-firmware
    package. The Renesas uPD720201 xHCI firmware request resolves through it
    once var-usbfw.mount is up; without it renesas-xhci-rebind.service rebinds
    the controller but the firmware load fails and USB-A stays dead. This is
    the last piece the vendor package provided on the mainline kernel:
    Bluetooth's BCM4345C5.hcd comes from Debian's bluez-firmware, and the
    remaining fw_bcm43456c5_ag.bin/nvram.txt/config.txt are only read by the
    vendor bcmdhd driver, never by mainline brcmfmac, so rubikpi3-firmware can
    be dropped from the image. Conflicts/Replaces on rubikpi3-firmware make
    apt retire it on upgrade instead of failing over the shared symlink path.
  * Ship the actual redistribution license texts. LICENSE.broadcom_bcm43xx
    (Broadcom binary redistribution agreement, as published in
    RPi-Distro/firmware-nonfree) is installed with firmware-brcm43456 and
    LICENSE.qcom (the QTI license agreement, as published by Thundercomm in
    rubikpi-ai/boot-assets) with firmware-rubikpi3-dsp; both licenses require
    their text to accompany any redistribution of the blobs. debian/copyright
    is rewritten with the full texts and now covers every shipped path
    (updates/, vpu-2.0/, firmware/, modprobe.d/ were previously unlisted).
  * firmware-rubikpi3-dsp: absorb var-usbfw.mount from the vendor
    rubikpi-usb-fw package (BSD-3-Clause-Clear per its SPDX header, despite
    the deb's GPL-2+ label), fixing its invalid unenclosed copyright lines
    and the bogus WantedBy=sysinit.target.wants (the vendor deb shipped a
    static wants symlink to work around it; dh_installsystemd now enables it
    properly via local-fs.target). renesas-xhci-rebind.service and the mount
    unit it requires now live in the same package, and rubikpi-usb-fw joins
    Conflicts/Replaces and leaves the image.

 -- Pedro M. de Echanove Pasquin <pedro.echanove@liberux.net>  Wed, 22 Jul 2026 09:00:00 +0200

firmware-rubikpi3 (1.7) trixie; urgency=medium

  * firmware-rubikpi3-dsp: ship /lib/firmware/qcom/vpu-2.0 (vpu20_1v.mbn plus
    venus.mbn.zst) from the official image. The msm_vidc video codec (iris
    vendor driver) fails core init in a loop without it and video
    encode/decode is unavailable.

 -- Pedro M. de Echanove Pasquin <pedro.echanove@liberux.net>  Wed, 08 Jul 2026 08:10:00 +0200

firmware-rubikpi3 (1.6) trixie; urgency=medium

  * firmware-rubikpi3-dsp: add the
    updates/qcom/qcs6490/Thundercomm/RubikPi3/adsp.mbn symlink. The kernel's
    own RubikPi3 DTB (used when the boot image builds dtb_a/dtb_b from the
    kernel's combined-dtb.dtb) requests the ADSP firmware under that
    board-specific path.

 -- Pedro M. de Echanove Pasquin <pedro.echanove@liberux.net>  Mon, 06 Jul 2026 14:00:00 +0200

firmware-rubikpi3 (1.5) trixie; urgency=medium

  * firmware-rubikpi3-dsp: actually install renesas-xhci-rebind.service. In
    1.4 the unit was silently skipped: dh_installsystemd only picks up units
    named after the package, so a differently named unit needs an explicit
    dh_installsystemd --name override in debian/rules.

 -- Pedro M. de Echanove Pasquin <pedro.echanove@liberux.net>  Mon, 06 Jul 2026 12:00:00 +0200

firmware-rubikpi3 (1.4) trixie; urgency=medium

  * firmware-rubikpi3-dsp: ship /lib/firmware/qupv3fw.elf (QUPv3 GENI serial
    engine DMA firmware) from the official image; quiets the update-initramfs
    "Possible missing firmware" warning for the built-in qcom_geni_se driver.
  * firmware-rubikpi3-dsp: add renesas-xhci-rebind.service. The Renesas
    uPD720201 xHCI (USB3) firmware lives in the usb_fw partition mounted at
    /var/usbfw, but xhci_pci probes from the initramfs before that mount, so
    request_firmware fails and the controller is left unbound; nothing ever
    retries. Rebind 0000:01:00.0 after var-usbfw.mount when no driver is
    bound. The previous image only worked because the msm_kgsl/camera probe
    deadlock delayed the probe past the mount.
  * firmware-rubikpi3-dsp: blacklist evbug (debug module that logs every input
    event to the kernel log, flooding the console on touch input).

 -- Pedro M. de Echanove Pasquin <pedro.echanove@liberux.net>  Mon, 06 Jul 2026 10:30:00 +0200

firmware-rubikpi3 (1.3) trixie; urgency=medium

  * firmware-rubikpi3-dsp: ship the vendor split firmware tree
    (/lib/firmware/updates/qcom/{qcs6490,qcm6490}, plus qps615.bin) extracted
    from the official image. This was the missing mechanism: the device tree
    requests qcom/qcs6490/adsp.mdt, and the official image satisfies it from
    the updates/ priority path with the board-specific blob, so the ADSP boots
    at kernel probe and its charger_pd runs fine. Our image lacked updates/,
    so the request fell through to nothing (ADSP offline) or, with the 1.1
    aliases, to the generic firmware-qcom-soc blob whose charger_pd crashes in
    a loop on this board. The 1.2 "keep the ADSP offline" rationale was wrong:
    it was based on a dist-upgraded official install whose updates/ tree had
    been broken; a fresh official install has the ADSP running.
  * firmware-rubikpi3-dsp: ship the vendor modprobe policy in
    /usr/lib/modprobe.d: qcom_graphics.conf (blacklist msm_display and
    msm_kgsl, install rule that picks msm unless the proprietary adreno stack
    is installed) and blacklist_qcom_camera.conf. Without these the duplicate
    msm_display driver conflicts and msm_kgsl/camera_qcm6490 deadlock during
    probe against lt9611/dsi, so the msm DRM device never binds and there is
    no card0/HDMI.

 -- Pedro M. de Echanove Pasquin <pedro.echanove@liberux.net>  Mon, 06 Jul 2026 10:00:00 +0200

firmware-rubikpi3 (1.2) trixie; urgency=medium

  * firmware-rubikpi3-dsp: drop the .mdt.zst aliases. They made the device
    tree's adsp.mdt/cdsp.mdt firmware-name requests resolve, which booted the
    ADSP; its charger_pd firmware then crashed in a loop and hung the board.
    Confirmed over SSH on the working official image that it ships only
    .mbn.zst (no .mdt), so the ADSP fails to load (-2) and stays offline, and
    everything works (USB3 is a Renesas PCIe controller, independent of the
    ADSP). Match that: keep the .mbn.zst/.jsn present but no .mdt, so the ADSP
    stays offline.

 -- Pedro M. de Echanove Pasquin <pedro.echanove@liberux.net>  Sat, 04 Jul 2026 12:00:00 +0200

firmware-rubikpi3 (1.1) trixie; urgency=medium

  * Rename source package from firmware-brcm43456 to firmware-rubikpi3; it now
    builds the firmware-brcm43456 and firmware-rubikpi3-dsp binary packages.
  * Add firmware-rubikpi3-dsp binary package: Qualcomm QCS6490 ADSP, CDSP,
    Adreno A660 zap shader and IPA remoteproc firmware, extracted from the
    vendor board image, installed under qcom/qcm6490 with qcom/qcs6490 symlinks
    and .mdt.zst aliases so the remoteproc firmware-name requests resolve.
    Without the ADSP firmware pmic_glink and the Type-C port manager do not come
    up, so USB-C/USB3 gets no VBUS and audio is dead.

 -- Pedro M. de Echanove Pasquin <pedro.echanove@liberux.net>  Fri, 03 Jul 2026 18:15:00 +0200

firmware-brcm43456 (1.0) trixie; urgency=medium

  * Initial release: Broadcom BCM4345/43456 WiFi firmware, board NVRAM and CLM
    blob for the Thundercomm Rubik Pi 3, extracted from the vendor image.

 -- Pedro M. de Echanove Pasquin <pedro.echanove@liberux.net>  Thu, 02 Jul 2026 10:29:42 +0200
