Age | Commit message (Collapse) | Author |
|
|
|
|
|
<machine/reg.h> for the needs of struct sigcontext; said struct ought to
only use simple integer types.
Fixes build of groff on landisk.
ok pirofti@ (who had a similar diff)
|
|
from a fork syscall done by the parent. Use __tfork, not rfork
here to match the ktrace records for the parent (CALL __tfork,
RET __tfork). ok guenther
|
|
|
|
count processes instead of threads. New sysctl()s KERN_NTHREADS and
KERN_MAXTHREAD count and limit threads. The nprocs and maxproc kernel
variables are replaced by nprocess, maxprocess, nthreads, and maxthread.
ok tedu@ mikeb@
|
|
to a word boundary.
|
|
before them.
|
|
|
|
cache is still not supported yet (needs extra code being worked on, as does
the R5000SC Indy).
|
|
the current logic can be traced back to DaveM's intership at SGI in 1996,
and are adequate for the hardware he had access to.
However, ``recent'' Indigo2 and Indy systems are fit with a faster (33MHz
instead of 25MHz) GIO64 bus, which need different timing parameters, and
guess what? The PROM knows the right values to set.
Since programming these timing registers was apparently only necessary for
the Challenge S second interface:
1) only reprogram those registers on an IP24 (Indy, Challenge S) system.
2) pick proper values depending upon the actual GIO64 bus speed.
Item #1 fixes Ethernet operation on Indigo2 (at least my teal R4400SC).
Item #2 fixes Ethernet operation on my R5000SC Indy.
For the record, programming unoptimal value caused `TX DMA underrun' errors
(documented as `can't happen' in the HPC3 documentation, oh the irony),
which could be reproduced reliably with ypbind(8).
|
|
necessary cache coherency work wrt similar virtual indexes of different
physical pages, depending upon two distinct global variables, instead of
a shared one. R4000/R4400 VCE requires a 32KB mask for PMAP_PREFER, which
is otherwise not necessary for pmap coherency (especially since, on these
processors, only L1 uses virtual indexes, and the L1 size is not greater
than the page size, as we are using 16KB pages).
|
|
Indy PROM versions use different year bases - after all, using 1970 instead
of the previously used value of 1940 smelled like a bug, and probably was,
so this eventually got fixed in later PROM versions.
Instead of hardcoding a year base depending upon the system, we will now ask
ARCBios for its current year, and compare it to what can be read from the RTC
registers to figure out what year base is in use by the PROM.
|
|
and O2 (other systems unaffected).
|
|
ok deraadt@
|
|
the timebase on Indigo 2, but 1970 on Indy (verified with the `date' command
at the PROM prompt and checking what values ended up in the DS1286).
Indy will no longer be 30 years in the future from an IRIX point of view.
|
|
kernels. No need to walk the whole dma map doing nothing.
No functional change.
|
|
every register write. Hinted by IRIX' <sys/z8530.h>.
While there, flip the CTS, DCD, RTS and DTR bits in registers #0 and #5.
Aforementioned header says they are inverted due to a hardware bug.
Tested on IP20, IP22 and IP24.
|
|
PIO write buffer.
|
|
layout is enough to enforce this. Don't request DMA page boundary alignment
when allocating them.
|
|
hangs on resume. Discussed with and ok kettenis, haesbaert
|
|
being configured and we'll see which boards need care. (Only ep(4) is known
to work so far, but I am waiting for review and approval of the changes
required to make it work on sgi). Anyone with a working ahb(4) EISA board to
spare?
|
|
narrow these in the various ipXX_machdep.c. On IP22-like systems, narrow
them to 28 bit physical addresses, but unpessimize this by extending this
to 32 bit after autoconf, if no 28-bit limited hpc(4) device has been found.
Since physical memory on these systems start at 128MB, this means that Indigo
systems with more than 128MB memory will behave correctly (and so will Indy
systems with E++ boards and more than 128MB memory).
|
|
PIO-only devices such as ep(4), with horrible performance on 3C579-TP.
|
|
TX interrupts since the TX interrupt handler now correctly acknowledges it.
|
|
install seen on IP22 and IP24.
|
|
out to be the same value).
|
|
recognize a kernel bootpath (when not autobooting) even if it does not start
with a /, and will also recognize when this is a full path (e.g.
bootp()mykernel), in which case OSLoadPartition does not need to be
prepended to the constructed path.
This will allow ELF kernels to be booted on ELF-unaware PROM with
bootp()bootecoff bootp()kernel
without doomed-to-fail tomfoolery to convert the 64-bit ELF kernel to a
32-bit ECOFF binary.
|
|
the PROM data area.
|
|
|
|
(IP20, IP22, IP24) in 64-bit mode, adapated from NetBSD. Currently limited
to headless operation, input and video drivers will get ported soon.
Should work on all R4000, R4440 and R5000 based systems. L2 cache on R5000SC
Indy not supported yet (coming soon), R4600 not supported yet either (coming
soon as well).
Tested to boot multiuser on: Indigo2 R4000SC, Indy R4000PC, Indy R4000SC,
Indy R5000SC, Indigo2 R4400SC. There are still glitches in the Ethernet driver
which are being looked at.
Expansion support is limited to the GIO E++ board; GIO boards with PCI-GIO
bridges not ported yet due to the lack of hardware, and this kind of driver
does not port blindly.
Most of this work comes from NetBSD, polishing and integration work, as well
as putting as many ``R4x00 in 64-bit mode'' erratas as necessary, by yours
truly.
More work is coming, as well as trying to get some easy way to boot install
kernels (as older PROM can only boot ECOFF binaries, which won't do for the
kernel).
|
|
bus_dmamap_load*().
|
|
|
|
|
|
they can be conditionally called in future.
This makes the i386 speedstep code closer to the amd64 code
(though still with the added complications of VIA support and the
*_update_cpuspeed callbacks)
|
|
"Processor May Incorrectly Update Stack Pointer" by setting a bit
marked 'reserved' in an MSR that is only "documented" to exist on 12h.
AMD claim this problem can only occur in 64-bit mode, set the workaround
bit on i386 in case this isn't true and in the interest of keeping the
errata in sync between i386/amd64.
ok deraadt@
|
|
Discussed with many on hackers.
"Go ahead" kettenis@
"Get to it" deraadt@
|
|
|
|
"MTU" of 4096 bytes.
|
|
|
|
at the same time increase said function's max RLE page count return value.
Add hooks in the right places to call the hibernate suspend and resume
routines, so that we can enable hibernation with a HIBERNATE option
line in GENERIC and appropriate acpi.c goo.
discussed on and off with deraadt@ over the past few months
|
|
rather than abusing <machine/cpu.h>.
|
|
of previous computation fix.
|
|
|
|
|
|
|
|
for IP numbers under 30 (Octane), and add a few interesting ones.
No functional change, except making my life easier for upcoming work.
|
|
by anything yet, but has been lying in one of my trees for too long.
|
|
from struct user. Nothing left to zero-out here so the line goes.
pointed out by deraaadt@
|
|
of per-rthread. Handling of per-thread tick and runtime counters
inspired by how FreeBSD does it.
ok kettenis@
|