Commit Graph

36 Commits

Author SHA1 Message Date
Marc Herbert 7cbaa00cd2 installer: same default platforms as xtensa-build-all.sh
Commit a4c8d4ef79 ("Intel: remove XTOS support") stopped building
anything by default.

All Intel firmware in this branch is now Zephyr-based. So this Makefile
is NOT used anymore for sof-bin releases. However it is still useful as
a single command, fully parallelized and much faster alternative to
build everything at once in just a few seconds.

See source comment for more.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2024-05-03 15:01:53 +03:00
Marc Herbert 5ffa1cdc17 installer: drop harmless but misleading target_of_imx
No one needs a imx -> imx8 symbolic link.

Fixes misguided search/replace from commit a4c8d4ef79 ("Intel: remove
XTOS support")

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2024-05-03 15:01:53 +03:00
Marc Herbert ff92658ce2 installer: fix staging error message when no firmware was built
Commit a4c8d4ef79 ("Intel: remove XTOS support") stopped
installer/GNUmakefile from building all XTOS firmware by default:
nothing unless either SIGNED_list or UNSIGNED_list is passed on the
command line. This didn't break CI which sets one of these parameters.
But it resulted in a cryptic "test -e staging/sof" failure and lack of
error message when trying to build by default.

Add a one-line, explicit check. The comment doubles as an error message.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2024-05-03 15:01:53 +03:00
Laurentiu Mihalcea fccb097ddd installer: replace imx8 with imx8m
XTOS is going to be deprecated on imx8/imx8x so replace
imx8 with imx8m.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-02-16 21:48:10 +02:00
Kai Vehmanen c6ba44228a topology1: remove Intel GLK/TGL/ADL/RPL topology definitions
These topologies are no longer supported by mainline firmware code for
these platforms. The stable-v2.2 branch continues to support these
targets with topology1. Also SOF main branch provides topology2 targets
for a subset of these configurations.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2023-10-27 12:31:35 +03:00
Guennadi Liakhovetski a4c8d4ef79 Intel: remove XTOS support
XTOS isn't supported any more for Intel platforms, remove support for
it.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-05-11 19:17:17 +03:00
Guennadi Liakhovetski dc9ba281d7 platform: remove support for cAVS 1.8 platforms
Remove all support for cAVS 1.8 platformsm including Cannon Lake,
Comet Lake, Whiskey Lake and Coffee Lake, they aren't supported
any more.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-03-02 23:02:37 +00:00
Guennadi Liakhovetski 0f0acaae94 platform: remove support for cAVS 1.5 platforms
Remove all support for cAVS 1.5 platformsm including Apollo Lake,
Sky Lake, Kaby Lake, Broxton and Gemini Lake, they aren't supported
any more.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-03-02 11:28:23 +00:00
Marc Herbert 2b85c2c358 scripts: fix check whether CMake configuration succeeded
To test whether CMake configuration can be skipped, look for either a
ninja.build or Makefile.

An existing build directory is NOT proof that CMake configuration
succeeded. When CMake configuration failed, trying to build again fails
with a super confusing "Makefile not found" error message.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-01-04 16:09:08 +00:00
Marc Herbert e09d853121 installer: remove byt..jsl platforms
Not supported in the main branch anymore, go to stable-v2.3

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-08-31 21:03:16 +01:00
Marc Herbert d6906d3aeb installer: add rpl and rpl-s aliases to tgl and tgl-h
rpl firmware is tgl but signed with a different key

This commit adds the following files and links below

$ tree installer/staging/sof |
     grep -e tgl  -e rpl -e community |
     grep -v -e adl -e ehl

├── community
│   ├── sof-rpl.ri -> sof-tgl.ri
│   ├── sof-rpl-s.ri -> sof-tgl-h.ri
│   ├── sof-tgl-h.ri
│   └── sof-tgl.ri
├── sof-rpl.ldc -> sof-tgl.ldc
├── sof-rpl.ri -> intel-signed/sof-rpl.ri
├── sof-rpl-s.ldc -> sof-tgl-h.ldc
├── sof-rpl-s.ri -> intel-signed/sof-rpl-s.ri
├── sof-tgl-h.ldc
├── sof-tgl-h.ri -> intel-signed/sof-tgl-h.ri
├── sof-tgl.ldc
└── sof-tgl.ri -> intel-signed/sof-tgl.ri

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-08-03 15:36:29 +01:00
Marc Herbert 5f04af9f10 installer: add IPC_VERSION
One-line change + new test set

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-04-25 16:39:50 +01:00
Marc Herbert 3e58f2cf5c installer: explain why we install only sof-*.tplg files
See #4611 for more background.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-04-25 15:07:12 +01:00
Marc Herbert deb0e7340e Rename generated version.h to sof_versions.h
Zephyr also a version.h too so the situation was a buggy #include mess
that (among others) dropped the SOF git version from the SOF banner when
using Zephyr. It's absolutely impossible to fix this mess while keeping
two .h files both named exactly the same and even included with the
exact same '#include version.h' line, I mean no sof/version.h or other
prefix.

As a bonus, this rename also reduces the XTOS-only confusion between
"version.h" and cavs/version.h".

Generating a file in the source tree is a serious bug (to be fixed
later), it means this file is never cleaned. Do not hide this bug with a
.gitignore rule.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-01-14 16:56:29 +00:00
Marc Herbert 512e22eae4 installer: comment fix: hsw and sue are not SIGNED
Pure comments, no code change.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-10-21 13:59:46 +01:00
Marc Herbert 5a7a135f01 installer: add adl and adl-s links
ADL and ADL-S binaries share FW build configuration with TGL and TGL-H.

See also issue #3491 and commit 15e03fd297 ("config: intel: use PCH
name for tigerlake") and the corresponding review in PR #3451.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-09-29 17:02:41 +01:00
Marc Herbert bdd62d54a0 installer: use tree -v to make the test output deterministic
Avoids semi-random order like:

-- tests/staging_sof_ref.txt
++ sof/installer-builds/staging_sof_tree.txt
@ -1,7 +1,7 @@
 .
 ├── community
-│   ├── sof-adl.ri -> sof-tgl.ri
 │   ├── sof-adl-s.ri -> sof-tgl-h.ri
+│   ├── sof-adl.ri -> sof-tgl.ri
 │   ├── sof-apl.ri
 │   ├── sof-cfl.ri -> sof-cnl.ri
 │   ├── sof-cml.ri -> sof-cnl.ri
@ -16,10 +16,10 @@

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-09-29 17:02:41 +01:00
Marc Herbert 83a992eb49 installer: add new tarball target
To help with the release process, see
https://github.com/thesofproject/sof-bin/commit/d908e5edeb5

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-09-24 15:04:22 +01:00
Marc Herbert fd57210053 installer: add sof-ctl and sof-probes
Add sof-ctl and sof-probes.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-09-24 15:04:22 +01:00
Marc Herbert 3ea21a3afd installer: automate the creation of symlinks inside intel-signed/
In other words:

├── intel-signed
│   ├── sof-cfl.ri -> sof-cnl.ri
│   ├── sof-cml.ri -> sof-cnl.ri
│   ├── sof-glk.ri -> sof-apl.ri

Doing this manually is time-consuming and error-prone.

Not for ehl because it has a different key.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-06-04 12:05:44 +01:00
Marc Herbert 9f8cce1522 Disable __TIME__ and the non-reproducible build counter by default
Makes even CONFIG_DEBUG builds (locally) deterministic by
default: (re)building twice produces the same binaries. Also a partial
fix for incremental builds: running "make" twice in a row now recompiles
fewer files because version.h does not keep changing.

Also makes sure non-debug builds can't use uninitialized strings in some
future security accident.

Fixes:

 ./scripts/checkpatch.pl -g 'aa85e2c0e956c'

ERROR: Use of the '__DATE__' macro makes the build non-deterministic
+		.date = __DATE__,
ERROR: Use of the '__TIME__' macro makes the build non-deterministic
+		.time = __TIME__,

The previous behavior can be restored using any standard CMake
configuration method, example:

  ./scripts/xtensa-build-all.sh apl
  cmake -B build_apl_gcc/ -DBUILD_COUNTERS=1
  make -C build_apl_gcc

https://reproducible-builds.org/

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-06-04 12:00:34 +01:00
Marc Herbert 571cc290a4 xtensa/cmake: fix !CONFIG_TRACE
Looks like no one ever !CONFIG_TRACE

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-05-18 16:46:44 +01:00
Daniel Baluta 67fdbd2e16 installer: Fix installer test
After commit 5ca0e9bba3 ("topology: Use generic name for 8qxp/8qm")
installer test is broken as we also need to update the i.MX topology
with the new naming.

So, fix this by replacing imx8qxp naming with imx8. But while we are at
it choose a better (more relevant) random topology, sof-imx8-wm8960.tplg
instead of sof-imx8-nodec.tplg.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2021-04-29 11:55:25 +01:00
Marc Herbert 6297dc165b Revert "installer: change default destination to /lib/firmware/updates"
This reverts the main change in commit
65ade5a4f9.

There are too many test changes required first, see a tentative list in
https://github.com/thesofproject/sof-test/pull/645

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-04-14 14:59:21 +01:00
Marc Herbert 65ade5a4f9 installer: change default destination to /lib/firmware/updates
Kudos to Pierre-Louis for advertising this cool feature

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-04-11 12:48:55 +01:00
Marc Herbert 21f4e74dd7 installer: fix incremental builds
Building "sof" does not rebuild the .ri firmware file. Switch to the
"bin" target which is what ./scripts/xtensa-build-all.sh builds.

Fixes: 479809663e ("installer: (re)build firmware, topologies and user
space tools)

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-03-11 16:52:29 +00:00
Marc Herbert b809caeb5d installer: --no-print-directory
Gets the length of a no-op "make topologies" from 380 down to 140
lines. From 300 to 200 for one "make signed" platform.

Ninja is more quiet by default.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-03-11 16:52:29 +00:00
Marc Herbert 1371d479ab installer: add tgl-h
add tgl-h

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-03-09 19:55:45 +00:00
Marc Herbert 969f370a36 installer: add missing mkdir staging/* dep. for symlinks
Fixes:

 rm -rf staging ; make aliases
 ln: failed to create symbolic link 'staging/sof/sof-glk.ri': No such
 file or directory

This also happens on a brand new checkout when building in parallel with
make -j because symbolic links don't have any dependency. Example at:

  https://github.com/marc-hb/sof/runs/2036288013

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-03-08 12:06:31 +00:00
Marc Herbert 907f8691c2 installer: TOOLCHAIN default value depends on XTENSA_TOOLS_ROOT
XTENSA_TOOLS_ROOT is required by xtensa-build-all.sh anyway, so don't
force the user to say twice that they want xcc.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-03-05 11:42:36 +00:00
Marc Herbert 25fc45143b installer: disable incremental builds with XCC due to $XTENSA_SYSTEM
In the future we should probably extract the array of XTENSA_SYSTEM
values out of xtensa-build-all.sh

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-03-04 22:07:48 +00:00
Marc Herbert 453c686fd1 installer/README.md: no need to build manually anymore
Doc update missing from the most recent pull request.

Also warn against `make -jN stage rsync`

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-03-03 22:28:37 +00:00
Marc Herbert 5dea5aead9 installer: add checktree target
Simple check of the "tree" output

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-02-26 16:17:41 +00:00
Marc Herbert 479809663e installer: (re)build firmware, topologies and user space tools
One-touch "make -C installer rsync" combines fast incremental build,
staging and deploy in one command.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-02-26 16:17:41 +00:00
Marc Herbert f9545c8f59 installer: new BUILD_TOOLS directory
The tools build is independent from the firmware build. The next step is
to invoke it from here if needed.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-02-26 16:17:41 +00:00
Marc Herbert c6edc5f51e New install/GNUmakefile to gradually replace scripts in sof-bin.git
More specifically replacing sof-bin/go.sh and sof-bin/publish.sh and
also sof/scripts/sof-target-install.sh eventually.

"make install" code has always belonged to source repositories because
developers need to install too and we want everyone to use the same
installers. It's also easier to have all the information in a single
place.

Once the layout in sof-bin mirrors the /lib/firmware/intel layout
exactly, sof-bin does not need any installation code any more.

Mixing source and binaries in the same repo is also a "code smell",
notably because it forces branching them together.

Using a higher level build tool for installation instead of plain
scripts has a few benefits:

- Multiple entry points: easy to invoke (and test) any part of the
  installer individually
- ... while invoking dependencies automatically.
- Other features "for free" like:
  - errexit
  - error messages like "dunno how to build file x"
  - commands are logged by default

- Also gets rid of most of the large code duplication in go.sh and
  publish.sh, so:
  - Enabling or disabling a platform is a 3-character change
  - Allows platform selection in local config file (even just one platform)
  - Much harder to add inconsistencies
  - Much easier to review correctness, for instance no need to
    scrutinize every line to see which platforms are aliased.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-02-16 11:23:28 +00:00