Age | Commit message (Collapse) | Author |
|
type definitions that are the same across all archs from
<machine/_types.h> to <sys/_types.h>
ok deraadt@ kettenis@ otto@
|
|
breakage lurking; ok kettenis@
|
|
the same across all archs from <machine/_types.h> to <sys/_types.h>
ok deraadt@
|
|
SAPR register.
On luna88k, secondary processors are not disabled while the kernel is
initializing. They are running an infinite loop in
locore.S:secondary_init on non-MULTIPROCESSOR kernel. Then, after
initializing the CMMUs tied to the currently-running processor, we
turn on the instruction cache of other processors to make them
happier.
As a bonus, on non-MULTIPROCESSOR kernel, the power switch LED of
luna88k is blinking green and orange again. According to the hardware
manual, it indicates processors' cache hit status.
suggested and ok miod@
|
|
|
|
|
|
it's now atomic_lock to better reflect its usage, and librthread now
features a new spinlock that's really a ticket lock.
thrlseep can handle both types of lock via a flag in the clock arg.
(temp back compat hack)
remove some old stuff that's accumulated along the way and no longer used.
some feedback from dlg, who is concerned with all things ticket lock.
(you need to boot a new kernel before installing librthread)
|
|
|
|
|
|
instead of I$ cmmu only.
This longstanding bug has been introduced in r1.44, which commit message was
right mentioning that it `fixes some bugs, probably introduces new ones as
well'.
|
|
detection code, and forgotten in previous commit.
|
|
|
|
Alter the 88200-specific code to enforce cache-inhibited page tables for
extremely old 88200 versions, and to disable write-back caching on systems
where xmem instructions do not behave correctly when applied to write-back
cached addresses.
No change introduced on 88110 systems, as well as most 88100 systems; the
affected systems are 88100 systems with 88100 revision < 10 and/or 88200
revision < 7; that is, only early MVME181 and MVME188 (not 188A) systems.
|
|
it also exists on 88100. While there, do not allow userland to set it.
|
|
to work as soon as cn_tab is initialized. Allows us to correctly printf or
panic early on unrecognized systems. This used to be the case but got lost a
long time ago.
|
|
before pmap_bootstrap(), as located in .rodata. This will get them
write-protected after pmap has initialized, for free.
|
|
of the .plt whenever possible, and fallback to the old behaviour of searching
for special symbols pointing to its boundaries. No functional change.
|
|
the low part trigger an `illegal instruction' trap on the 88110 (and I can't
see this documented anywhere in the manual). Of course there is code "in the
wild" which uses such constructs (libgmp is one such example).
Extend double_reg_fixup() to take the trap type as an extra argument, and
explicitely allow ld.d or st.d instructions with odd-numbered registers at
aligned addresses if we are invoked from the `illegal instruction' trap
handler, to give this code a chance to run on 88110.
|
|
|
|
libm. While at it, remove now unused workarounds for lint.
Agreed by kettenis@, guenther@, matthew@.
|
|
another symbol without weak attribute. To be used in libc and libm
soon. Agreed by kettenis@, guenther@, matthew@.
|
|
|
|
|
|
to keep definitions our of user space. The MD files now follow a consistant
order -- all namespace intrusion is at the tail can be cleaned up
independently. locore, bootblocks, and libkvm still see enough visibility to
build. Checked on 90% of platforms...
|
|
kgmon(8) to deal with them, this time without public header changes.
Previously various CPUs were iterating over the same global buffer at
the same time to modify it and never ended.
This diff includes some ideas submited by Thor Simon to NetBSD via miod@.
ok deraadt@, mikeb@, haesbaert@
|
|
limit. This allows c++ memory hogs, such as pcre's pcrecpp_unittest.cc,
to compile on m88k.
|
|
kernel APR. Return write-back for every design but those involving 88410,
where write through is returned.
Apparently the use of writeback on single-processor kernels using 88410 (197SP,
197DP) has only been working by fat chance, and the last two years of uvm
changes, as well as the switch to ELF (causing kernel rodata to move `up')
exposes silent memory corruption on (88410-size) aliased addresses.
(I am guilty of not using my 197DP board much after making 197LE write-back
capable, as 197LE turned out to be faster and more stable, for I would have
noticed this earlier).
Further thought needs to happen about this. It might be possible to switch to
writeback by default again as long as bus_dma maps things write-through on
88410 designs, and perhaps with a part of the kernel mapped with a write-through
BATC, since BATC have precedence upon page tables. Right now I'm trying to get
a stable release out of the door.
|
|
|
|
|
|
|
|
or I$ may reload with stale data. It used to work without this because the
kernel used to run in write-through mode.
Repairs gdb single-stepping.
|
|
at this moment.
|
|
various CPUs were iterating over the same global buffer at the same
time to modify it and never ended.
This diff includes some ideas submited by Thor Simon to NetBSD via miod@.
ok mikeb@, haesbaert@
|
|
|
|
resetting the appropriate register in setregs(). Similar in spirit to what
m68k does (restoring a null frame), and necessary since m88k doesn't do lazy
fpu switching.
|
|
affects a.out binaries' core dumps.
|
|
this RSN.
|
|
Add an END() macro, to be used to match ENTRY(), which produces a .size
directive.
|
|
pages mapped without read (or write) permissions.
The existing logic would incorrectly match uvm_fault() returning EACCES with
the CMMU fault logic reporting a bus error (which will still cause SIGBUS
to be sent).
|
|
|
|
|
|
the compiler won't try to outsmart me.
|
|
non-native emulations.
ok miod@
|
|
branch-with-delay-slot instruction, in the 88100 exception code path, in
kernels configured without DDB. This is undefined behaviour, but we have
apparently be lucky enough since RAMDISK is known to work on 88100.
|
|
therefore I don't mind you rotting in the Attic for eternity (scheduled
to start on the 21st anyway, according to MayaBSD developers).
reminded by deraadt@
|
|
dynamically, by comparing the stack pointer against the altstack
base and size, so that you get the correct answer if you longjmp
out of the signal handler, as tested by regress/sys/kern/stackjmp/.
Also, fix alt stack handling on vax, where it was completely broken.
Testing and corrections by miod@, krw@, tobiasu@, pirofti@
|
|
floats on m88k. Agreed by miod@.
|
|
on this platform), so don't pretend it does, and don't build long double libm
routines.
|
|
ok miod@ (who found others to fix as well)
|
|
|