Old machines new kernels

Richard B. Johnson (root@analogic.com)
Thu, 5 Jun 1997 23:42:07 -0400 (EDT)


I have been getting a lot of flak on this. I did not propose that
working code ever be removed from the new kernels. Instead, after
about 60 hours of work, on a machine that ran fine for over 3 years
with an old kernel, but won't work with a new one, I proposed that
the fact that these new kernels won't work with old '386 hardware
should be exposed so that naive persons like myself, who are taught
that new kernels are "improvements", would not waste a lot of time
upgrading a machine, only to find out that the interrupt scheme was
changed so that it is impossible for these old machines to work.

Many old '386s have true 8259 interrupt controllers which can't work
if the cascade is set for level operation. This is why IBM retained
edge operation. Newer 8259 clones don't care. It is possible for the
old controllers to work if I changed the kernel code to send a
SPECIFIC end-of-interrupt to the respective controllers, i.e.
0x60 | interrupt_number. The kernel uses 0x20 (non-specific) for
everything. What happends is the higher-order (lower priority) IRQs never
get acked because, as far as the 8259 is concerned, there is most always
a higher-priority interrupt in the cascade.

Cheers,
DJ
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Richard B. Johnson
Analogic Corporation
Email : rjohnson@analogic.com, johnson@analogic.com
Penguin : Linux version 2.1.42 on an i586 machine (66.15 BogoMips).
Warning : It's hard to stay on the trailing edge of technology.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-