Re: Intel SOF firmware

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

 



On Tue, Mar 3, 2020 at 12:27 PM Jaroslav Kysela <jkysela@xxxxxxxxxx> wrote:
>
> 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.

It's done via comps.

> 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.

I would split them up, I would probably still leave them as no-arch.

I was going to ask for the arm NXP firmwares but I hadn't got as far
as investigating which SoCs they would be needed for.

Peter
_______________________________________________
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