[alsa-devel] [PATCH 00/35] ASoC: Intel: Clenaup SST initialization
Pierre-Louis Bossart
pierre-louis.bossart at linux.intel.com
Mon Aug 26 18:51:32 CEST 2019
On 8/26/19 2:24 AM, Wasko, Michal wrote:
>
> On 8/25/2019 1:06 PM, Cezary Rojewski wrote:
>> On 2019-08-24 15:51, Cezary Rojewski wrote:
>>> On 2019-08-23 23:39, Mark Brown wrote:
>>>> On Fri, Aug 23, 2019 at 03:12:18PM -0500, Pierre-Louis Bossart wrote:
>>>>> On 8/23/19 1:44 PM, Cezary Rojewski wrote:
>>>>
>>>>>> Wasn't lying about FW version being unreliable. Let's say vendor
>>>>>> receives quick FW drop with new RCR.. such eng drop may carry invalid
>>>>>> numbers such as 0.0.0.0..
>>>>>> In general, I try to avoid relying on FW version whenever
>>>>>> possible. It
>>>>>> can be dumped for debug reasons, true, but to be relied on? Not
>>>>>> really.
>>>>
>>>>> Goodness, that's really bad. I didn't realize this.
>>>>
>>>> At a previous employer I modified our build stamping
>>>> infrastructure to also include both a timestamp and a serialized
>>>> build number in the version number since one of my colleagues was
>>>> fond of sending people prereleases of what he was working on to
>>>> other people with identical version numbers on different
>>>> binaries leading to much confusion and checksumming. You do see
>>>> a lot of things with those serialized version numbers, especially
>>>> SVN based projects.
>>>>
>>>>>> Personally, I'm against all hardcodes and would simply recommend all
>>>>>> user to redirect their symlinks when they do switch kernel - along
>>>>>> with
>>>>>> dumping warning/ error message in dmesg. Hardcodes bring problems
>>>>>> with
>>>>>> forward compatibility and that's why host should offload them away to
>>>>>> FW.
>>>>
>>>>> Cezary, I know you are not responsible for all this, but at this
>>>>> point if we
>>>>> (Intel) can't guarantee any sort of interoperability with both
>>>>> firmware and
>>>>> topology we should make it clear that this driver is not
>>>>> recommended unless
>>>>> specific versions of the firmware/topology are used, and as a
>>>>> consequence
>>>>> the typical client distros and desktop/laptop users should use HDaudio
>>>>> legacy or SOF (for DMICs)
>>>>
>>>> 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.
>
> In terms of FW topology compatibility there is an option to read from
> topology manifest
> a FW version that it was build for and in case if it does not match FW
> version present on
> the platform then print warning that the FW topology binary should be
> rebuild for current
> FW version (x.x.x.x).
Can you provide a pointer on how the FW version is embedded in a
.conf/.tplg file? I see a couple where that information does not seem
present.
> The above approach at the end may be less confusing then source code or
> binary duplication.
More information about the Alsa-devel
mailing list