| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
onboard devices need only attach to hpc0 instead of hpc?.
While there, remove hpc1 and hpc2 attachment from IP28 configurations, as these
can not exist on Indigo2 systems.
|
| |
|
|
|
|
|
| |
speculative execution, while in kernel mode, attempting to access bogus
physical address through CKSEG[01] or XKPHYS. Surprisingly enough, an IP28
system can boot multiuser without triggering any such error; they will only
show up if there is a lot of I/O (and thus, context switching).
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
frame buffer has been removed, but which keyboard is left plugged in.
The PROM will select a `keyboard input, serial output' console, which was
being recognized as glass console by the kernel. The kernel would then
reset the serial chip at zstty attach time, while still using the PROM
output routines at this point, and hang.
Fix this by paying attention to split input/output setups and always falling
back to serial console in this case.
ok kettenis@
|
| |
|
|
|
| |
ECC checking disabled, which allows the existing Indigo2 drivers to run
unmodified.
|
| |
|
|
|
|
| |
as it was done for i386 some time ago; update the comment in the
i386 code to reflect reality. this helps machines with plenty of
memory regions set up by the bios. ok kettenis, jsg
|
| |
|
|
| |
from a (non-compiling) diff from Brad.
|
| |
|
|
|
| |
struct to know if there are multicast entries, instead of counting the
number of entries in the list. No functional change. From brad.
|
| | |
|
| |
|
|
|
|
| |
the dma_constraint range. This allows the xbridge(4) bus_dma_tag_t to use the
generic routines instead of rolling its own, now that the ATE code has been
removed.
|
| |
|
|
|
|
| |
IP22 family. This is just the bridge so far, as the underlying pci drivers
will need some changes to work (dc(4) does not work correctly yet, and tl(4)
needs to be bus_dma'ified).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
recognizing a GIO device or an id-less frame buffer in a GIO slot.
Turns out that GIO32 devices (at least those with a 32-bit ID register, but
likely all of them) do NOT like accesses to the minimal GIO register area
NOT done on 32-bit boundaries. While frame buffers won't mind, especially
if their slots are pipelined.
This makes it a lot easier to tell them apart.
While there, split gio_intr_establish() into gio_intr_map(), which will return
a logical interrupt number out of a GIO slot number, and gio_intr_establish(),
which will now expect a logical interrupt number, instead of a logical slot
number. These two functions are still unused, but upcoming changes depend on
this work. (Yes, I'm too lazy to make two commits for this tonite)
|
| |
|
|
|
| |
Previous change was a tad too optimistic. This repairs E++ and GIO SCSI board
operation.
|
| |
|
|
|
|
|
| |
Note that this would only affect 4KB page size IP22 kernels, which is not the
default IP22 configuration, and which noone not out of his or her mind would do.
In other words: this is a correctness fix with no impact on Real Life (c)(R)TM
|
| | |
|
| |
|
|
| |
GIO frame buffer drivers do.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is inverted on Indigo, this just means that Indigo does not use the same
values as the later models. It does not mean that the Indigo is using wrong
values, which is how I first read this. In reality, Indigo systems use the
expected values of these signals being active low, while later designs
use active high signals.
So yes, some systems have inverted values - but the ones which need
compensating are not those I thought.
Change the logic to do TRT, but keep the device flags check, to be able to
force the other behaviour if the kernel guesses wrongly. Tested on Indigo,
Indy and Indigo 2.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
byte accesses to the ID register; instead of interpreting this is as a lack
of hardware, reconize this as a valid GIO device (if the `has a 32-bit ID'
bit is set, that is).
This allows GIO Impact boards, which use a 32-bit ID, to be recognized
correctly, and to work as a console device.
Commited from an Indigo2 with glass console on the single-board Impact
(MG10) board which arrived in the mail today. Would have been done even
earlier, had I not forgotten to connect the extra power supply cable to
the Impact GIO backplane...
|
| | |
|
| |
|
|
| |
consistency. Will be necessary shortly.
|
| | |
|
| |
|
|
| |
IP22 kernels. Oops.
|
| |
|
|
|
| |
time; not only do we need to match the graphics console address, but cn_tab
needs to point to wsdisplay, too.
|
| |
|
|
| |
allows probes to fault and correctly recover.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
memory allocation pattern, exposing aliasing bugs in the mips64 pmap, on
kernels where virtual aliasing may happen (that is, IP32 kernels on R5000,
R10000 and R12000 O2).
Fix these (or at least, sweep them better under the rug) by:
- always flush caches in pmap_copy_page() and pmap_zero_page(), if the
destination page is mapped uncached.
- when removing a mapping of a managed page which has been forced uncached
due to virtual aliasing conflict, map it back cached as soon as the
remaining mappings are non conflicting.
- writeback, instead of simply invalidating, pool pages and page table
pages, upon release, for there might be stale data in the cache.
While these, apply more paranoia and only perform cache operations on pages
which have been mapped with the cache enabled.
Initially reported by mikeb@ on an R12k O2 (that will teach me to use an
RM7000-powered O2, without virtual aliasing, to test IP32 kernels).
Verified on an R5k O2, as well as a custom IP30 kernel with page size
forced to 4KB (to introduce virtual aliasing).
This diff tested on O2 (R5k, RM7k, R12k), IP30, IP35, as well as on
Loongson (no aliasing) by mikeb@ and I.
|
| |
|
|
| |
in <machine/signal.h>.
|
| |
|
|
|
|
| |
these (DEBUG) defines.
ok miod@
|
| |
|
|
| |
with -j2.
|
| |
|
|
|
|
|
| |
it by the not-normally-used sigreturn() stub in libc was changed to
use 'syscall' instruction in 5.0
ok mikeb@ jsg@
|
| | |
|
| | |
|
| |
|
|
|
| |
figure out whether they attach to the onboard hpc or to an expansion slot
(or the Challenge S IO+ mezzanine). No functional change (yet)
|
| | |
|
| |
|
|
| |
amount of TX empty interrupts.
|
| |
|
|
|
| |
to, so make this controllable with device flags, and default to non-bogus
wiring.
|
| |
|
|
|
| |
console keyboard, otherwise led update commands will never get transmitted.
Noticed by sebastia@
|
| | |
|
| |
|
|
| |
boundary; this makes ddb usable again.
|
| |
|
|
|
| |
regular `one key is up' events. Makes the shift, alt, ctrl, etc keys behave as
expected after the next keystroke.
|
| |
|
|
|
|
| |
fix this by reinstating the actual probe which got removed by mistake in the
recent gio probe and console code rework.
Found the hard way by sebastia@
|
| |
|
|
|
|
| |
Missed by miod@ in his previous commit. Now groff should build.
Okay miod@.
|
| |
|
|
| |
ok miod@
|
| |
|
|
|
|
|
| |
without virtual aliasing, or for pages which are not currently mapped
cached. 1+% speed increase on sgi IP27 and loongson kernels.
Tested on LS2F, R4400, R5000, R12000 and R16000.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- correctly gather version information. When reading device registers is a two
step process (write address, read data), it is a very bad idea to call a
wrapper around these two operations (to read register B) between the two
operations inline (to read register A). Unless you want to know the version
information for your garbage latches, that is. Now Indy 8-bit devices
no longer get reported as 24-bit devices, and Indy 24-bit devices no longer
get reported as 8-bit devices. (not that it mattered much anyway)
- define and use symbolic constants when parsing the video mode settings to
figure out the display resolution. This code still itches, but much less now.
|
| |
|
|
|
|
|
|
| |
that it can now tell ID-less framebuffers apart correctly. Therefore, we can
use direct configuration instead of ugly games. Frame buffer drivers match
routines now only need to check for the fake ID they receive.
Tested on various newport and grtwo setups (including multihead configurations)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- replace masking with large `power of two minus one' constants with a pair of
shifts, this is shorter code and does not require the at register.
- merge R5000 and RM52xx setup, as the configuration register layout is the same
on both processors.
- In Mips5k_IOSyncDCache(), delay building the call frame until we know we
will not perform a leaf call. Replace leaf calls with jumps to the
appropriate routines.
Tested on R5000, RM5271 and RM7000.
|
| | |
|
| |
|
|
|
|
|
| |
.S code when masking the upper bits, instead of hardcoding them. Makes code
easier to understand (and also I might have a need to reduce PFN width on
some particular CPU models in the future).
No change in generated code.
|
| |
|
|
|
|
| |
to a trap)' dance before invoking trapsignal(), which will mess with the pc
too. My bug initially, can't believe I never noticed; fixed first in NetBSD.
This makes libsqlite3 build.
|
| |
|
|
|
|
| |
the other uses.
ok mikeb@
|