summaryrefslogtreecommitdiff
path: root/sys/arch
AgeCommit message (Collapse)Author
2012-05-29Remove unused define CHAR_CHS_FORCE.Marcus Glocker
OK deraadt@
2012-05-28The link state code does not work correctly on Indigo (IP20) and E++ GIO boardsMiod Vallat
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@
2012-05-27Add a `L2 cache line size' member to struct cpu_info. This allows R4k code toMiod Vallat
stop abusing another field, and will be used by more routines RSN. No functional change.
2012-05-27Replace Loongson2F assembly cache routines with equivalent C code. This willMiod Vallat
make future maintainance easier.
2012-05-27Proper support for the so-called `fast mode' of the Indigo2 ECC memoryMiod Vallat
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.
2012-05-27Decide once for all whether IP22/IP28 systems are running with the ECC memoryMiod Vallat
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)
2012-05-27enable tcpcib(4)Jonathan Gray
2012-05-27Add tcpcib(4) to support Intel Atom E600 watchdog.Jonathan Gray
From Matt Dainty. ok kettenis@
2012-05-26Be more strict when specifying hpc child device attachments: specificMiod Vallat
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.
2012-05-25On IP28, silently acknowledge bus errors which can be attributed toMiod Vallat
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).
2012-05-25Correctly handle the case of a system setup to use glass console, whichMiod Vallat
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@
2012-05-25Support for the POWER Indigo2 R10000 systems (IP28). Currently running withMiod Vallat
ECC checking disabled, which allows the existing Indigo2 drivers to run unmodified.
2012-05-23increase the number of io and mem extent regions for amd64 to 16Mike Belopuhov
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
2012-05-22Make the multicast filter routine conform to the Party's standards. AdaptedMiod Vallat
from a (non-compiling) diff from Brad.
2012-05-22When setting up the multicast filter, use the ac_multicnt field of the arpcomMiod Vallat
struct to know if there are multicast entries, instead of counting the number of entries in the list. No functional change. From brad.
2012-05-20do not need to pull in <time.h>Theo de Raadt
2012-05-20Make sure the generic bus_dmamem_alloc() routine restricts its allocation toMiod Vallat
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.
2012-05-18Port NetBSD's pci@gio driver for fast Ethernet expansion boards for theMiod Vallat
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).
2012-05-17Yet another rework of the crucial gio_id() function responsible for correctlyMiod Vallat
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)
2012-05-17Better probes for sq and wdsc in gio-masqueraded-as-hpc expansion boards.Miod Vallat
Previous change was a tad too optimistic. This repairs E++ and GIO SCSI board operation.
2012-05-17Correct virtual aliasing mask computation.Miod Vallat
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
2012-05-15revert a chunk introduced in 1.7 which was not supposed to be there yetMiod Vallat
2012-05-12Don't forget to print the frame buffer name obtained from ARCS, as all otherMiod Vallat
GIO frame buffer drivers do.
2012-05-12Strip trailing space from ARCS frame buffer names.Miod Vallat
2012-05-12It turns out that, when the IRIX header files mention CTR/DCD/DTR/RTS wiringMiod Vallat
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.
2012-05-10GIO devices with a 32-bit device identifier actually do not like halfword andMiod Vallat
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...
2012-05-10regenMiod Vallat
2012-05-10Do not keep the `32-bit device ID' bit indicator in the device IDs, forMiod Vallat
consistency. Will be necessary shortly.
2012-05-10Fix a few macros to operate on the right bit.Miod Vallat
2012-05-10Fix impact(4) header file generation to correctly output NIMPACT_GIO onMiod Vallat
IP22 kernels. Oops.
2012-05-10Be more strict in the `are we the console device' logic at device attachmentMiod Vallat
time; not only do we need to match the graphics console address, but cn_tab needs to point to wsdisplay, too.
2012-05-10Initialize more proc0 context before invoking consinit(); this now reallyMiod Vallat
allows probes to fault and correctly recover.
2012-05-10The uvm_map() changes introduced about two months ago yield a differentMiod Vallat
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.
2012-05-09Do not include <machine/reg.h> and pollute userland namespace with struct regMiod Vallat
in <machine/signal.h>.
2012-05-09merge sigdebug.h into machdep.c, to where all other architectures haveOkan Demirmen
these (DEBUG) defines. ok miod@
2012-05-06Update the depencies of the .S files on assym.h; allows IP30 kernels to be builtMiod Vallat
with -j2.
2012-05-06Garbage collect the old int$80 kernel entry point: the last use ofPhilip Guenthe
it by the not-normally-used sigreturn() stub in libc was changed to use 'syscall' instruction in 5.0 ok mikeb@ jsg@
2012-05-02sq needs ifmedia attribute now, repairs RAMDISK_IP22Miod Vallat
2012-04-30Add ifmedia support to sq(4).Miod Vallat
2012-04-30Pass the base address of the hpc to child devices, to let them be able toMiod Vallat
figure out whether they attach to the onboard hpc or to an expansion slot (or the Challenge S IO+ mezzanine). No functional change (yet)
2012-04-30Correctly read board version information.Miod Vallat
2012-04-29Recognize 85230 chips, and take advantage of their FIFOs to reduce theMiod Vallat
amount of TX empty interrupts.
2012-04-29I am not sure what the mess with the wiring of carrier lines on Indigo resolvesMiod Vallat
to, so make this controllable with device flags, and default to non-bogus wiring.
2012-04-28Be sure to initialize the `state' member of the softc when attaching theMiod Vallat
console keyboard, otherwise led update commands will never get transmitted. Noticed by sebastia@
2012-04-28Only trust giofb_consid if non-zero.Miod Vallat
2012-04-28Rework the definition of label_t to get it correctly aligned to an 8 byteMiod Vallat
boundary; this makes ddb usable again.
2012-04-27Fix the `all keys up' event handling logic to only apply to it, and not toMiod Vallat
regular `one key is up' events. Makes the shift, alt, ctrl, etc keys behave as expected after the next keystroke.
2012-04-27The new probe logic would pretend light(4) devices always exist on Indigo;Miod Vallat
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@
2012-04-27Remove reg.h inclusion.Paul Irofti
Missed by miod@ in his previous commit. Now groff should build. Okay miod@.
2012-04-26va is of type vaddr_t; allow sparc64 to build with DEBUGOkan Demirmen
ok miod@