[PATCH 0/1] gpio: add simple logic analyzer using polling
From: Wolfram Sang
Date: Wed Sep 01 2021 - 15:47:32 EST
The bravery continues with the next update and first non-RFC version of
the in-kernel logic analyzer based on GPIO polling with local irqs
disabled. It has been been tested locally and remotely. It provided
satisfactory results. Besides the driver, there is also a script which
isolates a CPU to achieve the best possible result. I am aware of the
latency limitations. However, the intention is for debugging only, not
mass production. Especially for remote debugging and to get a first
impression, this has already been useful. Documentation is within the
patch, to get a better idea what this is all about.
Changes since RFC v2:
* took most of the suggestions from Andy's review. For the things I did
not take, I added comments when appropriate.
* A *lot* of cleanups to the shell script guided by checkers, mainly
'shellcheck'. This is mainly to ensure that the scripts works on most
minimal shells. Tested are 'busybox ash', 'dash', and 'bash'.
* a *lot* more error checking and reporting in the script
* I found fatal_signal_pending(), so the sampling process is now
finally killable \o/
* script sets CPUfreq now to "performance" for the isolated CPU
* the acquisition_delay is now measured before each sampling and not
only during probe because the probing core is likely not the one
used for sampling later
Thanks to Andy for many suggestions.
A branch with preparation for the Renesas Salvator-XS (R-Car H3 ES2.0
and M3-N tested) and Falcon boards (R-Car V3U) is here:
git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git renesas/gpio-logic-analyzer-v3
The documentation is also available online on the elinux wiki:
https://elinux.org/Kernel_GPIO_Logic_analyzer
Looking forward to comments and especially further tests with different
use cases than mine.
Thanks and all the best,
Wolfram
Wolfram Sang (1):
gpio: add sloppy logic analyzer using polling
.../dev-tools/gpio-sloppy-logic-analyzer.rst | 71 ++++
Documentation/dev-tools/index.rst | 1 +
drivers/gpio/Kconfig | 17 +
drivers/gpio/Makefile | 1 +
drivers/gpio/gpio-sloppy-logic-analyzer.c | 340 ++++++++++++++++++
tools/gpio/gpio-sloppy-logic-analyzer | 214 +++++++++++
6 files changed, 644 insertions(+)
create mode 100644 Documentation/dev-tools/gpio-sloppy-logic-analyzer.rst
create mode 100644 drivers/gpio/gpio-sloppy-logic-analyzer.c
create mode 100755 tools/gpio/gpio-sloppy-logic-analyzer
--
2.30.2