[alsa-devel] [PATCH 00/35] ASoC: Intel: Clenaup SST initialization
Pierre-Louis Bossart
pierre-louis.bossart at linux.intel.com
Tue Aug 27 17:00:52 CEST 2019
On 8/27/19 9:58 AM, Cezary Rojewski wrote:
> On 2019-08-27 15:52, Pierre-Louis Bossart wrote:
>>
>>>>>>>>>> Not the most elegent solution but I'm wondering if keeping a copy
>>>>>>>>>> of the driver as is around and using new locations for the fixed
>>>>>>>>>> firmware might be the safest way to handle this. We could have a
>>>>>>>>>> wrapper which tries to load the newer firmware and uses the fixed
>>>>>>>>>> driver code if that's there, otherwise tries the old driver with
>>>>>>>>>> the existing firmware paths. This is obviously a horror show and
>>>>>>>>>> leaves the old code sitting there but given the mistakes that
>>>>>>>>>> have been made the whole situation looks like a house of cards.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Thanks for the feedback Mark. While I'm not yet on the "SOF
>>>>>>>>> will fix this" train, I'm keen to agree to leaving this
>>>>>>>>> entirely to SOF if it comes down to us duplicating /skylake.
>>>>>>>>>
>>>>>>>>> However, we are not going to give up that easily. I'll see if
>>>>>>>>> some "golden config" hardcodes can't be provided in some
>>>>>>>>> legacy.c file which would be fetched if initial setup fails.
>>>>>>>>> E.g.: 2cores, 3ssps, 1PAGE_SIZE per trace buffer.. and such.
>>>>>>>>> There are quite a few factors to take into consideration
>>>>>>>>> though. If "asking" user via dmesg to upgrade the firmware if
>>>>>>>>> his/her setup contains obsolete binary is really not an option,
>>>>>>>>> then some magic words got to be involved.
>>>>>>>>>
>>>>>>>>> Czarek
>>>>>>>>
>>>>>>>> On the second thought what if instead of duplicating kernel
>>>>>>>> code, binaries would be duplicated?
>>>>>>>> I.e. rather than targeting /intel/dsp_fw_cnl.bin, _new_ /skylake
>>>>>>>> would be expecting /intel/dsp_fw_cnl_release.bin? Same with
>>>>>>>> topology binaries.
>>>>>>>> In such case, we "only" need to figure out how to propagate new
>>>>>>>> files to Linux distos so whenever someone updates their kernel,
>>>>>>>> new binaries are already present in their /lib/firmware.
>>>>>>>>
>>>>>>>> If such option is valid, we can postpone /skylake upgrade till
>>>>>>>> 5.4 merging window closes and the patches (rough estimation is
>>>>>>>> 150) would descend upon alsa-devel in time between 5.4 and 5.5.
>>>>>>>
>>>>>>> If the driver and FW update will be within the same kernel
>>>>>>> release then IMHO
>>>>>>> there should be no compatibility problem between those two
>>>>>>> components, right?
>>>>>>> This way kernel users willing to stick to old FW can stay on
>>>>>>> older kernel version while
>>>>>>> others can update and receive all the latest FW functionality
>>>>>>> that was developed and enabled.
>>>>>>
>>>>>> I am not comfortable with precluding a kernel update because of a
>>>>>> single firmware file. There are all sort of reasons for updating a
>>>>>> kernel, security, sideband attacks and Android CDD compatibility
>>>>>> being the most obvious ones.
>>>>>>
>>> The single firmware file will not be a blocker as the driver included
>>> in updated kernel will support it.
>>> All you have to do is the little effort to re-generate your custom
>>> topology for the new firmware target.
>>> The entire operation should not be a problem as there are dedicated
>>> utilities like FDK to do that.
>>
>> The issue is the same whether it's a topology file or a firmware file.
>> The ideal situation is that when the kernel is updated it handles both
>> in backwards compatible ways.
>>
>> If to deal with a new firmware file you have to regenerate a new
>> topology, you are in a different model altogether.
>>
>>> Your statement Pierre suggest that everyone should avoid any
>>> functional changes in kernel
>>> that are not critical because that would be problematic for others
>>> who switch from older kernel version.
>> All I said was that you cannot assume that people who are using an
>> old firmware/driver will remain on an old kernel.
>>
>> Mark made an initial proposal to essentially freeze the current
>> solution, which would make it possible to update the kernel but keep
>> the same skylake driver in legacy/maintenance mode only, and an 'new'
>> option that would rely on an updated distribution of firmware/driver.
>> I did not get the counter proposal from Cezary at all.
>
> Ain't my previous message:
>
> -
>
> On the second thought what if instead of duplicating kernel code,
> binaries would be duplicated?
> I.e. rather than targeting /intel/dsp_fw_cnl.bin, _new_ /skylake would
> be expecting /intel/dsp_fw_cnl_release.bin? Same with topology binaries.
> In such case, we "only" need to figure out how to propagate new files to
> Linux distos so whenever someone updates their kernel, new binaries are
> already present in their /lib/firmware.
>
> If such option is valid, we can postpone /skylake upgrade till 5.4
> merging window closes and the patches (rough estimation is 150) would
> descend upon alsa-devel in time between 5.4 and 5.5.
>
> -
>
> a counter proposal?
you didn't explain how the 'duplicated binaries' would be selected. And
'instead of' means you suggested an alternative to Mark's proposal.
More information about the Alsa-devel
mailing list