Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Nov 2014 13:35:25 -0500
From:      Alexander Kabaev <kabaev@gmail.com>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        FreeBSD Hackers <freebsd-hackers@freebsd.org>, "O'Connor, Daniel" <darius@dons.net.au>
Subject:   Re: Newbus question
Message-ID:  <20141115133525.51a25bfa@kan>
In-Reply-To: <20141115180302.GL17068@kib.kiev.ua>
References:  <EE77EB4C-E317-4EAB-9319-18F0B292571F@dons.net.au> <20141115121730.3a5bac94@kan> <20141115180302.GL17068@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
--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 <kostikbel@gmail.com> 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" <darius@dons.net.au> 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 <missing text>
> > >=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--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20141115133525.51a25bfa>