[Sound-open-firmware] Support for Tangier SoC

Sven Schwermer sven at svenschwermer.de
Tue Oct 24 22:11:32 CEST 2017


Hi Pierre,

I did indeed compile the wrong SOFT branch. Using the 1.0-dev branch
with alsa utils & lib fresh from git, I managed to produce a valid
firmware file. I also modified the SOF Kconfig to also build the PCI
driver for Baytrail devices. I still get the memory mapping error in
addition to new errors:

# insmod snd-sof-intel-byt.ko
# insmod sof-pci-dev.ko
sof-audio-pci 0000:00:0d.0: No matching ASoC machine driver found -
using nocodec
sof-nocodec sof-nocodec: ASoC: CPU DAI sof-audio not registered
resource sanity check: requesting [mem 0xff200000-0xff3fffff], which
spans more than 0000:00:0e.0 [mem 0xff298000-0xff]
caller byt_probe+0xfb/0x1730 [snd_sof_intel_byt] mapping multiple BARs
sof-nocodec sof-nocodec: ASoC: CPU DAI sof-audio not registered
pmd_set_huge: Cannot satisfy [mem 0x05e00000-0x06000000] with a
huge-page mapping due to MTRR override.
sof-audio sof-audio:  Firmware info: version 1:0- build 0 on Oct 22
2017:17:28:10
sof-audio sof-audio: firmware boot complete
sof-audio sof-audio: error: ipc error for 0x90010000 size 0xc
sof-audio sof-audio: error: cant set params for DMA for Trace-22
sof-audio sof-audio: error: failed to initialize trace -22
sof-audio sof-audio: Direct firmware load for intel/reef-byt.tplg failed
with error -2
sof-audio sof-audio: error: tplg intel/reef-byt.tplg load failed with -2
sof-audio sof-audio: error: failed to load DSP topology -2
sof-audio sof-audio: ASoC: failed to probe component -2
sof-nocodec sof-nocodec: ASoC: failed to instantiate card -2
sof-nocodec: probe of sof-nocodec failed with error -2

# lsmod
Module                  Size  Used by    Not tainted
sof_pci_dev            16384  0
snd_sof_intel_byt      20480  1 sof_pci_dev

Any sort of hints are appreciated.

Thanks,
Sven

On 10/23/2017 06:31 AM, Pierre-Louis Bossart wrote:
> On 10/22/17 10:28 PM, Sven Schwermer wrote:
>> Hi Liam,
>>
>> today, I tried getting SOF to run on my Edison. Here's what I did:
>>
>> - compiled the topic/sof-v4.13 branch
>> - disabled everything SST related in the config
>> - enabled the following:
>>      CONFIG_SND_SOC_SOF_PCI=m
>>      CONFIG_SND_SOC_SOF_ACPI=m
>>      CONFIG_SND_SOC_SOF_NOCODEC=y
>>      CONFIG_SND_SOC_SOF=y
>>      CONFIG_SND_SOC_SOF_INTEL=y
>>      CONFIG_SND_SOC_SOF_BAYTRAIL=m
>>      CONFIG_SND_SOC_SOF_APOLLOLAKE=m
>>      CONFIG_SND_SOC_SOF_CANNONLAKE=m
> 
> For the sake of simplicity, can you avoid enabling the last two, it
> seems to generate issues that we've not looked at yet.
> 
>> - compiled the SOF from the 1.0-dev branch, following the instructions
>> in the wiki
>>
>> Upon bootup I made sure, that the fw is located at
>> /lib/firmware/intel/reef-byt.ri. Then I did the following:
>>
>> # insmod /mnt/snd-sof-intel-byt.ko
>> # insmod /mnt/sof-pci-dev.ko
>> sof_pci_dev: Unknown symbol snd_sof_cnl_ops (err 0)
>> sof_pci_dev: Unknown symbol snd_sof_bxt_ops (err 0)
>> sof_pci_dev: Unknown symbol snd_sof_cnl_ops (err 0)
>> sof_pci_dev: Unknown symbol snd_sof_bxt_ops (err 0)
>> insmod: can't insert '/mnt/sof-pci-dev.ko': unknown symbol in module, or
>> unknown parameter
>> # insmod /mnt/snd-sof-intel-apl.ko
>> # insmod /mnt/sof-pci-dev.ko
>> sof-audio-pci 0000:00:0d.0: No matching ASoC machine driver found -
>> using nocodec
>> sof-nocodec sof-nocodec: ASoC: CPU DAI sof-audio not registered
>> resource sanity check: requesting [mem 0xff200000-0xff3fffff], which
>> spans more than 0000:00:0e.0 [mem 0xff298000-0xff29bfff]
>> caller byt_probe+0xfb/0x1730 [snd_sof_intel_byt] mapping multiple BARs
>> pmd_set_huge: Cannot satisfy [mem 0x05e00000-0x06000000] with a
>> huge-page mapping due to MTRR override.
>> sof-audio sof-audio: error: invalid firmware signature
>> sof-audio sof-audio: error: invalid FW header
>> sof-audio sof-audio: error: failed to load DSP firmware -22
>> sof-nocodec sof-nocodec: ASoC: CPU DAI sof-audio not registered
> 
> there was another report of a firmware issue signature issue that we are
> looking into, can you make sure you pull the last firmware (sof.git,
> soft.git) and Liam's branch?
> 
> FYI, both Liam and I will only be able to help with delayed emails this
> week, thanks for your understanding.
> 
>>
>> There seem to be at least two issues here:
>> 1. There is a memory mapping that can not be completed.
>> 2. The firmware seems to have an invalid format.
>> 3. The sof-pci-dev module seems to require either the apollo or coffee
>> lake modules. Is that intentional or a bug?
>>
>> Does anyone know what could be wrong here?
>>
>> Sven
>>
>> On 10/18/2017 01:11 PM, Liam Girdwood wrote:
>>> Hi Sven,
>>>
>>> Btw, best to subscribe as non member posts are blocked and delayed.
>>>
>>> On Tue, 2017-10-17 at 20:49 +0200, Sven Schwermer wrote:
>>>> Hi guys,
>>>>
>>>> Thanks for your replies. I had tried a running a vanilla kernel on the
>>>> Edison. There, the sst_pci driver is probed, but the platform data is
>>>> not set and that’s basically where I got stuck because I couldn’t
>>>> figure out where that’s supposed to be set. Is that usually ACPI’s
>>>> job?
>>>>
>>>
>>> I dont think ACPI is used by the ADSP on Edison, I think it's purely a
>>> PCI device. Vanilla kernel wont work either atm, you will need my
>>> topic/sof-v4.13 branch from here :-
>>>
>>> git://git.kernel.org/pub/scm/linux/kernel/git/lrg/asoc.git
>>>
>>> Note that this branch only works on the SOF 1.0-dev branches (that are
>>> not stable) and not the stable master branch.
>>>
>>> The stable SOF master firmware branch has a different IPC ABI and only
>>> works with the topic/reef kernels (that unfortunately dont support PCI
>>> mode on Edison) :(
>>>
>>>> What exactly should happen once the mrfld_sst SFI IPC is enumerated? I
>>>> am lacking the big picture and the order of events here. Is there an
>>>> overview document somewhere available online?
>>>>
>>>
>>> There is also more than one driver upstream. The sst driver is for
>>> Intel's closed source FW. The open source FW uses different ABIs and
>>> APIs to the closed source version, currently you need to blacklist the
>>> old SST modules in order to load the SOF FW and driver (this is being
>>> fixed in upstream atm)
>>>
>>>> I guess, the nocodec mode would be fine as a start.
>>>>
>>>
>>> Yes.
>>>
>>> Liam
>>>
>>>> Thanks, Sven
>>>>
>>>>> On 16 Oct 2017, at 17:59, Pierre-Louis Bossart
>>>>> <pierre-louis.bossart at linux.intel.com> wrote:
>>>>>
>>>>> On 10/16/17 10:19 AM, Liam Girdwood wrote:
>>>>>> On Sun, 2017-10-15 at 19:51 +0200, Sven Schwermer wrote:
>>>>>>> Hi.
>>>>>>>
>>>>>>> I was wondering if the Tangier SoC (Merrifield platform) is or
>>>>>>> will be
>>>>>>> supported by SOF? I have the Intel Edison compute module in mind.
>>>>>>>
>>>>>> Yes, it _should_ work on Merrifield, but I don't have Edison HW so
>>>>>> some
>>>>>> things on the driver side might need some work.
>>>>>> The 1.0-dev branch and sof-v4.13 kernel will probably be better for
>>>>>> Edison than the stable 0.95 branch atm (mainly due to driver
>>>>>> updates),
>>>>>> but 1.0-dev is still has a few issues prior to doing an rc1 tag.
>>>>>
>>>>> The main difference with Baytrail is pci/acpi enumeration, and
>>>>> sfi/acpi for the firmware. I've been wanting to enable Tangier for
>>>>> some time but could never figure out how to add a reference to an
>>>>> audio codec, so it'd likely work in 'nocodec' mode, with just the
>>>>> I2S signals on the connector.
>>>>
>>>
>>>
>> _______________________________________________
>> Sound-open-firmware mailing list
>> Sound-open-firmware at alsa-project.org
>> http://mailman.alsa-project.org/mailman/listinfo/sound-open-firmware
>>
> 


More information about the Sound-open-firmware mailing list