[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).
bus_space_map for PCI memory.
The mapping of system devices and I/O space has been shuffled to place them
at the top of memory leaving a larger contiguous chunk between the kernel
itself and the I/O mappings for the kernel VM area. This allows support
for kernel VM areas > 48MB.
The 144MB fixed mapping of early PCI memory space has been removed and a
new version of the bus_space_map() function has been implemented to map
PCI memory into the kernel VM area as required rather than using the fixed
mapping.
A mapping of the first 1MB of PCI memory is maintained for ISA memory
accesses and accesses to the VGA memory.
hardware rework, so it doesn't need to be listed as ncr*. However,
this could also be thought of as covering up a (new?) bug in the
probe/attach code that has recently decided that there are at least
ncr0 and ncr1 with the same interrupt and address mappings. So
this change is just to let people build kernels that don't panic
at boot time...
There, is that a long winded commit message or what?
and product IDs for a podule to be overriden. The IDs are specified in hex.
A value of "ffff" means disable and replaces the podule?.disable option.
This allows podules whose IDs have been changed e.g. by PowerROMs to still
have the correct driver attached.
Based on my original patch but tided up and debugged by Stephen Hobbs.