[nisimura-pmax-wscons] branch and suggestions from Toru Nisimura:
- Remove bogus tc_slot_info[] name for interrupt handling array
and replace with simplified struct intrhand intrtab[] array.
- Add intr_establish() and intr_disestablish() function pointers
to struct platform and initialise this in each model-specific
initialisation, and remove global tc_enable_interrupt function
pointer.
- Remove model-specific function declarations from ibus/ibusvar.h.
This is functionally identical to the current scheme, and doesn't
yet try to commonise interrupt establishment by bus type as the
[nisimura-pmax-wscons] branch does.
Also, move cpuspeed variable from autoconf.c to machdep.c
The original code lowers level 6 to 4, and if a
clock interrupt occurs in splzs (or similar) the
system may be in unpredictable state.
To do such a hack correctly, checking the original priority
and duplicated clock interrupts would be required.
For now, just disable the hack.
- Do not use clock interrupt for ms polling.
needed to deal with disabled nodes
-Parse "fixed io descriptors". Their use in nonsense in principle
because 10-bit decoding is implied. Hope this is not real...
-Tolerate mismatches between node size and actually used space
as long as the used size is smaller than the buffer size. There
is at least one broken BIOS which reports node sizes larger than
the used one, and windows obviously doesn't complain...
Distclean does that, plus removes other files windows is likely to
generate to make things unclean (.opt workspace options files, as well
as automatically updated versions of .dsp/.dsw files). This means
that if you distclean: your workspace options may be reset to the defaults
(hey, you did tell it to clean everything out!), and any modifications
that you incorrectly made to the .dsp/.dsw files w/o using the templates
and UNIX-based auto-generation will be clobbered.
I've fixed the problem that's been keeping me from using anything newer than
1.4.1 now. I tracked down the problem checkin, it's the big reorg of
nextdma.c between 1.19 and 1.20. It didn't introduce a new bug but it
activated a check which wasn't activated before. It's the
is-the-limit-in-the-right-window-check which was ifdeffed before because
some DMA-regs would sometimes have strange values. I think I've fixed the
DMA-reg stuff for now: at the end of nextdma_intr, when the csr is poked
to make DMA do something, I think the check for the ENABLE bit introduces a
race condition. I fixed this by unconditionally setting DMACSR_SETENABLE,
this seems to work and also makes the code more readable. I've also tried
setting DMACSR_SETSUPDATE unconditionally and this also works well, but I
don't know what it implies. Unless you have reasons to not set SUPDATE all
the time, I'd suggest making this change as well, it makes the code cleaner
and faster...
I've tested this patch and it does stop the panics, although I don't think setting
SUPDATE all the tima as he suggests is a good idea. The "SUPDATE" bit implies
a single update (i.e. the end of a dma chain.)
to automatically generate project (.dsp) and workspace (.dsw) files
from configuration scripts for the bits that have to be built
on windows. you build by saying 'make winfiles' here in stand,
then check in (on UNIX). The versions that windows sees have to have
CR-NL line termination, so for proper use with samba the generated
files contain CRs and must be checked in on UNIX (NOT from Windows
CVS).