From owner-freebsd-hackers@FreeBSD.ORG Sat Nov 15 18:35:33 2014 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5608AA52 for ; Sat, 15 Nov 2014 18:35:33 +0000 (UTC) Received: from mail-qc0-x22d.google.com (mail-qc0-x22d.google.com [IPv6:2607:f8b0:400d:c01::22d]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0904B873 for ; Sat, 15 Nov 2014 18:35:33 +0000 (UTC) Received: by mail-qc0-f173.google.com with SMTP id i17so412711qcy.4 for ; Sat, 15 Nov 2014 10:35:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-type; bh=tLxVnntU5kKPoNRp8hf0UTPPi8SKvibGzPawK8cmSOY=; b=h/2lfnLBc5yry8ADKPM499cSVPOD1kipPAtmZ5fwHbfsU1CTMuemd8vtna5Hl20QSb HrqeCA0ZmIuOkVbjqfLbCts1SCE6BRP8DSBYXFAS5eTqlGktAjs7DkNDHENvsbYezsqi 1ekD0P+L1vOid9hlA3zUHvSz4TiMVOvIkR7oUZ+nZH0kXSLuSE+3t2KZCcRdR9C8Z77E vFUZkfziVFWGqZ5jA2WMd/9Dj7x2FLI29zCFxB4zZdfGvdZ7Ukup9pgIgyCDXo3k26f1 2Va18oZtZrv0hcYKLMs5f1gxnLo3mY+WenrPXzjySsar7CCSN9CMYk62frKgzCYe0PKW PQow== X-Received: by 10.140.109.102 with SMTP id k93mr20717480qgf.83.1416076532187; Sat, 15 Nov 2014 10:35:32 -0800 (PST) Received: from kan ([2601:6:6780:7e0:226:18ff:fe00:232e]) by mx.google.com with ESMTPSA id e2sm26577728qaw.10.2014.11.15.10.35.31 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 15 Nov 2014 10:35:31 -0800 (PST) Date: Sat, 15 Nov 2014 13:35:25 -0500 From: Alexander Kabaev To: Konstantin Belousov Subject: Re: Newbus question Message-ID: <20141115133525.51a25bfa@kan> In-Reply-To: <20141115180302.GL17068@kib.kiev.ua> References: <20141115121730.3a5bac94@kan> <20141115180302.GL17068@kib.kiev.ua> X-Mailer: Claws Mail 3.11.1 (GTK+ 2.24.22; amd64-portbld-freebsd11.0) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; boundary="Sig_/zdH5dEGZSdVN.dvL+KgPvlK"; protocol="application/pgp-signature" Cc: FreeBSD Hackers , "O'Connor, Daniel" X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Nov 2014 18:35:33 -0000 --Sig_/zdH5dEGZSdVN.dvL+KgPvlK Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Sat, 15 Nov 2014 20:03:02 +0200 Konstantin Belousov wrote: > On Sat, Nov 15, 2014 at 12:17:30PM -0500, Alexander Kabaev wrote: > > On Sat, 15 Nov 2014 17:32:39 +1030 > > "O'Connor, Daniel" wrote: > >=20 > > > Hi, > > > I am trying to write a driver for the EHCI debug port [1]. I found > > > some userland code which I got working (written by the person who > > > did the Linux version) and now I am trying to get it running in > > > the kernel. One problem I have is that it needs to run in > > > parallel with the normal EHCI controller. It uses the same BAR as > > > the EHCI controller but offset (the offset is found in a PCI > > > capability). I think I can bus_alloc_resource() if I change EHCI > > > to allocate with RF_SHAREABLE but my first problem is to add > > > another device so my driver doesn't contest with the EHCI driver. > > >=20 > > > Currently I have a module which loops over bus/slot/func using > > > find_bsf (is there a way to enumerate all connected PCI devices?) > > > and then check each for the debug capability (I plan on being a > > > bit pickier later but it works so far) then creating a child > > > device. The problem is that the probe routine > > >=20 > >=20 > > Hi, > >=20 > > I do not think this can be done without cooperation of the ECHI > > device. You'd have to go the way of the full parent/child > > relationship between ehci parent and debug port child devices. > > Fortunately, this is not that hard to do and you can even define > > your own devmethod interfaces to make communication between debug > > port decoupled, so that debug port can be loaded and unloaded > > independently. The echi device already manages one child usbus > > device, adding another should not be too hard. >=20 > I think that debugging should be available much earlier than the > device tree is explored and devices are attached. It probably makes > sense to operate the debugging port outside the newbus at all, in > particular, before the pci and acpi machinery is initialized. >=20 > You might want a callback from ehci driver when it appropriated the > resources, to handle the case of bar realocation. If one wants early debugger, then whole thing will need to be split into pre-newbus and after-newbus part, similar to dcons. --=20 Alexander Kabaev --Sig_/zdH5dEGZSdVN.dvL+KgPvlK Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iD8DBQFUZ5zyQ6z1jMm+XZYRArBYAKCPkMvxTCPipwB+JrmkIWXJtqhmgwCeJBiY fN2PO89HbxB7Pha4Ex9QJSU= =zG0Q -----END PGP SIGNATURE----- --Sig_/zdH5dEGZSdVN.dvL+KgPvlK--