summaryrefslogtreecommitdiff
path: root/sys/arch/sgi
AgeCommit message (Collapse)Author
2009-11-09Make sure we correctly return failure in l1_serial_ppp_read() when a readMiod Vallat
fails after an escape character, and while there put explicit casts to l1_command_build() variadic arguments.
2009-11-09Only invoke the L1 code if IP35.Miod Vallat
2009-11-08Add code to send L1 commands and parse command results; use it to add a wayMiod Vallat
for IP35 systems with IOC3 onboard Ethernet to get their Ethernet address since it's no longer stored as an owmac(4) device on the IOC3 device itself.
2009-11-08Figure out the size of the SSRAM used as internal memory by the chip onMiod Vallat
attach, print it, and decide how many RX descriptors to use accordingly.
2009-11-08Do not risk touching nonexisting registers on MENET boards; untested due toMiod Vallat
lack of such hardware.
2009-11-07According to Brad, bnx(4) is not endian-safe, so remove it from sgi kernels.Miod Vallat
2009-11-07In case an ioc(4) device has lost its NIC component, do not recognize itMiod Vallat
as the onboard ioc device, if one has already been found on this node. Also, on Origin 300, do not attempt to attach the PS/2 controller on the onboard ioc(4) since PS/2 ports are not wired.
2009-11-07A few more PCI Ethernet controllers; from Brad.Miod Vallat
2009-11-07Add a bunch of PCI audio devices, only compile tested; from Brad.Miod Vallat
2009-11-07Replace option TGT_ORIGIN200 and TGT_ORIGIN2000 with a single option,Miod Vallat
TGT_ORIGIN, which enables support for all IP27 and IP35 systems. The original two options have always been used together, and go back to when pefo thought supporting multiple nodes would be significant work. Since an Origin 200 can be a dual-node system, making a distinction between single node and multiple node systems is a moot point anyway. Be sure to rerun config(8) before rebuilding a kernel.
2009-11-07Change sgi system identification from a single system type list, to a smallerMiod Vallat
system type list (which really is the system family) and a subsystem type. No functional change yet.
2009-11-06When rebooting IP27 or IP35 systems, do not request the prom to skip diagnosticsMiod Vallat
anymore, as this causes the nsphy connected to the onboard iec to sometimes disappear after a warm boot. Unfortunately this brings back the long reboot times on Origin 200, despite still asking for no memory test.
2009-11-04MP safe mutex.Takuya ASADA
ok miod@
2009-11-03Align each RX descriptor to a 4KB boundary; fixes poor RX performance (chipMiod Vallat
would stop RX operation if it had to cross a 4KB boundary during receive).
2009-11-03A few cleanups and also reflect duplex state in mcr in addition to tcsr.Miod Vallat
2009-11-03Offset the start of the RX buffers by two bytes, so that the ethernetMiod Vallat
header is properly aligned; speeds up RX buffer -> mbuf copies.
2009-11-02Got the RX threshold interrupt working, does not help RX performance though;Miod Vallat
while there, silence overzealous messages when the TX empty interrupt fires before we disable it.
2009-11-02A few fixes and improvements:Miod Vallat
- double the number of rx buffers. - copy packets of 104 bytes or less entirely in the tx descriptor, instead of only doing this for packets smaller than an Ethernet header. - correctly disable the rx threshold interrupt. Otherwise, one received frame every 64 would not be handled because we are not using this interrupt.
2009-11-02When the iec(4) Ethernet address is unkown, pass ff:ff:ff:ff:ff:ff instead ofMiod Vallat
00:00:00:00:00:00, in order to trigger the code which will assign a `feel bad' random address.
2009-11-01Looks like I forgot to add files again. These are the most important filesMiod Vallat
for the new iec(4) driver. Reminded by brad@
2009-11-01Driver for the sgi IOC3 onboard Ethernet interface. Tested on Octane only soMiod Vallat
far, and needs help to figure out its Ethernet address on IP35 systems. Heavily derived from mec(4) written by Izumi Tsutsui and Christopher Sekiya, although it required many changes to fit the IOC3 chip.
2009-10-31A chunk from my WIP bootblocks tree went in by mistake in previous commit;Miod Vallat
spotted by deraadt@
2009-10-31Do not override AS and LD, to be cross compilation friendly; noticed by syuu@Miod Vallat
2009-10-31s/Mhz/MHz/, MHz is a multiple of the SI unit hertz (whose symbol is Hz).Igor Sobrado
2009-10-31Blinkenlichten on Octane.Miod Vallat
2009-10-30Support IP30 secondary cpu bootup. ok miod@Takuya ASADA
2009-10-26Rename struct confargs to struct mainbus_attach_args for consistency and alsoMiod Vallat
to prevent further abuse of it.
2009-10-26Get rid of unused `frame' member of struct intrhand; only hardclock() needsMiod Vallat
a frame and clock interrupt doesn't need a struct intrhand.
2009-10-26Make pci_intr_string() on xbridge return both the xbridge irq and the crossbowMiod Vallat
irq we route it to; this makes clear that devices connected to different xbridges but using the same xbridge irq are actually not shared at all; and this also helps figure out which device cause spurious interrupts.
2009-10-26Remove DS1687 vs DS742 runtime detection code; we only attach dsrtc on theMiod Vallat
onboard ioc(4) devices, and on Octane this is always a DS1687 wired to IOC3 bytebus #1 and #2, while on Origin this is always a DS1742 wired to IOC3 bytebus #0.
2009-10-26Add support for the Octane power button to power(4). Took me a while toMiod Vallat
figure out how the interrupt was routed from xbridge to xheart... (it bypasses the regular `have xbridge send a xio interrupt packet' mechanism)
2009-10-26Add new xbow routines to explicitely trigger or clear an interrupt source,Miod Vallat
instead of embedding that knowledge in xbridge(4); will be used elsewhere shortly.
2009-10-26Oops; forgot to add this file in previous commit (overhaul of macebusMiod Vallat
interrupts and child device attachment).
2009-10-26Better crime/mace interrupt handling; interrupt information is no longerMiod Vallat
specified in the kernel configuration file, but is provided by macebus(4) as part of the child device attachment args, and provide both crime and mace interrupt bitmasks; this allows us to only really enable interrupt sources we care about, and to avoid invoking interrupt handler we don't need to for the few mace interrupts multiplexed at the crime level.
2009-10-23Fix logic in ip27_hub_intr_makemasks() to correctly {un,}mask interruptMiod Vallat
sources on level 1.
2009-10-22Completely overhaul interrupt handling on sgi. Cpu state now only stores aMiod Vallat
logical IPL level, and per-platform (IP27/IP30/IP32) code will from the necessary hardware mask registers. This allows the use of more than one interrupt mask register. Also, the generic (platform independent) interrupt code shrinks a lot, and the actual interrupt handler chains and masking information is now per-platform private data. Interrupt dispatching is generated from a template; more routines will be added to the template to reduce platform-specific changes and share as much code as possible. Tested on IP27, IP30, IP32 and IP35.
2009-10-22With the splx() changes, it is no longer necessary to remember which interruptMiod Vallat
sources were masked and saved in ci_ipending, as splx() will unmask what needs to be unmasked anyway. ci_ipending only now needs to store pending soft interrupts, so rename it to ci_softpending.
2009-10-22Implement bus_space_vaddr() for macepcibr.Miod Vallat
2009-10-22Make macebus_intr_disestablish() signature sane, and update its caller.Miod Vallat
Still unimplemented for now.
2009-10-22The recent cleanups make blatantly visible that the pending_int handlerMiod Vallat
does almost exactly what splx() is doing if ipending is zero, and triggers soft interrupts as well. So don't bother checking for ipending in splx, and always invoke pending_int, which gets renamed as splx_handler for consistency.
2009-10-22unifdef -DIMASK_EXTERNAL to the mips code. Support for interrupt masking atMiod Vallat
coprocessor 0 sr level might come back in the future if hardware support requires it, but at the moment it's getting in the way of larger changes. ``In the Attic, noone can hear you scream''
2009-10-22Replace intrmask_t with uint32_t. This types only describes interrupt masksMiod Vallat
in the coprocessor 0 status register (coupled with ICR on rm7k/rm9k), and may be completely alien to real hardware interrupt masks, so don't make things unnecessary confusing.
2009-10-22Introduce a logical xbpci(4) device between xbridge and pci, since more thanMiod Vallat
one pci bus can attach to an xbridge (if PIC) and both being `bus 0' would make dmesg confusing. While there, seize the opportunity of this new dmesg line to display the bus mode (PCI or PCIX) and speed.
2009-10-22Correctly initialize the second HUB PI interrupt and calias registers onMiod Vallat
IP35 systems.
2009-10-21Replace IP32 hw_setintrmask() .S routine with a two line C routine.Miod Vallat
2009-10-21In atoi(), only check for a base indication iff the string starts with `0'Miod Vallat
and no base has been enforced. Otherwise the leading number of the mec(4) 08:00:69:xx:yy:zz Ethernet address would be interpreted as octal base, followed by an out-of-range `8' which is now rejected but incorrectly skipped; noticed by maja@
2009-10-19Correct a target name so that we don't rebuild vers.o (and thenPhilip Guenthe
bsd) unless some other object has changed. Rebuild and reinstall in /usr/src/usr.sbin/config/ after updating! "I like it" deraadt@
2009-10-16Honour serial console speed on O2 too.Miod Vallat
2009-10-16Make Octane kernels compile again after recent changes. My bad.Miod Vallat
2009-10-16Get serial console speed from prom, and use it instead of hardcoding 9600 bps,Miod Vallat
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).