Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 06 Aug 2008 10:34:40 +0100
From:      Gavin Atkinson <gavin@FreeBSD.org>
To:        Alexandre Biancalana <biancalana@gmail.com>
Cc:        stable@FreeBSD.org, brian@FreeBSD.org
Subject:   Re: DigiBoard Xem with 2 extenal modules
Message-ID:  <1218015280.17311.11.camel@buffy.york.ac.uk>
In-Reply-To: <8e10486b0808040949ka12edf0o38e3a790d620992e@mail.gmail.com>
References:  <8e10486b0807030908i4c6f70bbp3f8e8907c7443259@mail.gmail.com> <1215105220.32135.18.camel@buffy.york.ac.uk> <8e10486b0807031041o54349836i31c5da84ebda70f6@mail.gmail.com> <1215176991.36376.24.camel@buffy.york.ac.uk> <8e10486b0807040834m27a38254k5261535d93d70ce6@mail.gmail.com> <8e10486b0808040949ka12edf0o38e3a790d620992e@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 2008-08-04 at 13:49 -0300, Alexandre Biancalana wrote:
> On 7/4/08, Alexandre Biancalana <biancalana@gmail.com> wrote:
> > On 7/4/08, Gavin Atkinson <gavin@freebsd.org> wrote:
> >  >  It's not a solution, but it may well be a great help in diagnosing where
> >  >  the problem lies:  it would be useful to know if the driver is simply
> >  >  failing to detect the correct number of ports, or if the driver
> >  >  physically cannot use them.
> >  >
> >  >  In /usr/src/sys/dev/digi/digi.c, line 510, you'll see the following
> >  >  code:
> >  >
> >  >         if (sc->numports == 0) {
> >  >               device_printf(sc->dev, "%s, 0 ports found\n", sc->name);
> >  >               sc->hidewin(sc);
> >  >               return (0);
> >  >         }
> >  >
> >  >  Just before that section, can you add a line "sc->numports = 32;",
> >  >  recompile, and see if the missing 16 ports are usable?  If they are, I
> >  >  suspect fixing the driver will be trivial.
> >
> >
> > Wow !! Now the 32 ports are detected and devices created.
> >
> >  # digictl -d 1 -r /dev/digi0.ctl
> >
> > digi0: Got init reset after 0 us
> >  digi0: BIOS uploaded
> >  digi0: BIOS started after 0 us
> >
> > digi0: BIOS booted after 1619 iterations
> >
> > digi0: Loading FEP/OS
> >  digi0: FEP/OS loaded
> >  digi0: FEP/OS started after 28 iterations
> >
> > digi0: Digiboard PCI PC/Xem ASIC, 32 ports found
> >
> >  # ls /dev/cuaD?? | wc -l
> >       32
> >
> >  I will connect some modems to that ports to test and let you know.
> 
> Modems connected but they only work on ports of the first module, any
> decice connected on ports of second module does not work.
> 
> Any other idea ?

Sadly, I'm all out of ideas.  If, with the change above, the ports were
usable then it would have meant that the problem was around the code
that configures the card and detects the number of ports.  As the ports
don't work even after forcing the number, it is possible that the driver
simply does not support more than 16 ports at the moment.

Unless you can get hold of a developer who knows the hardware (I've cc'd
Brian as a possible person who fits this category), or are able to
obtain the datasheets yourself, I think the only solution may be to
compare the Linux driver to ours and see if it does anything differently
during initialisation (especially before the code to detect the number
of ports).

Gavin



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