[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAPLgG==Jj=Ys=SvhOCspSfunbWnuqPySvW9RfuqE8HYnG4C=ZQ@mail.gmail.com>
Date: Thu, 24 Aug 2017 14:37:06 -0700
From: Rick Altherr <raltherr@...gle.com>
To: Linus Walleij <linus.walleij@...aro.org>
Cc: Oleksandr Shamray <oleksandrs@...lanox.com>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
jiri@...nulli.us, Arnd Bergmann <arnd@...db.de>,
system-sw-low-level@...lanox.com,
Greg KH <gregkh@...uxfoundation.org>,
OpenBMC Maillist <openbmc@...ts.ozlabs.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
openocd-devel-owner@...ts.sourceforge.net, mec@...ut.net,
Rob Herring <robh+dt@...nel.org>,
"linux-serial@...r.kernel.org" <linux-serial@...r.kernel.org>,
vadimp@...llanox.com, Tobias Klauser <tklauser@...tanz.ch>,
"linux-api@...r.kernel.org" <linux-api@...r.kernel.org>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>
Subject: Re: [patch v6 0/3] JTAG driver introduction
On Thu, Aug 24, 2017 at 2:07 PM, Linus Walleij <linus.walleij@...aro.org> wrote:
> On Tue, Aug 22, 2017 at 6:10 PM, Oleksandr Shamray
> <oleksandrs@...lanox.com> wrote:
>
>> SoC which are not equipped with JTAG master interface, can be built
>> on top of JTAG core driver infrastructure, by applying bit-banging of
>> TDI, TDO, TCK and TMS pins within the hardware specific driver.
>
> I guess you mean it should then use GPIO lines for bit-banging?
>
> I was wondering about how some JTAG clients like openOCD does
> this in some cases.
>
Many common uses of OpenOCD leverage USB devices, such as FTDI FT232R,
that have a command queue for bitbanging operations. Managing these
via libusb is ugly but platform-agnostic.
> In my worst nightmare they export GPIO lines using
> the horrid ABI in /sys/gpio/*
>
https://sourceforge.net/p/openocd/code/ci/v0.10.0/tree/src/jtag/drivers/sysfsgpio.c
While that is certainly horrible (and slow), mapping in the GPIO
registers via /dev/mem strikes me as worse:
https://sourceforge.net/p/openocd/code/ci/v0.10.0/tree/src/jtag/drivers/bcm2835gpio.c
> In best case they use the GPIO character device or even
> libgpiod.
>
> But having a JTAG abstraction inside the kernel that can
> grab a few lines for JTAG defined in a device tree, ACPI DSDT
> or similar makes sense too, as it abstracts the hardware so the
> JTAG client can then just open whatever /dev/jtag0 is on the machine
> and go ahead without having to bother about what GPIO lines
> are connected exactly where.
>
> Yours,
> Linus Walleij
Powered by blists - more mailing lists