Commit Graph

13 Commits

Author SHA1 Message Date
Andy Ross
d809390405 boards/intel_adsp_cavs15: Add alternative integration tool for twister
The twister integration on this board is problematic:

+ It assumes that it will be building on the device's linux
  installation, which is often a somewhat slow Apollo Lake board (Up
  Squared) with extremely limited storage space (mine has only 5G left
  on the internal eMMC after Zephyr installation and can't fit a full
  twister build tree).

+ Reading the trace output before the firmware load will emit output
  from a previous test run.  Twister isn't consistent about the order
  in which the --west-flash and --device-serial-pty scripts are
  started, which means that tests show spurious failures when the
  order changes or if the device started with a test in its trace
  buffer.

This is an elaboration on the scripting I've been using.  It's a
single script that works as both the west-flash and device-serial-pty
handlers (or as an all-in-one standalone if you pass it the path to
the zephyr.elf file instead of running it under twister).  It reaches
the device host over ssh and runs the tools with sudo, minimizing
administration overhead (the device does need a checked-out Zephyr
tree and a built diag_driver kernel module though).

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2021-03-15 10:22:21 +01:00
Andy Ross
0fd9e4bf68 soc/intel_adsp_cavs15: Enable all twister tests
Take out the only_tags limitation.  This platform is mature now and
should run everything.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2021-03-08 19:25:25 -05:00
Jian Kang
8c9b06ad82 board: cavs15: Add a option to control signing ways
Zephyr testcases(not SOF case) not use kernel DSP driver to load image
on ADSP board, thus do not need signing with xman. So add a input
'--no-manifest' to specify signing without xman in image. If use DSP
driver load image, we should not specify this.

Signed-off-by: Jian Kang <jianx.kang@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-02-11 13:52:30 -05:00
Jian Kang
fb24ded7d8 board: cavs15: fixed size error that load firmware by script
When load firmware by script, the buffer size and data size are not
same, so specify size when copy data to buffer.

Signed-off-by: Jian Kang <jianx.kang@intel.com>
2021-02-11 13:52:30 -05:00
Jian Kang
9dd0aa2eb2 boards: cavs15: change the signing command in flash.sh
Change the command that signing with rimage by flash script after
commitID:b553166a has been merged, that patch add a new option -D for
specify configuration, so update the command of this script.

Signed-off-by: Jian Kang <jianx.kang@intel.com>
2021-02-01 08:37:50 -05:00
Anas Nashif
47c206539d boards: cavs15: fixed link to private key
Fixed link to the private key. Point to new location.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-01-26 06:19:34 -05:00
Anas Nashif
42ef64744e boards: intel_adsp_cavs*: enable on SOF tagged apps
Allow building on SOF tagged apps.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-01-06 07:53:46 -06:00
Anas Nashif
d9a39794c6 boards: up_squared_adsp: BOARD_UP_SQUARED_ADSP -> BOARD_INTEL_ADSP_CAVS15
Rename left over variable from up_squared to more generic adsp_cavs..

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-01-06 07:53:46 -06:00
Andy Ross
3805286769 boards/intel_adsp_cavs15: Add --no-history argument to adsplog.py
The default behavior of the log reader is to dump the full device trace
buffer.  But that can contain output from a previous run and the state
parser in twister can get confused.  Add a "--no-history" argument that
emits only new log data, which corresponds more closely to the way a
hardware UART would work.

(Code change is just two lines, everything else is comments & docs)

Fixes #30979

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2020-12-27 18:20:35 +01:00
Andy Ross
fe83118432 boards/intel_adsp_cavs15: Update docs to cover twister integration
Documentation update with information on how to run twiter integration
testing on this board.  Also elaborate the discussion of permissions
setup.

(Longer term, it would be better to include a udev example of how to
set permissions on those files rather than doing it manually, and to
include fuller instructions on how to build the needed SOF driver
instead of just priving a link to a github tree.)

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2020-12-20 14:49:09 -05:00
Andrei Emeltchenko
98470b87b1 boards: up_squared_adsp: Add flasher script
Add script signing and flashing up_squared_adsp board. Can be used:

$ west flash \
<zephyr>/boards/xtensa/up_squared_adsp/tools/flash.sh

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
2020-12-20 14:49:09 -05:00
Andy Ross
a5110b52ca soc/intel_adsp: Robustify logging code
The existing implementation of the adsplog.py script worked fine for
individual runs (e.g. when running specific code) but had no support
for detecting system reset events and thus could not be used for
monitoring applications like test automation.  It also could not
handle the case where a rapid log burst would overflow the buffer
before being noticed at the client.  Also, the protocol here was also
rife with opportunities for race conditions.  Fix all that up via what
is mostly a rewrite of the script.  The protocol itself hasn't
changed, just the handling.

Also includes some changes to the trace_out.c code on the device side.
These are required to get ordering correct to make race conditions
tractably handleable on the reader side.

Some of the specific cases that are managed:

* There is a 0.4s backoff when a reset is detected.  Continuing to
  poll the buffer has been observed to hang the device (I'm fairly
  sure this is actually a hardware bug, reads aren't visible to the
  DSP software).

* The "no magic number" case needs to be reserved for detecting system
  reset.

* Slot data must be read BETWEEN two reads of the ID value to detect
  the case where the slot gets clobbered while being read.

* The "currently being filled" slot needs to always have an ID value
  that does not appear in sequence from the prior slot.

* We need to check the full history in the buffer at each poll to
  detect resets, which opens up a race between the read of the "next
  slot" (which is absent) and the full history retrieval (when it can
  now be present!).  Detect that.

* A null termination bug in the current output slot got fixed.

Broadly: this was a huge bear to make work.  It sounds like this
should be a simple protocol, but it's not in practice.

Also: clean up the error reporting in the script so it can handle new
PCI IDs being added, and reports permissions failures on the required
sysfs file as a human-readable error.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2020-12-20 14:49:09 -05:00
Anas Nashif
3ac163eae6 boards: rename up_squared_adsp intel_adsp_cavs15
The Audio DSP is not specific to up_squared, so make it more generic.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2020-10-23 12:56:03 +02:00