It seems that, when the on-board USB controller is an ALI M5237 USB and its interrupt is routed through the ISA PIC, the interrupt is edge-triggered (despite PCI interrupts being level-triggered).
It seems that, when the on-board USB controller is an ALI M5237 USB and its
interrupt is routed through the ISA PIC, the interrupt is edge-triggered
(despite PCI interrupts being level-triggered).

Attempt to recognize this and correctly setup the PIC ELCR register to `edge'.

This allows ES40 systems (and maybe others, but apparently all the other alpha
systems with on-board M5237 correctly route its interrupt as a PCI interrupt)
to reliably boot multiuser without suffering from USB interrupt storms (this is
especially noticeable when using glass console which, unlike serial console,
does not trigger other interrupts to give other devices a chance to run).

However, this is not enough yet to allow for proper USB device usage; your
mileage may vary.

Tested by bluhm@ and me. Putting it early in the release cycle so that
regressions on other systems, if any, can hopefully get noticed soon enough.

orumin/openbsd-efivars,orumin/openbsd-efivars,orumin/openbsd-efivars,orumin/openbsd-efivars