Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Dec 2008 11:50:24 +0300
From:      Eygene Ryabinkin <rea-fbsd@codelabs.ru>
To:        Marcel Moolenaar <xcllnt@mac.com>
Cc:        Boris Samorodov <bsam@ipt.ru>, freebsd-current@FreeBSD.org
Subject:   Re: Timeda 8-multiport adapter: only 2 ports available
Message-ID:  <u86IhinAe98poBxKoJlfe3b/pNw@TT2a40bhZF2dUby2PPEihZ1bSVY>
In-Reply-To: <19F75E66-0535-4982-9726-E2C0A03117EA@mac.com>
References:  <92804393@bb.ipt.ru> <26722819@bb.ipt.ru> <dgryeQY4GEVsW/%2Bo7hiHda0rsyw@Nv45r0f9gWT8HCu35qu0Xm2Zg98> <26719629@bb.ipt.ru> <19F75E66-0535-4982-9726-E2C0A03117EA@mac.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--SkvwRMAIpAhPCcCJ
Content-Type: text/plain; charset=koi8-r
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Marcel, Boris, good day.

Wed, Dec 10, 2008 at 05:00:24PM -0800, Marcel Moolenaar wrote:
> > Seems that just the same card should work:
> > http://lists.freebsd.org/pipermail/freebsd-stable/2008-May/042505.html
> >
> > I've added some diagnistic. But 'rid' is not what you want, I guess:
>
> The RID is fine. It should always be 0.

Seems like a dumb question, but nevertheless.

What I don't understand is the following: BAR to port mapping for
the Timedia is tricky, it mixes BARs and offsets for the different
ports (you should know this, since you wrote the support ;)).

But in uart_bus_probe you're passing rid =3D 0 and it is used for resource
allocation and consequently the same rid is used for all ports (at least
I read the code in this way).  But puc_get_bar() uses calculated rid
values, but does essentially the same thing: resource allocation via
bus_alloc_resource().  And sc->sc_bas is initialized from the obtained
sc->sc_rres (inside uart_bus_probe) and it is subsequently used for
ns8250_probe() that is failing.

I see that uart_bus_pci.c calls uart_bus_probe() with the actual rid.
It does not mean that puc code should do the same, but ...

Boris, could you please add the line
-----
printf("%s: BAS, handle is 0x%lx, tag is 0x%x\n", __func__,
    (unsigned long)bas->bsh, (unsigned int)bas->bst);
-----
to the beginning of ns8250_probe() and show the results.

Thanks!
--=20
Eygene
 _                ___       _.--.   #
 \`.|\..----...-'`   `-._.-'_.-'`   #  Remember that it is hard
 /  ' `         ,       __.--'      #  to read the on-line manual  =20
 )/' _/     \   `-_,   /            #  while single-stepping the kernel.
 `-'" `"\_  ,_.-;_.-\_ ',  fsc/as   #
     _.-'_./   {_.'   ; /           #    -- FreeBSD Developers handbook=20
    {_.-``-'         {_/            #

--SkvwRMAIpAhPCcCJ
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (FreeBSD)

iEYEARECAAYFAklA1FAACgkQthUKNsbL7YiBXQCgnOuvK3iWtbSIJA2Bti+7CF0Z
DpcAni17Xm64G5S/gq5Va7xjmaB8ENQD
=JoL1
-----END PGP SIGNATURE-----

--SkvwRMAIpAhPCcCJ--



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