Right now we have all firmware packages under firmware/*.
This is problematic for mainly two reasons:
- It's not immediately clear which firmware packages we need to keep
when forking a new stable branch. (Where we delete testing devices
at the moment...) We might end up deleting firmware packages that
are actually used by one of the devices in community.
- When backporting devices to the stable we cannot just cherry-pick
the commit that moved the device to community (since it does not
contain the firmware package). Instead we need to cherry-pick
earlier commits as well, which may touch a lot of deleted files
in the testing directory.
Let's make this consistent by also placing the firmware packages in
the device/* directory. We already have the common firmware- prefix
to distinguish them from device/kernel packages, which are already
both under the device/* directory.
The WCNSS firmware from DB410c is also useful for other devices
that can run unsigned firmware (e.g. bq-paella) because it is newer
and reportedly has some WiFi/BT coexistence problems fixed.
To allow easy switching betwen the original firmware from the manufacturer
(firmware-bq-picmt-wcnss) and the newer firmware (firmware-qcom-db410c-wcnss)
we make both packages provide a virtual "firmware-qcom-msm8916-wcnss"
package. The newer version from firmware-qcom-db410c gets a higher
provider_priority so it is installed by default.
However, the user can choose to do "apk add firmware-bq-picmt-wcnss"
to get the original firmware from the manufacturer instead.
The DB410c is a SBC with APQ8016 SoC. It runs on mainline without
any patches. This port makes use of the existing linux-postmarketos-qcom-msm8916
kernel package that is used for other mainline MSM8916 devices.
Tested functionality:
- USB Network, USB Host (e.g. an USB keyboard)
- Flashing (Fastboot)
- Display (HDMI)
- WiFi/BT
- GPU
- Audio (HDMI)
- FDE
Not tested:
- GPS
Note: The firmware package is called firmware-qcom-db410c (instead of arrow)
because the firmware is provided directly by Qualcomm, not Arrow.