summaryrefslogtreecommitdiffstats
path: root/sys/arch/sgi/gio (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Attach non-frame buffer GIO devices with ga_product being the id gathered bymiod2012-07-181-3/+4
| | | | | gio_id(), not the whole 32 bit first word. Some boards with a 8-bit only ID register use the other 24 bits, sadly.
* Hopefully correctly recognize GIO boards with a 8-bit only ID register, whichmiod2012-07-181-4/+13
| | | | are not frame buffers. Thanks to Martin Boehme for donating such boards!
* regenmiod2012-07-182-8/+12
|
* A couple more device IDs, thanks to Martin Boehme for donating boards!miod2012-07-181-4/+6
|
* Support for the POWER Indigo2 R10000 systems (IP28). Currently running withmiod2012-05-251-5/+31
| | | | | ECC checking disabled, which allows the existing Indigo2 drivers to run unmodified.
* Port NetBSD's pci@gio driver for fast Ethernet expansion boards for themiod2012-05-181-0/+497
| | | | | | 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).
* Yet another rework of the crucial gio_id() function responsible for correctlymiod2012-05-172-65/+33
| | | | | | | | | | | | | | | | | 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)
* Don't forget to print the frame buffer name obtained from ARCS, as all othermiod2012-05-121-2/+6
| | | | GIO frame buffer drivers do.
* GIO devices with a 32-bit device identifier actually do not like halfword andmiod2012-05-102-24/+48
| | | | | | | | | | | | | | 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...
* regenmiod2012-05-102-8/+9
|
* Do not keep the `32-bit device ID' bit indicator in the device IDs, formiod2012-05-101-6/+9
| | | | consistency. Will be necessary shortly.
* Fix a few macros to operate on the right bit.miod2012-05-101-3/+3
|
* Fix impact(4) header file generation to correctly output NIMPACT_GIO onmiod2012-05-101-3/+2
| | | | IP22 kernels. Oops.
* Be more strict in the `are we the console device' logic at device attachmentmiod2012-05-104-8/+25
| | | | | time; not only do we need to match the graphics console address, but cn_tab needs to point to wsdisplay, too.
* Correctly read board version information.miod2012-04-302-9/+10
|
* Only trust giofb_consid if non-zero.miod2012-04-281-2/+2
|
* The new probe logic would pretend light(4) devices always exist on Indigo;miod2012-04-271-3/+9
| | | | | | 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@
* Minor tweaks:miod2012-04-241-36/+35
| | | | | | | | | | | | - 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.
* Pour even more smarts into the GIO device identification code, to the pointmiod2012-04-246-168/+149
| | | | | | | | 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)
* Split the existing impact@xbow attachment into generic impact routines, andmiod2012-04-183-47/+202
| | | | | | | | | | | | | | | | | | bus-specific attachment; impactreg.h and impactvar.h move from sgi/xbow/ to sgi/dev/. Teach the generic impact code how to code with pre-ImpactSR boards, which have a slightly different register layout (information obtained from Peter Fuerst's Linux IP28 patches). Add an impact@gio attachment (unfortunately untested, no Impact GIO boards here). All Indigo 2 graphics options should be supported now (assuming the Extreme/Ultra will actually work with grtwo(4) out of the box). Tested not to disturb operation on IP30. ** ATTENTION! If you are building IP27 or IP30 kernels, be sure to rm impact.d ** before building a new kernel.
* Don't attach a wsdisplay if not the console device, for part of the devicemiod2012-04-181-1/+14
| | | | | is disabled, and nothing shows up on the monitor in this case. To be investigated later.
* regenmiod2012-04-182-38/+40
|
* Apparently, the Indigo 2 Impact GIO boards finally provide a real GIO IDmiod2012-04-181-1/+2
| | | | register.
* Put decent prefixes in the symbolic constants for GIO IDs in the generatedmiod2012-04-181-4/+5
| | | | files, for them to become useful.
* Driver for the GR2 family of frame buffers (Elan, XZ...). Based upon themiod2012-04-183-0/+1099
| | | | | | NetBSD driver, with the infinite loops removed, the negative heights fixed, and the explicit delay() calls removed. And support for fonts wider than 8 pixels.
* Do not mistake GR2 boards for GIO boards, as what could be a GIO productmiod2012-04-181-6/+27
| | | | | | | | | identifier is actually the first word of the boards' shared ram, and might have a legit value. Be sure to probe for the signature register before deciding we have found a GIO board. While there, if we have a glass console attached, don't bother probing it again at autoconf time, since we have already identified it.
* Driver for the ``Entry'' LG1 frame buffer found on low-range Indigo systemsmiod2012-04-174-3/+771
| | | | | only. Ported from NetBSD, not tested due to lack of hardware, hopefully it will be working as intended (fingers crossed)
* Drivers for the Indy and Indigo 2 PS/2 keyboard ports, and the ``Newport''miod2012-04-163-0/+1181
| | | | | | | | (NG1, XL, XGE) frame buffer. Adapted from NetBSD; newport extended to support underline and fonts wider than 8 pixels, such as the default 12x22 Gallant font. Framebuffer depth computation seems to be wrong on Indy models, to be investigated later (but doesn't prevent text console from working).
* Improve the way frame buffers are probed to reduce (and hopefully avoid)miod2012-04-163-98/+248
| | | | | | | | | | | | | | | | false positives. Do not look for framebuffers past GIO EXP1, there shouldn't be anything there. Add the console code machinery to attach a glass console on IP22, when the appropriate drivers will exist. On multihead systems, get console framebuffer address (well, sort of) from a completely undocumented interface (knowledge taken from Linux, confirmed to work on a dual-head Indigo 2 here). While there, get frame buffer names from ARCBios whenever possible, to be used in dmesg eventually.
* Define symbolic constants for the interrupt controller pin assignments onmiod2012-04-151-7/+14
| | | | | IP20, IP22 and IP24, and provide the necessary macros to compute interrupt vectors numbers (from the int.c point of view) from given sources.
* regenmiod2012-03-282-0/+62
|
* Work in progress support for the SGI Indigo, Indigo 2 and Indy systemsmiod2012-03-287-0/+873
(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).