From: Paul Fertser <fercerpav@gmail.com>
To: linux-aspeed@lists.ozlabs.org
Subject: [PATCH v29 0/6] JTAG driver introduction
Date: Fri, 15 Jan 2021 13:46:35 +0300 [thread overview]
Message-ID: <20210115104635.GA2971@home.paul.comp> (raw)
In-Reply-To: <20200413222920.4722-1-ernesto.corona@intel.com>
Hello,
This is a multi-part review of the series, with general notes inline
in this message, and specific points raised as replies to the
individual patches.
On Mon, Apr 13, 2020 at 03:29:14PM -0700, Ernesto Corona wrote:
> We propose to implement general JTAG interface and infrastructure
> to communicate with user layer application.
Working with a Tioga Pass server platform I needed to use the JTAG
master controller of an ASPEED AST2500 SoC to configure a Lattice
LCMXO2-4000HC CPLD. I'm mentioning these fine details because that's
the only proper runtime testing I performed, but my review is not
limited to that.
Being a long-time OpenOCD community member, I got familiar with many
different facilities and protocols offered by hardware JTAG adapters,
and of wide range of usecases as I was providing end-user
support. This is my perspective when looking at these patches.
I have to note that the current v29 version of the series is broken in
several aspects:
1. The aspeed driver fails probe(), see the driver review for details;
2. The uapi include header is unusable;
3. The offered userspace implementation wasn't updated to the latest
API, but even with the changes to make it compile it's still a mess
too horrible to be used in production;
Points 1 and 2 will be addressed in separate mails. To workaround
point 3 I prepared a recipe with an additional patch[0] so that
mlnx_cpldprog can be at least compiled and used for some minimal
testing.
The shortcomings of mlnx_cpldprog are numerous:
1. It doesn't consistently choose between hardware and bitbang modes;
2. Even though it checks TDO it doesn't print any errors on mismatch
and continues playing back the SVF as if it's all right;
3. It has JTAG speed hardcoded;
4. It doesn't implement RUNTEST so with the CPLD I'm using it's always
_not_ working properly, failing silently;
5. It is just awfully slow, taking about 40 minutes to play back a
file that takes 1.5 minutes with OpenOCD with the same hardware and
kernel driver.
So I added support for the proposed API to OpenOCD: patch that applies
to the version in OpenBMC[1], patch for the latest version[2]. And
since it can do much more than just playing back SVF I hope this can
highlight some essential API shortcomings if it's meant to be
generic. My impression is that in its current state it's not adequate
for the purpose.
[0] https://bitbucket.org/paulfertser/mlnx_cpldprog_bitbake
[1] http://openocd.zylin.com/#/c/5976/
[2] http://openocd.zylin.com/#/c/5975/
--
Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software!
mailto:fercerpav at gmail.com
WARNING: multiple messages have this Message-ID (diff)
From: Paul Fertser <fercerpav@gmail.com>
To: Ernesto Corona <ernesto.corona@intel.com>
Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-aspeed@lists.ozlabs.org
Subject: Re: [PATCH v29 0/6] JTAG driver introduction
Date: Fri, 15 Jan 2021 13:46:35 +0300 [thread overview]
Message-ID: <20210115104635.GA2971@home.paul.comp> (raw)
In-Reply-To: <20200413222920.4722-1-ernesto.corona@intel.com>
Hello,
This is a multi-part review of the series, with general notes inline
in this message, and specific points raised as replies to the
individual patches.
On Mon, Apr 13, 2020 at 03:29:14PM -0700, Ernesto Corona wrote:
> We propose to implement general JTAG interface and infrastructure
> to communicate with user layer application.
Working with a Tioga Pass server platform I needed to use the JTAG
master controller of an ASPEED AST2500 SoC to configure a Lattice
LCMXO2-4000HC CPLD. I'm mentioning these fine details because that's
the only proper runtime testing I performed, but my review is not
limited to that.
Being a long-time OpenOCD community member, I got familiar with many
different facilities and protocols offered by hardware JTAG adapters,
and of wide range of usecases as I was providing end-user
support. This is my perspective when looking at these patches.
I have to note that the current v29 version of the series is broken in
several aspects:
1. The aspeed driver fails probe(), see the driver review for details;
2. The uapi include header is unusable;
3. The offered userspace implementation wasn't updated to the latest
API, but even with the changes to make it compile it's still a mess
too horrible to be used in production;
Points 1 and 2 will be addressed in separate mails. To workaround
point 3 I prepared a recipe with an additional patch[0] so that
mlnx_cpldprog can be at least compiled and used for some minimal
testing.
The shortcomings of mlnx_cpldprog are numerous:
1. It doesn't consistently choose between hardware and bitbang modes;
2. Even though it checks TDO it doesn't print any errors on mismatch
and continues playing back the SVF as if it's all right;
3. It has JTAG speed hardcoded;
4. It doesn't implement RUNTEST so with the CPLD I'm using it's always
_not_ working properly, failing silently;
5. It is just awfully slow, taking about 40 minutes to play back a
file that takes 1.5 minutes with OpenOCD with the same hardware and
kernel driver.
So I added support for the proposed API to OpenOCD: patch that applies
to the version in OpenBMC[1], patch for the latest version[2]. And
since it can do much more than just playing back SVF I hope this can
highlight some essential API shortcomings if it's meant to be
generic. My impression is that in its current state it's not adequate
for the purpose.
[0] https://bitbucket.org/paulfertser/mlnx_cpldprog_bitbake
[1] http://openocd.zylin.com/#/c/5976/
[2] http://openocd.zylin.com/#/c/5975/
--
Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software!
mailto:fercerpav@gmail.com
WARNING: multiple messages have this Message-ID (diff)
From: Paul Fertser <fercerpav@gmail.com>
To: Ernesto Corona <ernesto.corona@intel.com>
Cc: linux-aspeed@lists.ozlabs.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org
Subject: Re: [PATCH v29 0/6] JTAG driver introduction
Date: Fri, 15 Jan 2021 13:46:35 +0300 [thread overview]
Message-ID: <20210115104635.GA2971@home.paul.comp> (raw)
In-Reply-To: <20200413222920.4722-1-ernesto.corona@intel.com>
Hello,
This is a multi-part review of the series, with general notes inline
in this message, and specific points raised as replies to the
individual patches.
On Mon, Apr 13, 2020 at 03:29:14PM -0700, Ernesto Corona wrote:
> We propose to implement general JTAG interface and infrastructure
> to communicate with user layer application.
Working with a Tioga Pass server platform I needed to use the JTAG
master controller of an ASPEED AST2500 SoC to configure a Lattice
LCMXO2-4000HC CPLD. I'm mentioning these fine details because that's
the only proper runtime testing I performed, but my review is not
limited to that.
Being a long-time OpenOCD community member, I got familiar with many
different facilities and protocols offered by hardware JTAG adapters,
and of wide range of usecases as I was providing end-user
support. This is my perspective when looking at these patches.
I have to note that the current v29 version of the series is broken in
several aspects:
1. The aspeed driver fails probe(), see the driver review for details;
2. The uapi include header is unusable;
3. The offered userspace implementation wasn't updated to the latest
API, but even with the changes to make it compile it's still a mess
too horrible to be used in production;
Points 1 and 2 will be addressed in separate mails. To workaround
point 3 I prepared a recipe with an additional patch[0] so that
mlnx_cpldprog can be at least compiled and used for some minimal
testing.
The shortcomings of mlnx_cpldprog are numerous:
1. It doesn't consistently choose between hardware and bitbang modes;
2. Even though it checks TDO it doesn't print any errors on mismatch
and continues playing back the SVF as if it's all right;
3. It has JTAG speed hardcoded;
4. It doesn't implement RUNTEST so with the CPLD I'm using it's always
_not_ working properly, failing silently;
5. It is just awfully slow, taking about 40 minutes to play back a
file that takes 1.5 minutes with OpenOCD with the same hardware and
kernel driver.
So I added support for the proposed API to OpenOCD: patch that applies
to the version in OpenBMC[1], patch for the latest version[2]. And
since it can do much more than just playing back SVF I hope this can
highlight some essential API shortcomings if it's meant to be
generic. My impression is that in its current state it's not adequate
for the purpose.
[0] https://bitbucket.org/paulfertser/mlnx_cpldprog_bitbake
[1] http://openocd.zylin.com/#/c/5976/
[2] http://openocd.zylin.com/#/c/5975/
--
Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software!
mailto:fercerpav@gmail.com
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-01-15 10:46 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-13 22:29 [PATCH v29 0/6] JTAG driver introduction Ernesto Corona
2020-04-13 22:29 ` Ernesto Corona
2020-04-13 22:29 ` Ernesto Corona
2020-04-13 22:29 ` [PATCH v29 1/6] drivers: jtag: Add JTAG core driver Ernesto Corona
2020-04-13 22:29 ` Ernesto Corona
2020-04-13 22:29 ` Ernesto Corona
2021-01-15 11:18 ` Paul Fertser
2021-01-15 11:18 ` Paul Fertser
2021-01-15 11:18 ` Paul Fertser
2020-04-13 22:29 ` [PATCH v29 2/6] dt-binding: jtag: Aspeed 2400 and 2500 series Ernesto Corona
2020-04-13 22:29 ` Ernesto Corona
2020-04-13 22:29 ` Ernesto Corona
2021-01-19 12:04 ` Paul Fertser
2021-01-19 12:04 ` Paul Fertser
2021-01-19 12:04 ` Paul Fertser
2020-04-13 22:29 ` [PATCH v29 3/6] Add Aspeed SoC 24xx and 25xx families JTAG master driver Ernesto Corona
2020-04-13 22:29 ` Ernesto Corona
2020-04-13 22:29 ` Ernesto Corona
2020-09-28 2:17 ` Moritz Fischer
2020-09-28 2:17 ` Moritz Fischer
2020-09-28 2:17 ` Moritz Fischer
2021-01-15 11:53 ` Paul Fertser
2021-01-15 11:53 ` Paul Fertser
2021-01-15 11:53 ` Paul Fertser
2020-04-13 22:29 ` [PATCH v29 4/6] Documentation: jtag: Add ABI documentation Ernesto Corona
2020-04-13 22:29 ` Ernesto Corona
2020-04-13 22:29 ` Ernesto Corona
2021-01-19 12:01 ` Paul Fertser
2021-01-19 12:01 ` Paul Fertser
2021-01-19 12:01 ` Paul Fertser
2020-04-13 22:29 ` [PATCH v29 5/6] Documentation jtag: Add JTAG core driver ioctl number Ernesto Corona
2020-04-13 22:29 ` Ernesto Corona
2020-04-13 22:29 ` Ernesto Corona
2020-04-13 22:29 ` [PATCH v29 6/6] drivers: jtag: Add JTAG core driver Maintainers Ernesto Corona
2020-04-13 22:29 ` Ernesto Corona
2020-04-13 22:29 ` Ernesto Corona
2020-04-14 9:15 ` Andy Shevchenko
2020-04-14 9:15 ` Andy Shevchenko
2020-04-14 9:15 ` Andy Shevchenko
2021-01-15 10:46 ` Paul Fertser [this message]
2021-01-15 10:46 ` [PATCH v29 0/6] JTAG driver introduction Paul Fertser
2021-01-15 10:46 ` Paul Fertser
2021-04-06 13:22 ` Andy Shevchenko
2021-04-06 13:22 ` Andy Shevchenko
2021-04-06 13:22 ` Andy Shevchenko
2021-04-06 13:34 ` Paul Fertser
2021-04-06 13:34 ` Paul Fertser
2021-04-06 13:34 ` Paul Fertser
2021-04-06 17:00 ` Corona, Ernesto
2021-04-06 17:00 ` Corona, Ernesto
2021-04-06 17:00 ` Corona, Ernesto
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210115104635.GA2971@home.paul.comp \
--to=fercerpav@gmail.com \
--cc=linux-aspeed@lists.ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.