Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 May 1997 21:55:52 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        ache@nagual.pp.ru, bde@zeta.org.au
Cc:        current@freebsd.org, phk@freebsd.org
Subject:   Re: What happens with sio?
Message-ID:  <199705211155.VAA21927@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>Now I always got this diagnostic at reboot stage after installing recent
>-current...

>May 20 23:21:43 nagual /kernel: sio1: 65 events for device with no tp

The new fifo size detection code generates an interrupt although all
device interrupts are masked.  This happens because it doesn't preserve
the MCR_IENABLE bit when enabling and disabling loopback mode.  The IRQ
usually floats high, causing an interrupt.

The interrupt handler finds work to do because the new code is sloppy
about cleaning up (65 + 64 + 1 = 1 output completion + 1 character
received).  The sloppyness is not a bug, it just makes detection of the
problem easy by forcing some events which get reported by diagnostic
code.

There is no real problem in this case.  Interrupts are masked in the ICU
until the device is fully initialized.  This prevents problems when the
loopback mode is set. Resetting the mcr to 0 instead of restoring it to
com->mcr_image is what leaves a hot interrupt.  The mismatch between the
mcr and its image is fixed up on first open by believing that the image
is correct.

Bruce



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