summaryrefslogtreecommitdiffstats
path: root/sys/arch/sgi/include/mnode.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* On IP27 systems, fill the array of node hub widget numbers early, so that allmiod2011-04-171-1/+4
| | | | | | hubs are known during autoconf. Then, pick the most populated 2GB window as our DMA memory window. xbridge(4) can thus program the correct settings regardless of the order in which the xbow(4) attach.
* Rename a few xbow global variable names to make them less ambiguous.miod2011-04-051-1/+6
| | | | | | | | | Remember the hub widget number of each node, instead of only the master node. Use this in xbridge to compute the proper direct DMA map configuration register value (it needs to embed the hub widget number matching the physical address range). This should allow us to pick memory from a different node than the one we booted from, as the DMA window, if wanted.
* Normalize sentinel. Use _MACHINE_*_H_ and _<ARCH>_*_H_ properly and consitently.pirofti2011-03-231-4/+4
| | | | Discussed and okay drahn@. Okay deraadt@.
* Add more KL grovelling routines: one routine to enumerate on all nodes,miod2010-04-061-2/+6
| | | | | | | | | | and routines to turn a KL console and a KL component structs, respectively, into struct sgi_device_location for further device identification. XXX Due to the way PCI devices are numbered on PIC buses, this code is tainted XXX by knowledge about PIC widgets, to compensate. I have considered changing XXX xbridge(4) to have our PCI device numbering match KL on PIC-connected XXX devices, but I expect this to be even uglier. This is not settled yet.
* Update KL structure definitions to match IP35 use of previously unused fields.miod2010-03-211-38/+96
| | | | No functional change yet.
* On Origin-like systems, get glass console information (if any) from themiod2010-03-071-1/+2
| | | | | | fake ARCBios component structures associated to the KL configuration. The ARCBios data tells us if the device is the output console, and the KL component data tells us its node and widget numbers.
* Define struct cpu_hwinfo, to hold hardware specific information about eachmiod2010-01-091-2/+1
| | | | | | | | | | | | processor (instead of sys_config.cpu[]), and pass it in the attach_args when attaching cpu devices. This allows per-cpu information to be gathered late in the bootstrap process, and not be limited by an arbitrary MAX_CPUS limit; this will suit IP27 and IP35 systems better. While there, use this information to make sure delay() uses the speed information from the cpu it is invoked on.
* Get serial console speed from prom, and use it instead of hardcoding 9600 bps,miod2009-10-161-2/+2
| | | | | | on all systems but O2 (to catch up soon). Also use the IOC4 MCR register to figure out the IOC4 clock, instead of checking the widget control register, to be consistent with iof(4).
* Recognize more brick types and probe fooX bricks in the same order asmiod2009-10-081-1/+6
| | | | | foo bricks (they differ by having PCI-X bridges instead of PCI bridges but are otherwise built the same)
* When rebooting, pass a request to the PROM for it to skip diagnostics andmiod2009-07-111-2/+14
| | | | | | | memory initialization. This reduces memory test and initialization time from a "in soviet russia, memory test you" time of over 2 minutes for 1GB on Origin 200, to a more reasonable 12 seconds (and on a Fuel with 2GB, time goes down from 6 seconds to under a second).
* Almost rewrite xbridge PCI resource allocation:miod2009-07-061-2/+2
| | | | | | | | | | | | | | | | | | | | | | | - introduce an interface for widget drivers to ask the xbow to map arbitrary views of their address space, in addition to the low 16MB. This operation may fail or map a subset range of what the caller asked for, depending on the platform we're running on. - use this in xbridge to set up views on the direct memory and i/o spaces, to map devices resources when they don't fit in one of the devio small ranges (limited to 2MB anyway). These views are only allocated when devio can't do the job, so as not to consume too many resources on Origin family systems where such views are scarce resources (and shared accross the whole crossbow). This makes pci devices with large resource needs configure correctly. While there, fix programming of 64 bit memory BAR; this makes bge(4) work. Tested on Octane (with Bridge revision < 4 and >= 4), Origin 200 (Bridge >= 4) and Fuel (XBridge). ok deraadt@
* Figure out which nodes are connected, and use all of their memory for now;miod2009-06-131-77/+105
| | | | | other hardware resources will follow shortly. Tested on a dual-Origin 200 setup.
* Shuffle and rename HUB defines for consistency, no functional change yet.miod2009-06-131-67/+12
|
* Handle NMI interrupts on IP27/IP35, gives us a change to play with ddb,miod2009-05-281-1/+16
| | | | | and then restart system (NMI on these systems aren't intended to be recoverable).
* Rework KL board and component enumeration, to allow it to be used frommiod2009-05-271-11/+39
| | | | | drivers with callback routines. While there, skip disabled or failed components.
* Workaround a bridge deadlock, as advised by comments found in the linux sn1miod2009-05-061-3/+3
| | | | code.
* More KL configuration structures.miod2009-05-021-1/+14
|
* The start of Origin 200 support. Based on some code contributed by pefo@miod2009-04-131-0/+377
some years ago for KL enumeration, building on the existing XBow support to limit ourselves to a single node for now. This is a work-in-progress; it currently lacks complete interrupt code, as well as PCI resource management. And there are likely bugs creeping inside.