From: Lu Baolu <baolu.lu@linux.intel.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Mathias Nyman <mathias.nyman@linux.intel.com>,
Ingo Molnar <mingo@redhat.com>,
tglx@linutronix.de, linux-usb@vger.kernel.org, x86@kernel.org,
linux-kernel@vger.kernel.org, Jiri Slaby <jslaby@suse.cz>
Subject: Re: [PATCH v5 1/4] usb: dbc: early driver for xhci debug capability
Date: Thu, 26 Jan 2017 11:37:35 +0800 [thread overview]
Message-ID: <58896EFF.7030900@linux.intel.com> (raw)
In-Reply-To: <20170125161644.GT6515@twins.programming.kicks-ass.net>
Hi,
On 01/26/2017 12:16 AM, Peter Zijlstra wrote:
> On Wed, Jan 25, 2017 at 11:51:34PM +0800, Lu Baolu wrote:
>
>>> What is timeout and why?
>> Put it in simple:
>>
>> The driver sets the RUN bit in control register and polls READY
>> bit in status register for the successful USB device enumeration.
>> As the USB device enumeration might fail and the READY bit will
>> never be set, the driver must have a timeout logic to avoid
>> endless loop.
>>
>> More details:
>>
>> The operational model is that driver sets up all necessary registers
>> and data structures, and then starts the debug engine by setting
>> the RUN/STOP bit in the control register.
>>
>> The debug engine then brings up itself as a ready-for-enumeration
>> USB device. The USB link between host and device starts link training
>> and then host will detect the connected device. The hub driver in
>> host will then starts the USB device enumeration processes (as defined
>> in USB spec). If everything goes smoothly, the device gets enumerated
>> and host can talk with the debug device.
>>
>> After that, xdbc firmware will set the READY bit in status register. And
>> the driver can go ahead with data transfer over USB.
> I have vague memories from a prior discussion where you said this READY
> state can be lost at any time (cable unplug or whatnot) and at that
> point the driver should re-start the setup, right?
Yes. So the documentation requires users not to unplug the usb
cable during debugging. This rule applies to other debug methods
as well.
>
>>> If there is an error other than !ready, I would
>>> expect the hardware to inform you of this through another status bit,
>>> no?
>> Yeah, this might be another choice of hardware design. But it's not a
>> topic for this driver.
> So is there really no way to way to distinguish between "I did setup and
> am waiting for READY", "I did setup, am waiting for READY, but things
> got hosed" and "I was READY, things be hosed" ?
>
> I suppose the first and last can be distinguished by remembering if you
> ever saw READY, but the first and second are the interesting case I
> think.
>
>>> So why can't you poll indefinitely for either ready or error?
>>>
>> Even if the hardware has both ready and error status bits, it's still
>> nice to have a time out watch dog. Buggy hardware or firmware
>> might not set any of these bits. Polling indefinitely might result in
>> a endless loop.
> Loosing output, esp. without indication, is very _very_ annoying when
> you're debugging things. Its just about on par with a stuck system, at
> least then you know something bad happened.
Fair enough.
USB connection is stable enough, unless the user unplugs the
USB cable during debugging.
Best regards,
Lu Baolu
next prev parent reply other threads:[~2017-01-26 3:37 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-15 6:02 [PATCH v5 0/4] usb: early: add support for early printk through USB3 debug port Lu Baolu
2016-11-15 6:02 ` [PATCH v5 1/4] usb: dbc: early driver for xhci debug capability Lu Baolu
2017-01-19 9:37 ` Ingo Molnar
2017-01-20 2:47 ` Lu Baolu
2017-01-22 9:04 ` Ingo Molnar
2017-01-24 4:44 ` Lu Baolu
2017-01-24 8:20 ` Ingo Molnar
2017-01-25 5:28 ` Lu Baolu
2017-01-25 9:23 ` Ingo Molnar
2017-01-25 9:57 ` Peter Zijlstra
2017-01-25 12:27 ` Lu Baolu
2017-01-25 14:38 ` Peter Zijlstra
2017-01-25 15:51 ` Lu Baolu
2017-01-25 16:16 ` Peter Zijlstra
2017-01-26 3:37 ` Lu Baolu [this message]
2017-01-26 7:19 ` Ingo Molnar
2017-01-26 7:49 ` Lu Baolu
2017-01-26 8:17 ` Ingo Molnar
2017-01-26 10:28 ` Peter Zijlstra
2017-01-26 16:01 ` Ingo Molnar
2017-01-26 17:39 ` Peter Zijlstra
2017-01-27 6:51 ` Ingo Molnar
2017-02-09 5:59 ` Lu Baolu
2017-01-26 7:22 ` Ingo Molnar
2017-02-09 7:37 ` Lu Baolu
2017-01-25 12:17 ` Lu Baolu
2017-01-26 3:26 ` Lu Baolu
2016-11-15 6:02 ` [PATCH v5 2/4] x86: add support for earlyprintk via USB3 debug port Lu Baolu
2017-01-19 9:38 ` Ingo Molnar
2017-01-20 2:48 ` Lu Baolu
2016-11-15 6:02 ` [PATCH v5 3/4] usb: serial: usb_debug: add support for dbc debug device Lu Baolu
2017-01-19 9:39 ` Ingo Molnar
2017-01-20 2:50 ` Lu Baolu
2016-11-15 6:02 ` [PATCH v5 4/4] usb: doc: add document for USB3 debug port usage Lu Baolu
2017-01-19 9:41 ` Ingo Molnar
2017-01-20 2:53 ` Lu Baolu
2017-01-18 6:20 ` [PATCH v5 0/4] usb: early: add support for early printk through USB3 debug port Lu Baolu
2017-01-19 9:06 ` Greg Kroah-Hartman
2017-01-19 9:09 ` Ingo Molnar
2017-01-19 11:24 ` Mathias Nyman
2017-01-19 9:12 ` Ingo Molnar
2017-01-20 2:56 ` Lu Baolu
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=58896EFF.7030900@linux.intel.com \
--to=baolu.lu@linux.intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=jslaby@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mathias.nyman@linux.intel.com \
--cc=mingo@kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=x86@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).