| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
* call only for set translation on (once in /sys/dev/pckbd.c)
therefore we can delete unused code.
* change behavior (more standard) - return zero on success
ok miod@
|
| |
|
|
|
| |
gio_id(), not the whole 32 bit first word. Some boards with a 8-bit only ID
register use the other 24 bits, sadly.
|
| |
|
|
| |
are not frame buffers. Thanks to Martin Boehme for donating such boards!
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
interrupt on Indy; do not use it on such systems. Then, bring back a clock0 at
mainbus attachment to IP22 kernels, and attach it late in the autoconf process
if no other device has claimed the clock yet.
This means R4000 and R4400 based Indy may experience the lost clock interrupt
processor errata again, until a better way to skirt it is found.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
counter register close to a trigger of the counter interrupt, may cause the
interrupt not to be generated. This makes it a bad idea to use the internal
counter both for the scheduling clock and for delay().
Therefore, on IP22 systems (and IP28 because it makes my life easier), use
one of the two 8254 timers connected to the onboard interrupt controller as
the scheduling clock source.
Adapted from NetBSD.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
reported memory but end beyond it, such as > 1GB DIMMs in bank 0.
Also, currently restrict physical memory usage to 1.5GB - there seems to be a
bogus 32 bit truncation happening in the IP30 specific codepath, which in turns
ends up causing the low memory alias region (and thus, the exception vectors
and the NMI handler) to be overwritten, which I can't find from code inspection
(does anyone has 2GB of Octane memory to spare?)
Both issues reported and fix/workaround tested by Florentijn van Kampen,
thanks!
|
| |
|
|
|
|
|
|
|
| |
MI float.h which pulls in and defines the values that are needed from
there, and repair sys/limits.h so that it defines the values it needs
as well (depending on POSIX version, XPG version, etc). guenther has
a more exact selection of that coming for limits.h.
this also fixes a few mistakes for the vax.
reviewed by kettenis and guenther.
|
| |
|
|
|
|
|
|
|
|
| |
R5000SC processor modules; these sport an up to 512KB, physically indexed,
write-through L2 cache which is not connected to the canonical external cache
interface of these processors (hence requiring specific code to drive it).
The cache is enabled early and disabled before returning to ARCBios (for very
nasty things happen otherwise).
Tested on R5000SC, will be tested on R4600SC soon.
|
| |
|
|
|
|
|
|
|
| |
cache lines and sizes are already there, after all.
The ConfigCache cache routine is responsible for filling these function
pointers; cache routine invocation macros are updated to use the cpu_info
fields, but may still be overriden in <machine/cpu.h> on platforms where
only one set of cache routines is used.
|
| |
|
|
|
|
|
|
|
|
| |
was a nice trick, but this register is only 32-bit wide and will be
sign-extended, which requires all cpu_info structs to be allocated within 2GB
physical - something which may not be possible on some configurations.
This diff changes IP30.MP kernels to no longer use LLAddr to store curcpu,
but use unused fields of the MPConf structure in low memory, indexed with the
physical processor id, which can be obtained from the Heart PRID register.
|
| | |
|
| |
|
|
|
|
|
|
| |
ARCBios environment variable OSLoadOptions to "nosog". Now everyone
can enjoy running O2 without an SGI monitor and don't turn vegetarian
afterwards. All the essential bits come from NetBSD's crmfb driver
except they've chosen to use a "SyncOnGreen" variable not saved by
the ARCS. Pointers and corrections from and ok miod, jsing
|
| |
|
|
|
|
|
| |
sector rather than just the bytes for the volume header itself.
Silences the "sloppy I/O" warnings triggered by sgi's distrib scripts.
tested and ok deraadt
|
| |
|
|
|
|
|
|
|
| |
and will report the link being down too aggressively. Better to always report
the link as up - these systems and boards are single media only so it won't
harm much.
Unbreaks dhcp in the installer on these interfaces; found the hard way by
sebastia@
|
| |
|
|
|
|
| |
stop abusing another field, and will be used by more routines RSN.
No functional change.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
controller. In this mode, access to physical memory are not allowed to
bypass the cache, and this allows the memory subsystem to run faster.
Of course, some device drivers will require uncached memory access (e.g.
for proper HPC DMA descriptor operation).
New ip22-specific functions to switch between `fast mode' and `slow mode'
are introduced.
hpc(4) now provides read and write routines to fetch a dma descriptor from
uncached memory into a local copy, and update it from said modified copy.
On systems without the ECC MC, these will do nothing and operation will
continue to access the uncached memory directly. On systems with the ECC MC,
they will perform a copy, and the writeback will be done in slow mode.
bus_dmamem_map() requests for DMA memory with BUS_DMA_COHERENT set in flags,
which would return uncached memory, will now always fail on systems with
the ECC memory controller. Drivers which really need uncached memory, and
are aware of this particular setup, will now pass
BUS_DMA_COHERENT | BUS_DMA_BUS1, which will let the request succeed.
sq(4) will use all of the above to work mostly unmodified on ECC MC systems
in fast mode.
Finally, fast mode is enabled after autoconf.
Tested on IP22 and IP28.
|
| |
|
|
|
|
|
| |
controller or not, and store this in a global variable. This is better than
checking for the IP number everytime, especially since, according to IRIX
header files, not all IP26 use the ECC memory controller (not that it matters
much for us since we do not run on them yet)
|
| |
|
|
|
|
| |
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).
|
| |
|
|
|
| |
ECC checking disabled, which allows the existing Indigo2 drivers to run
unmodified.
|
| |
|
|
| |
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.
|
| | |
|
| |
|
|
| |
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.
|
| |
|
|
| |
with -j2.
|
| | |
|
| | |
|
| |
|
|
|
| |
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@
|
| | |
|
| |
|
|
|
| |
regular `one key is up' events. Makes the shift, alt, ctrl, etc keys behave as
expected after the next keystroke.
|