Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move to YEAR.MONTH[.MINOR] based versioning for sof-bin #134

Closed
kv2019i opened this issue Sep 13, 2023 · 18 comments
Closed

Move to YEAR.MONTH[.MINOR] based versioning for sof-bin #134

kv2019i opened this issue Sep 13, 2023 · 18 comments
Assignees

Comments

@kv2019i
Copy link
Collaborator

kv2019i commented Sep 13, 2023

Problem statement

Since SOF v2.2, sof-bin packaging has supported inclusion of firmware and topology files from multiple source revisions of SOF.
The motivation for this is to allow a single sof-bin release to all necessary firmware and topology files, for all targets supported by upstream SOF binary releases.

Note: the upstream sof-bin releases do not cover all vendors -- binaries are also distributed via OEM and other channels.

What is changing for SOF v2.7

To clarify the relation of sof-bin release to a SOF firmware versions, sof-bin releases will move to a YEAR.MONTH[.MINOR] versioning.

The first new-style release will be sof-bin-2023.09. Current submitted binaries will include Intel binaries based on SOF2.2 (for Intel Raptor Lake and older platforms) and the soon to be released SOF2.7 (for newer Intel platforms). The release is open to other vendors to submit their binaries for upstream distribution.

Package content is not going to change and distribution packages can copy the release contents verbatim to /lib/firmware (as has been done in previous sof-bin packages).

Timeline

Synrhonized with SOF2.7 released timeline thesofproject/sof#8017

In future, sof-bin releases will be done in sync with the SOF releases (current cadence is a quarterly release).

@kv2019i kv2019i self-assigned this Sep 13, 2023
@kv2019i
Copy link
Collaborator Author

kv2019i commented Sep 13, 2023

FYI @thesofproject/maintainers

@perexg
Copy link

perexg commented Sep 13, 2023

To clarify the relation of sof-bin release to a SOF firmware versions, sof-bin releases will move to a YEAR.MONTH[.MINOR] versioning.

You are proposing opposite. You just clarify the release date in the package name. But I see that this follows the linux firmware releases.

Fedora does not have version in the file tree (because the information was duplicate - package name + directory name) and multiple symlink levels is ugly for the standard distribution).

Source example:

sof-bin-v2.2.6/sof-tplg-v2.2.6/sof-adl-rt711-l0-rt1316-l3-2ch.tplg

Fedora alsa-sof-firmware-2.2.5-1.fc38.noarch:

/usr/lib/firmware/intel/sof-tplg/sof-adl-rt711-l0-rt1316-l3-2ch.tplg.xz

I will probably create a file in /usr/share/doc/alsa-sof-firmware/ tree with the file -> SOF version mapping.

@kv2019i
Copy link
Collaborator Author

kv2019i commented Sep 13, 2023

Ack @perexg , the names will not be overlapping so install without versions and symlinks is possible.

We plan to use same scripting in sof-bin git we used with 2.2.6 to make the tarball, so that e.g. we include a manifest file into the package that specifies versions for all binary files (see https://github.com/thesofproject/sof-bin/releases/download/v2.2.6/sof-bin-v2.2.6.tar.gz and the manifest.txt it has).

@marc-hb
Copy link
Collaborator

marc-hb commented Sep 13, 2023

You are proposing opposite.

I tried to negate the sentence you quoted but I couldn't find how :-)

You just clarify the release date in the package name.

Adding the date is not the important change. The important change is removing the misleading "v2.6" when the package content is actually a mix of v2.6 and v2.2.2 content (depending on the hardware generation).

sof-bin-v2.2.6/sof-tplg-v2.2.6/sof-adl-rt711-l0-rt1316-l3-2ch.tplg

This was a design mistake in ./tarball_multi_releases.bash, sorry my bad. In the .tgz file it should have always been:

sof-bin-v2.2.6/sof-tplg/sof-adl-rt711-l0-rt1316-l3-2ch.tplg

And in the future:

sof-bin-200X.Y/sof-tplg/sof-adl-rt711-l0-rt1316-l3-2ch.tplg

@perexg
Copy link

perexg commented Sep 13, 2023

The manifest.txt looks good. I'll include it to the doc directory in next release.

And in the future:

sof-bin-200X.Y/sof-tplg/sof-adl-rt711-l0-rt1316-l3-2ch.tplg

Yep, it seems less work for Fedora package script.

marc-hb added a commit to marc-hb/sof-bin that referenced this issue Sep 13, 2023
As discussed in:
- thesofproject#134
- thesofproject#133

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
@marc-hb
Copy link
Collaborator

marc-hb commented Sep 13, 2023

This was a design mistake in ./tarball_multi_releases.bash, sorry my bad. In the .tgz file it should have always been:

sof-bin-v2.2.6/sof-tplg/sof-adl-rt711-l0-rt1316-l3-2ch.tplg

Fix submitted in #136, please review. Even if you don't have time to review the code, please take a quick look at how the change in the sample test tree.

marc-hb added a commit to marc-hb/sof-bin that referenced this issue Sep 13, 2023
As discussed in:
- thesofproject#134
- thesofproject#133

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
kv2019i pushed a commit that referenced this issue Sep 14, 2023
As discussed in:
- #134
- #133

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
@kv2019i
Copy link
Collaborator Author

kv2019i commented Sep 15, 2023

Draft release tarball for sof-bin-v2023.09-rc1 is now available at:
https://github.com/thesofproject/sof-bin/releases/download/untagged-66c71a0b01ddb08cff0b/sof-bin-v2023.09-rc1.tar.gz

@kv2019i
Copy link
Collaborator Author

kv2019i commented Sep 15, 2023

And pre-release tagged and published at https://github.com/thesofproject/sof-bin/releases/tag/v2023.09-rc1

Feedback is welcome. We'll follow same structure for the final v2023.09 release.

@heftig
Copy link

heftig commented Sep 15, 2023

Tried the pre-release tarball. LGTM, thanks!

@mrhpearson
Copy link
Contributor

Probably the wrong place to flag this, and maybe I'm missing something obvious, but were the MTL binaries missed from the new release? I'm not seeing mtl.ri in there.

@heftig
Copy link

heftig commented Sep 29, 2023

They're present:

/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-max98357a-rt5682-ssp2-ssp0-2ch-pdm1.tplg
/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-max98357a-rt5682-ssp2-ssp0.tplg
/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-max98357a-rt5682.tplg
/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-rt1019-rt5682.tplg
/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-rt1318-l12-rt714-l0.tplg
/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-4ch.tplg
/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-rt711-l0-rt1316-l23-rt714-l1.tplg
/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-rt712-l0-rt1712-l3.tplg
/usr/lib/firmware/intel/sof-ace-tplg/sof-mtl-sdw-cs42l42-l0-max98363-l2.tplg
/usr/lib/firmware/intel/sof-ipc4/mtl/
/usr/lib/firmware/intel/sof-ipc4/mtl/community/
/usr/lib/firmware/intel/sof-ipc4/mtl/community/sof-mtl.ri
/usr/lib/firmware/intel/sof-ipc4/mtl/intel-signed/
/usr/lib/firmware/intel/sof-ipc4/mtl/intel-signed/sof-mtl.ri
/usr/lib/firmware/intel/sof-ipc4/mtl/sof-mtl.ri

@mrhpearson
Copy link
Contributor

Oh...got it. They moved under ipc4. My bad...sorry! (scuttling back under rock)

@marc-hb
Copy link
Collaborator

marc-hb commented Sep 29, 2023

They moved under ipc4.

@kv2019i eventually got tired of me complaining and very recently documented all this here:

https://thesofproject.github.io/latest/getting_started/intel_debug/introduction.html#firmware-binary

https://github.com/thesofproject/sof-docs/pull/475/files

   * - Raptor Lake and older
     - /lib/firmware/intel/sof/sof-PLAT.ri
     - PLAT = glk, cml, ..., rpl
   * - Raptor Lake and older (community signed)
     - /lib/firmware/intel/sof/community/sof-PLAT.ri
     - PLAT = glk, cml, ..., rpl
   * - Meteor Lake and newer
     - /lib/firmware/intel/sof-ipc4/PLAT/sof-PLAT.ri
     - PLAT = mtl, lnl, ...
   * - Meteor Lake and newer (community signed)
     - /lib/firmware/intel/sof-ipc4/PLAT/community/sof-PLAT.ri
     - PLAT = mtl, lnl, ...
   * - Meteor Lake and newer Loadable Module
     - /lib/firmware/intel/sof-ipc4-lib/PLAT/UUID.bin
     - PLAT as above, UUID = UUID of the module
   * - Meteor Lake and newer Loadable Module (community signed)
     - /lib/firmware/intel/sof-ipc4-lib/PLAT/community/UUID.bin
     - PLAT as above, UUID = UUID of the module

@marc-hb marc-hb assigned marc-hb and unassigned kv2019i Sep 29, 2023
@marc-hb
Copy link
Collaborator

marc-hb commented Sep 30, 2023

New test code submitted in

(one more coming after this one)

@marc-hb
Copy link
Collaborator

marc-hb commented Oct 3, 2023

Second and last tests PR and then this can be closed:

@lgirdwood
Copy link
Member

All merged.

@mrhpearson
Copy link
Contributor

Just as an info note - I tweaked my Debian package stuff to work with the new format and it's all looking good. Testing it on a few platforms now, so far no issues.
I'll see if there is anything else needed once it's been reviewed by an expert, but fingers crossed will have this released there soon.

@marc-hb
Copy link
Collaborator

marc-hb commented Oct 5, 2023

Testing it on a few platforms now, so far no issues.

This sort of feedback (good or bad!) is extremely useful to us, please keep it coming.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants