Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions README-before-1.7.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# SOF Firmware and Topology Binaries

This is the living area and distribution channel for SOF firmware and topology
binaries. It's still very much WiP and may churn a little until things
settle down.

This repo will be frequently rebased in order to keep the size small and is
intended for packagers, release engineers, testers and devlopers.

The intention is to store all pre-compiled (and signed if neccesary) firmware
binaries and pre-compiled topologies for snapshot, stable and LTS releases.

# Installation

The latest SOF release is version 1.7 and is available here. If you want to
install this manually instead of from your distribution then please follow
these instructions

```
git clone https://github.com/thesofproject/sof-bin.git
cd sof-bin
git checkout v1.7 -b local/v1.7
sudo ./go.sh
```

alternatively zip and tar files are available to download.

https://github.com/thesofproject/sof-bin/releases/tag/v1.7

These files can be uncompressed and the go.sh can be executed as above.

At this point please the firmware, topologies are all installed
and available to be used.

You may need to tell the SOF kernel driver about the new firmware and
this ca be done by unloading and reloading the modules as follows.

```
sudo modprobe -r snd_sof_pci
sudo modprobe snd_sof_pci
```
or

```
sudo modprobe -r snd_sof_acpi
sudo modprobe snd_sof_acpi
```

If above does not work then rebooting your device will also reload the
SOF driver.

# Repository Layout

There are four types of SOF releases.

1) stable - fully validated release with updates for 6 months. Deleted 3 months
after updates end.

2) LTS - fully validated release with updates for 2 years. Deleted 3 months
after updates end.

3) nightly - unvalidated (may not even boot) high frequency release. Deleted
immediately upon release of next nightly. Signed with public key
if necessary.

4) snapshot vendor - unvalidated (may not even boot) high frequency release.
Deleted immediately upon release of next vendor snapshot. Signed
with vendor key - less frequent than nightly.

The repository will have a tag for each release e.g. latest vendor snapshots,
nightlies and stable releases.

```
main ------+---> v1.4.2
|
+---> v1.5.4
|
+---> v1.6.1
|
+---> v18032020-intel
|
+---> v02032020
|
+---> lts-20.10
```

It's possible due to release cadence to have several stable branches in the
repository.

94 changes: 18 additions & 76 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,89 +1,31 @@
# SOF Firmware and Topology Binaries

This is the living area and distribution channel for SOF firmware and topology
binaries. It's still very much WiP and may churn a little until things
settle down.

This repo will be frequently rebased in order to keep the size small and is
intended for packagers, release engineers, testers and devlopers.

The intention is to store all pre-compiled (and signed if neccesary) firmware
binaries and pre-compiled topologies for snapshot, stable and LTS releases.

# Installation

The latest SOF release is version 1.7 and is available here. If you want to
install this manually instead of from your distribution then please follow
these instructions
Starting from v1.7 the installation process has been simplified and
the go.sh script is not used anymore. Instead:

```
git clone https://github.com/thesofproject/sof-bin.git
cd sof-bin
git checkout v1.7 -b local/v1.7
sudo ./go.sh
sudo mv /lib/firmware/intel/sof* some_backup_location/
sudo mv /usr/local/bin/sof-* some_backup_location/ # optional
sudo install.sh v1.7
```

alternatively zip and tar files are available to download.
The go.sh script still applies to older releases.

https://github.com/thesofproject/sof-bin/releases/tag/v1.7

These files can be uncompressed and the go.sh can be executed as above.

At this point please the firmware, topologies are all installed
and available to be used.

You may need to tell the SOF kernel driver about the new firmware and
this ca be done by unloading and reloading the modules as follows.
You don't have to use install.sh, you can use any recursive copy of
your preference. This is all what install.sh does:

```
sudo modprobe -r snd_sof_pci
sudo modprobe snd_sof_pci
rsync -a sof*v1.7 /lib/firmware/intel/
ln -s sof-v1.7 /lib/firmware/intel/sof
ln -s sof-tplg-v1.7 /lib/firmware/intel/sof-tplg
rsync tools-v1.7/* /usr/local/bin
```
or

```
sudo modprobe -r snd_sof_acpi
sudo modprobe snd_sof_acpi
```

If above does not work then rebooting your device will also reload the
SOF driver.

# Repository Layout

There are four types of SOF releases.

1) stable - fully validated release with updates for 6 months. Deleted 3 months
after updates end.

2) LTS - fully validated release with updates for 2 years. Deleted 3 months
after updates end.

3) nightly - unvalidated (may not even boot) high frequency release. Deleted
immediately upon release of next nightly. Signed with public key
if necessary.

4) snapshot vendor - unvalidated (may not even boot) high frequency release.
Deleted immediately upon release of next vendor snapshot. Signed
with vendor key - less frequent than nightly.

The repository will have a tag for each release e.g. latest vendor snapshots,
nightlies and stable releases.
If you don't want the symbolic links:

```
main ------+---> v1.4.2
|
+---> v1.5.4
|
+---> v1.6.1
|
+---> v18032020-intel
|
+---> v02032020
|
+---> lts-20.10
rsync -a sof-v1.7/ /lib/firmware/intel/sof/
rsync -a sof-tplg-v1.7/ /lib/firmware/intel/sof-tplg/
rsync tools-v1.7/ /usr/local/bin/
```

It's possible due to release cadence to have several stable branches in the
repository.

Remember that for rsync (and some versions of `cp`), a trailing slash in
srcdir/ is rougly equivalent to srcdir/*
48 changes: 48 additions & 0 deletions install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#!/bin/sh

set -e

# Default values, override on the command line
: "${FW_DEST:=/lib/firmware/intel}"
: "${TOOLS_DEST:=/usr/local/bin}"

usage()
{
cat <<EOF
Usage:
sudo $0 v1.7
EOF
exit 1
}

main()
{
test "$#" -eq 1 || usage

local ver="$1"

# Do this first so we can fail immediately and not leave a
# half-install behind
set -x
for sdir in sof sof-tplg; do
ln -s "$sdir-$ver" "${FW_DEST}/$sdir" || {
set +x
die '%s already installed? (Re)move it first.\n' "${FW_DEST}/$sdir"
}
done

# Trailing slash in srcdir/ ~= srcdir/*
rsync -a sof*"$ver" "${FW_DEST}"/
rsync -a tools-"$ver"/ "${TOOLS_DEST}"/
}

die()
{
>&2 printf '%s ERROR: ' "$0"
# We want die() to be usable exactly like printf
# shellcheck disable=SC2059
>&2 printf "$@"
exit 1
}

main "$@"
Empty file modified tools-v1.7/sof-ctl
100644 → 100755
Empty file.
Empty file modified tools-v1.7/sof-fuzzer
100644 → 100755
Empty file.
Empty file modified tools-v1.7/sof-logger
100644 → 100755
Empty file.
Empty file modified tools-v1.7/sof-probes
100644 → 100755
Empty file.