[Sound-open-firmware] Support for Tangier SoC

Sven Schwermer sven at svenschwermer.de
Sun Oct 22 18:58:29 CEST 2017


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


More information about the Sound-open-firmware mailing list