3c59x with linuxppc
Andreas Tobler
toa@pop.agri.ch
Mon May 8 14:47:29 2000
Bogdan Costescu wrote:
>
> On Sat, 6 May 2000, Andreas Tobler wrote:
>
> > In vortex_timer I had the blocker. At the end of the function I put the
> > following snippet in an if clause as it was before the patch. Doing so,
> > the machine doesn't hang anymore.
> >
> > if (next_tick) { <---- added by me
> > vp->timer.expires = RUN_AT(next_tick);
> > add_timer(&vp->timer);
> > } <---- added by me
>
> I don't quite understand how you got into this situation, because my
> source has these lines in it... I downloaded the whole driver (not the
> patch) - so there might be the difference. Please note that 0.99H that
> comes with kernels up to 2.2.15 is different from "clean" 0.99H that you
> get from Mr. Becker's site (timer handling included).
>
???
I got the patch first, then the driver itself. Both are missing these
lines.
And at last I got the 2.2.15 vanilla and patched with Alan's 2.2.16pre2.
Also missing these lines.
> On the other hand, I don't know why it gets there. next_tick is
> initialized ( 0 ) in the first lines of vortex_timer, but it should be set
> by the media handling according to the media table. Can you run the driver
> with vortex_debug > 2 and send the logs produced by vortex_timer?
Debug set to three.
May 8 20:38:52 pm7200 kernel: 3c59x.c:v0.99H 11/17/98 Donald Becker
http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html
May 8 20:38:52 pm7200 kernel: The PCI BIOS has not enabled the device
at 0/104. Updating PCI command 0004->0005.
May 8 20:38:52 pm7200 kernel: eth1: 3Com 3c590 Vortex 10Mbps at 0x480,
00:a0:24:7e:38:ab, IRQ 23
May 8 20:38:52 pm7200 kernel: Internal config register is 1020010,
transceivers 0xe138.
May 8 20:38:52 pm7200 kernel: 8K byte-wide RAM 5:3 Rx:Tx split,
10baseT interface.
May 8 20:38:52 pm7200 kernel: eth1: Overriding PCI latency timer (CFLT)
setting of 32, new value is 248.
May 8 20:38:52 pm7200 kernel: The PCI BIOS has not enabled the device
at 0/120. Updating PCI command 0014->0015.
May 8 20:38:52 pm7200 kernel: eth2: 3Com 3c905B Cyclone 100baseTx at
0x400, 00:50:da:43:59:fd, IRQ 25
May 8 20:38:52 pm7200 kernel: Internal config register is 1800000,
transceivers 0xa.
May 8 20:38:52 pm7200 kernel: 8K byte-wide RAM 5:3 Rx:Tx split,
10baseT interface.
May 8 20:38:52 pm7200 kernel: Enabling bus-master transmits and
whole-frame receives.
May 8 20:38:52 pm7200 kernel: Partition check:
May 8 20:38:52 pm7200 kernel: sda: sda1 sda2 sda3 sda4 sda5 sda6 sda7
May 8 20:38:52 pm7200 kernel: sdb: sdb1 sdb2 sdb3 sdb4 sdb5 sdb6 sdb7
sdb8
May 8 20:38:52 pm7200 kernel: VFS: Mounted root (ext2 filesystem)
readonly.
May 8 20:38:52 pm7200 kernel: Freeing unused kernel memory: 144k init
32k prep
May 8 20:38:52 pm7200 kernel: Adding Swap: 100412k swap-space (priority
-1)
May 8 20:39:04 pm7200 kernel: nfsd_fh_init : initialized fhcache,
entries=1024
May 8 20:39:51 pm7200 kernel: eth1: Initial media type 10baseT.
May 8 20:39:51 pm7200 kernel: eth1: vortex_open() InternalConfig
01020010.
May 8 20:39:51 pm7200 kernel: eth1: vortex_open() irq 23 media status
8800.
May 8 20:39:53 pm7200 kernel: eth1: Media selection timer tick
happened, 10baseT.
May 8 20:39:53 pm7200 kernel: eth1: Media 10baseT has link beat, 88c0.
May 8 20:39:53 pm7200 kernel: eth1: Media selection timer finished,
10baseT.
---> nothing more
> (One should appear very soon after the driver initialization and others
> every 1 minute - if things are working as they should...)
> A working vortex_timer (i.e. one that sets this variable correctly) is
> important for media change handling; what you have done with these lines
> is avoiding updating with wrong data - but we need to find out how that
> wrong data was produced. In your case, I would say that the timer is not
> updated, meaning that vortex_timer will not be run a second time... And
> there is a place in vortex_interrupt with a comment like this:
>
> /* The timer will reenable interrupts. */
>
> Only if it runs 8-)
Have to study the code again.
>
> > But one more Q I have, why does this blocks only me with PPC and not the others?
>
> The reason should be obvious now. 8-)
> Are you able to run the new driver (with spinlocks) with your
> modification?
My mods are the insl/outsl raplacements for PPC and the two lines above.
Means yes with spinlocking etc. (driver for kernel 2.2)
Thanks so far,
and best Regards,
Andreas
-------------------------------------------------------------------
To unsubscribe send a message body containing "unsubscribe"
to linux-vortex-request@beowulf.org