Re: Intel SOF firmware

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dne 03. 03. 20 v 12:44 Hans de Goede napsal(a):
Hi,

On 3/3/20 11:48 AM, Dan Horák wrote:
On Tue, 3 Mar 2020 11:27:57 +0100
Hans de Goede <hdegoede@xxxxxxxxxx> wrote:

Hi,

On 3/3/20 9:11 AM, Jaroslav Kysela wrote:
Dne 02. 03. 20 v 12:02 Hans de Goede napsal(a):
Hi Jaroslav,

Thank you for starting a discussion about this, we really need
to get this sorted out soon-ish as a lot of users are reporting
broken audio with 5.5.x because of the missing SOF firmware.

On 3/2/20 11:10 AM, Jaroslav Kysela wrote:
Hi all,

      I would like you to introduce the situation with the Intel's
Sound Open Firmware. We have finally a stable version of the
driver in the Fedora kernel (5.5.7), so it's time to discuss this.

      The issue is that Intel need to deal with three type of
files. The first file is the firmware (binary instruction blob
which is executed in DSP, suffix .ri). The second file is the
topology and configuration for the ALSA's ASoC core / SOF driver
(suffix .tplg). Those both files are loaded via the firmware load
calls from the kernel. The names for those files are determined
using the hardware probe. The .ri files are platform (Broadwell
etc.) dependent. The topology files might differ more (HDMI
configuration, codec configuration etc.).

      The third file is not loaded via the firmware call, it
contains the debug strings (SOF firmware is stripped, thus only
pointers are returned through the trace interface and there's
utility sof-logger which converts those pointers back to the
strings using those .ldc files). It's just for the debugging
purposes and for the normal operation, it is not used at all.

      The last piece is the signing. Intel has a secure mechanism
which is activated in DSP, so DSP doesn't accept the unsigned
firmware, if the hardware vendor wants (and they usually wants
this security). So, although, the SOF firmware is being developed
as open source, we cannot do own modifications, because we don't
have the signing keys. Of course, there is open hardware where
the public keys are used (like UP^2 or some Chromebooks). But
Lenovo, Dell and others requires firmware signed by Intel.

      Personally, I'm trying to convince Intel's people to release
the stable signed firmware files to linux-firmware, but so far, I
have not been successful so far. My opinion is that the tested
and verified binary topology files should belong to the
linux-firmware, too. Intel do not agree on this (distributions
should compile the topology binaries from the sources).
Unfortunately, the topology sources are not distributed
separately from the SOF firmware, so we need to deal with the
whole SOF tree.

      For Fedora, I'm packaging the SOF firmware, topology and
debug (.ldc) bundle
(https://www.alsa-project.org/files/pub/misc/sof/) via the
alsa-firmware package for now (this package is not installed by
default which causes another bug iteration 'install this package'
for users). Note that this is not in the upstream alsa-firmware
tar ball. It's an extra thing.

      The last activity from the Intel is the sof-bin repository:
https://github.com/thesofproject/sof-bin/tree/stable-v1.4.2 .
It's probably a good step forward to have this reference, but
it's outside the linux-firmware repository. I don't know if they
want to mirror this to linux-firmware.

      The objective: Fedora/RHEL users should have sound available
after the initial installation, thus we need to find the way to
add those files to linux-firmware or install alsa-firmware
package by default. Maybe, the best way will be to create another
alsa-sof-bin package for the Intel's sof-bin releases and install
it by default like iwl*-firmware files for their WiFi chips.

Since the SOF firmware files have a separate upstream I think
that creating a separate alsa-sof-bin (*) package is probably
the best approach, at least for now since upstream does not
seem to be moving to adding the signed DSP firmware files to
linux-firmware anytime soon.

As for where the topology files go, inside alsa-sof-firmware or
inside alsa-ucm, both need to be installed for things to work
anyways, so I will leave that up to you.

The topology files are bundled in sof-bin, too. Intel does some CI
tests with them, so I'd prefer to keep them with the DSP firmware
files.

If you can create such a package I would be happy to do the package
review ASAP and then we can add a Requires for this to the
kernel-core pkgs so that users will get it automatically when they
install the next kernel update.

The review request:
https://bugzilla.redhat.com/show_bug.cgi?id=1809303

Ok, I've just reviewed it, a few minor remarks but I've approved it
regardless so you can move forward with this.

If accepted, I should probably add 'Conflicts: alsa-firmware <=
1.2.1-5' line and release alsa-firmware 1.2.1-6 without the SOF
firmware files.

Right, that is a good point and then put both in a combined update in
bodhi and once that combined update has hit updates-testing, add a
Requires for alsa-sof-firmware to the kernel-core package.

could be this Requires more fine-graded? I guess the firmware is useful
on Intel systems only (mainly?).

Yes you are right, it should probably be something like the following:

%ifarch x86_64
Requires: alsa-sof-firmware
%endif

(untested)

Does anyone know, how the iwl*-firmware files are installed? I cannot find any dependency in kernel nor linux-firmware rpms. It's similar.

Also, SOF may be used on other architectures like i.MX ARM platforms. I can create packages with the different firmware files for specific architectures instead one noarch package.

					Jaroslav


Regards,

Hans



--
Jaroslav Kysela <jkysela@xxxxxxxxxx>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.
_______________________________________________
kernel mailing list -- kernel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to kernel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/kernel@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora General Discussion]     [Older Fedora Users Archive]     [Fedora Advisory Board]     [Fedora Security]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Mentors]     [Fedora Package Announce]     [Fedora Package Review]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Coolkey]     [Yum Users]     [Tux]     [Yosemite News]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [USB]     [Asterisk PBX]

  Powered by Linux