Skip to content

[BUG] [ICL] SOF codec#0 probe fails on Acer Switch SF314-57G #1807

Closed

Description

@perexg

Describe the bug
The user cannot load signed firmware v1.3 on Acer Swift SF314-57G:

Manufacturer:      Acer
Product Name:      Swift SF314-57G
Product Version:   V1.07
Firmware Version:  V1.07
Board Vendor:      IL
Board Name:        Floris_IL

https://bugzilla.redhat.com/show_bug.cgi?id=1772498#c16

Discussion:

What is the expected behaviour, if the DSP has own (vendor) authentication key? Basically, how we can determine the right firmware for the given DSP in the generic Linux distribution? We need detect this automatically somehow. Can DSP give any hints to the driver before the fw upload?

Activity

  1. plbossart commented on Nov 22, 2019

    @plbossart
    Member

    @perexg thanks for bringing our attention on this

    The executive summary is:

    All platforms use the firmware signed with the production Intel key.
    The exceptions are: Up2 and GLK+ chromebooks which are signed with the community key.
    I am not aware of OEMs signing the base firmware, only extensions which are currently not supported by SOF.

    we cannot query the key used, that's unfortunate but that's the reality. When the firmware is provided through linux-firmware, I'll add a quirk for these exceptions to point to the firmware signed with the community key.

    I have been able to use the signed firmware on Acer devices since 1.3

    In this case, I would think it's a kernel issue (either a missing patch or a bad commit from Intel).

    can you share the git tree used?

  2. perexg commented on Nov 22, 2019

    @perexg
    Author

    Yep, its 5.4-rc8 with extra backports from 5.5: https://github.com/perexg/linux/tree/perex/fedora-test

  3. plbossart commented on Nov 22, 2019

    @plbossart
    Member

    Could you try removing all S0ix patches, e.g. starting with c13c962

    That series seems to introduce problems and there is on-going work to fix it.

    Edit: actually trying plain vanilla 5.4-rc8 would be even better, just to make sure there's a reference to bisect from.

  4. perexg commented on Nov 22, 2019

    @perexg
    Author

    Per this kernel log, I don't think that fw is active, it appears like that the upload fails. The PM is not active (I think) in this case.

    [    5.793409] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
    [    5.793702] sof-audio-pci 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
    [    5.793718] sof-audio-pci 0000:00:1f.3: enabling device (0000 -> 0002)
    [    5.794122] sof-audio-pci 0000:00:1f.3: warning: No matching ASoC machine driver found
    [    5.794148] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
    [    5.794416] sof-audio-pci 0000:00:1f.3: use msi interrupt mode
    [    5.794775] sof-audio-pci 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
    [    5.799105] sof-audio-pci 0000:00:1f.3: hda codecs found, mask 5
    [    5.799109] sof-audio-pci 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
    [    6.804322] sof-audio-pci 0000:00:1f.3: error: codec thesofproject/sof#2 probe error, ret: -5
    [    6.808731] sof-audio-pci 0000:00:1f.3: unexpected ipc interrupt raised!
    [    6.808735] sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
    [    9.877648] sof-audio-pci 0000:00:1f.3: error: cl_copy_fw: timeout HDA_DSP_SRAM_REG_ROM_STATUS read
    [    9.878144] sof-audio-pci 0000:00:1f.3: error: load fw failed ret: -110
    [    9.878161] sof-audio-pci 0000:00:1f.3: error: status = 0x0000002c panic = 0x00000000
    [    9.878166] sof-audio-pci 0000:00:1f.3: error: failed to reset DSP
    [    9.878167] sof-audio-pci 0000:00:1f.3: error: failed to boot DSP firmware -110
    [    9.878167] sof-audio-pci 0000:00:1f.3: error: sof_probe_work failed err: -110
    
  5. plbossart commented on Nov 22, 2019

    @plbossart
    Member

    The first error appears related to the HDaudio codec (or hdmi), can you check what happens if you select the FORCE_NOCODEC mode and use a nocodec topology? That would remove dependencies on the codecs and check if the firmware load works or not.
    sof-cnl-nocodec.tplg.gz

  6. plbossart commented on Nov 23, 2019

    @plbossart
    Member

    @perexg another point to verify is the PCI ID of the device. We recently split CFL, CNL and CML firmwares instead of using sof-cnl.ri across the board due to additional firmware manifest/signature differences. If you are using the CNL file on CML, it's likely not going to work.

    IIRC correctly CFL and CNL are still identical, but CML has a different manifest. @jajanusz please correct me if I am wrong.

  7. perexg commented on Nov 23, 2019

    @perexg
    Author

    The complete alsa-info output is in the Fedora bugzilla (URL provided in the bug description):

    00:1f.3 0401: 8086:34c8 (rev 30)
    	Subsystem: 1025:1407
    
  8. lgirdwood commented on Nov 23, 2019

    @lgirdwood
    Member

    @perexg I've tagged v1.4.1, @lbetlej can you sign.

  9. plbossart commented on Nov 25, 2019

    @plbossart
    Member

    @perexg @lgirdwood PCI ID 34c8 is IceLake so that's a new one.

  10. changed the title [-][BUG] Cannot load firmware on Acer Switch SF314-57G[/-] [+][BUG] [ICL] Cannot load firmware on Acer Switch SF314-57G[/+] on Nov 25, 2019
  11. plbossart commented on Nov 25, 2019

    @plbossart
    Member

    @perexg can you please with the file attached (to be copied as /lib/firmware/intel/sof/sof-icl.ri)
    I'd like to verify this is solved with the upcoming release, and if not to figure out the issue.

    sof-icl-signed.ri.gz

  12. perexg commented on Nov 25, 2019

    @perexg
    Author

    I am just a "proxy" for this from the Fedora's bugzilla. I redirected the user here, so hopefully, he will test this.

  13. lgirdwood commented on Nov 25, 2019

    @lgirdwood
    Member

    new signed binaries now on v1.4.1 release page.

  14. containmentbreach commented on Nov 25, 2019

    @containmentbreach

    Original reporter here. Unfortunately new firmware makes no difference at all

  15. lbetlej commented on Dec 5, 2019

    @lbetlej

    @omg The updated binaries (CNL and ICL) for SOF 1.4.1 release are available for download. Could you test them and report if issue can be closed ? Thank you.

  16. 86 remaining items

  17. samkline commented on Jun 2, 2020

    @samkline

    Sadly, no luck -- I tried the Hdmi.conf from upstream, reverted my default.pa change, removed my ~/.config/pulse, and rebooted to be safe, but I get dummy output and no input.

    Pulseaudio debug logging is available here: https://gist.github.com/samkline/2aff0c71db990e09ad4bdf083666fc9b (lines 115-118 seem potentially relevant)

    BTW, this machine does have an Intel GPU:

    $ sudo lshw -C display
      *-display                 
           description: VGA compatible controller
           product: Iris Plus Graphics G7
           vendor: Intel Corporation
           physical id: 2
           bus info: pci@0000:00:02.0
           logical name: /dev/fb0
           version: 07
           width: 64 bits
           clock: 33MHz
           capabilities: pciexpress msi pm vga_controller bus_master cap_list rom fb
           configuration: depth=32 driver=i915 latency=0 mode=1920x1080 visual=truecolor xres=1920 yres=1080
           resources: iomemory:600-5ff iomemory:400-3ff irq:163 memory:601c000000-601cffffff memory:4000000000-400fffffff ioport:3000(size=64) memory:c0000-dffff
    
  18. samkline commented on Jun 2, 2020

    @samkline

    Oh, good news: I just installed pulseaudio-git (13.99.1-31-g1fe37), and it now works with the upstream Hdmi.conf without any changes to default.pa.

  19. kv2019i commented on Jun 2, 2020

    @kv2019i
    Collaborator

    Patch to fix the original bug has been merged upstream now, so I will proceed and close the bug:
    https://mailman.alsa-project.org/pipermail/alsa-devel/2020-May/168417.html

    Thank you @ltune , @RiderALT , @perexg and @samkline for reporting and helping with the debug. If there are new issues, please open a new bug and let's track any new issues separately.

  20. adam-fu commented on Jun 3, 2020

    @adam-fu

    That's good news. It may be good to add here which kernel version will contain the patch, once it is released, so I can load the corresponding Ubuntu kernel and have the internal microphone working🙂

  21. kv2019i commented on Jun 3, 2020

    @kv2019i
    Collaborator

    @adam-fu wrote:

    That's good news. It may be good to add here which kernel version will contain the patch, once it is released, so I can load the corresponding Ubuntu kernel and have the internal microphone working🙂

    It's currently queued for 5.8, so will be in 5.8.0. It may get backported to older stable kernels, and/or Ubuntu kernel package, so you probably don't have to wait that long.

  22. RiderALT commented on Jun 3, 2020

    @RiderALT

    I already apply this patch (commit 89d73cc) for my local build of the kernel 5.7.0 and it works great on my Acer SF314-57 without any additional setting (like kernel module options or pulseaudio settings).

    The only problem I discovered with 5.7.0 on this machine is 3 HDMI audio outputs in pulseaudio but one HDMI and one thunderbolt output in hardware.i attached Alsa-info output to save a history.
    alsa-info.txt.gz

  23. kv2019i commented on Jun 3, 2020

    @kv2019i
    Collaborator

    @RiderALT wrote:

    I already apply this patch (commit 89d73cc) for my local build of the kernel 5.7.0 and it works great on my Acer SF314-57 without any additional setting (like kernel module options or pulseaudio

    That's good to hear, thanks for testing!

    The only problem I discovered with 5.7.0 on this machine is 3 HDMI audio outputs in pulseaudio but one HDMI and one thunderbolt output in hardware.i attached Alsa-info output to save a history.

    This is to be expected. This hardware supports up to 3 concurrent HDMI/DP audio streams. On most systems like this, you can connect upto 3 monitors to the USB-C/thunderbolt port (using DP-MST), plus one to the HDMI connector. Pulseaudio should show which of the three ALSA HDMI PCMs has a connected monitor (in your alsa-info it shows no monitors w/ audio capability connected).

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

Metadata

Metadata

Assignees

Labels

HDAApplies to HD-Audio bus for codec connectionICLApplies to Icelake platformbugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions