in the branch-emulation code was uninitialized, due to a misplaced #endif.
Remove the relevant #ifdef (macro version of GetBranchDest), and move the
XXX note about r4000 branch targets to the function definition.
serial consoles to the 1.2 branch. Includes:
* dynamically allocated new-config softc
* remove dependencies on Decstation CPU type, use flags in softc instead.
* pass in values for softc flags (q.v.) from parent-specific attach code
* #ifdef out rts/cts flow control support until it's known to work on
200s.
* redo initialization of serial consoles (needs more work).
The Lite2 changes include:
* Remove the last vestiges of high-bit-set-means-delay for output chars.
* Handle the 2100/3100 having partial modem control on line 2 only,
whereas the 5000/200 has modem control signals on lines 2 and 3.
* Add RTS/CTS support for lines 2 and 3 on a 5000/200.
* Add more s = spltty(); splx(s); where needed but not present.
is disabled by default:
>revision 1.9.4.2
>date: 1996/09/09 20:19:11; author: thorpej; state: Exp; lines: +2 -18
>Disable IOASIC_DEBUG so that autoconfiguration looks normal, by request
>of Jonathan Stone
as a console, initalize as white-on-black so console messages are legible.
(Sean Davidson reports that rcons still messes up the display, perhaps
due to using the wrong pixel depth).
1. Start at the specified entry instead of entry 0.
2. Use the blue value instead of the green when setting the blue color entry.
3. Don't use the starting index again for storing the saved entry - the cmap
pointer was previously initialized using the starting index. This fixes
a hard hang on the maxine when console output is done after calls to
set the color map (usually by the X server).
* Add changes needed/used to build 1.2 GENERIC kernel:
* Delete obsolete and ambiguous DS5000 option.
* Add CPU_R3000 which is now required to compile in mips1 locore support.
* Add an explicit declaration of HZ.
* back out COMPAT_12 for this revision.
a char *, because that's what was really intended, and because
if the print function modifies the string, various things could become
unhappy (so the string should _not_ be modified).
* Add interrupt handler for 3MIN, where we cannot disable TC slot interrupts.
* Change mfbinit() signature to match other (pmax) TC framebuffer init
routines.
* TODO after 1.2: add {cfb,mbf,sfb}var.h. Declare init functions there.
* Make S expand to an absolute path at compile time.
* Use `-S' rather than `-x' to remove debugging symbols.
* Garbage collect unused variables.
* Reverse a handful of port-specific changes that do not correspond to
the common build model and are not needed.
a boot string for firmware that can do this, such as the SPARC and
the sun3 models. It is currently silently ignored on all other
hardware now, however. The MD function "boot()" has been changed to
also take a char *.
message-in. The remaining transfer count restored when a device is
reselected needs to be saved. The saved value is needed to compute
the number of bytes transferred if another disconnect occurs. This
fixes a random read data corruption that occurs on certain disks that
may disconnect more than once in the middle of a DMA transfer.
physical memory is sized by a loop that writes data to the first
word in a page, (writes something else to settle the bus) and then reads
back the word it wrote. If the read succeeds, the amount of physical
memory is increased by one page.
This fails on a 5000/1xx with a memory subsystem filled with 8 low-density
(4Mbyte) SIMMs. The memory-decoding hardware aliases the 32Mbytes of
physical memory at physical addresses 0, and at 32M (and presumably
at 64 and 96Mbytes.) The contiguous aliasing causes the memory-sizing
loop to continue at 32 MBytes, testing the memory that's really
at address 0, overwriting and crashing the kernel.
Fixed (for 1.2) by reading the SIMM-decoder stride size from the
motherboard, and reducing the loop bound to 32Mbytes on a 5000/1xx
with low-density SIMMs. (Other models have a non-power-of-2 maximum
memory and so are not subject to _contigous_ aliasing of physical memory).
The physical memory-sizer claims to preserve memory contents
(specifically the contents of msgbuf). The loop writes different
values into two adjacent locations and reads the contents of the
first, to ensure that whatever is read back from the first location is
from memory and isn't just the first write persisting on the bus.
The loop preserved the value of the first location, but not the second,
resulting in the second test value ('ZZZZ') over-writing a word in msgbuf.