NetBSD 9.2 and a lot more will now work on Alpha EV6 using a newly discovered PCI bus cohere protocol involving a couple of SRM commands and reboots to accomplish whenever the contents of the card cage has been physically modified.
Here's what I've found: The Tsunami's bus is reconciled with the PCI bus via a bitsieve, a matrix stored in undocumented non-volatile memory somewhere on the board, Pchip most likely. Triggering a bus-scan with PFREFETCH_MODE enabled just spams the PCI bus with speculative reads and never gives the cards a voice. Nothing good is generated and that nothing good is stored in pchip. This is familiar behavior for the past 30-ish years. After PREFETCH has been disabled, an attempted boot of the target operating system, NetBSD 9.2 fails in the expected way, with a Black Screen of Death at the moment WSCONS is robbed of the framebuffer for Xwindows. This is the only netBSD problem and it can be resolve with a simple workaround which separates those two events by some time, however brief ( a second would do, a tenth ). The kernel parament 'n', passed via the boot -if n dqa0 command in the SRM puts Netbsd in a mode convenient to us, as the framebuffer is initialized as-such (see how nice the text is!) and has had time to settle. When we take the defaults and 'exit', the process completes to an XDM login and a desktop. I believe DEC intended this to allow NT boots under odd circumstances and did not delete the feature, leaving us a backdoor to boot our operating systems with the machines full cooperation. I believe (without testing the method with other than the video card very thoroughly) that other cards may be positively affected by this new-found ability to cohere the bus: Sata/Pata cards (Please God!), and other commodity cards which otherwise would not work. Why do SCSI cards always work no matter what? The reason is that these premium cards already know themselves quite well and operate at a higher-level on the bus. They are immune from the storm coming through the broken bitsieve, basically establishing a fixed mode without negotiating? The Promise ATA133, for example, ought to work, but it is shouted-down by the mess through the wrong sieve and craps out to pio mode 4. I think, and I will test, that cohering the machine after installing this card may give me a fast and reliable (Cheap) local storage. Why doesn't the onboard ata controller ever really work? It is not really on the PCI bus, but is rather sort of in-between the Tsunami and PCI on an ISA bridge and so cannot benefit by a probe. I believe the drivers for NT, VMS, and TRU use specific driver tweaks to accomplish stable performance at UDMA speeds on this commodity chip. The alterations to fix the boot process are trivial, it isn't and never really has been a NetBSD problem, nor OpenBSD. Go ahead and cohere your Alpha's bus by: Install NetBSD 9.2 with the full installation, enable XDM if you want. It won't run X. We knew that, but the process allows the bus to be probed without prefetch confusing everthing. Enter SRM. Alphabox>>> set pci_parity off Alphabox>>> set prefetch_mode off Alphabox>>> init let the boot proceed to the familiar Black Screen of Death. Reset the machine and re-enter the SRM Alphabox>>> set prefetch_mode on Alphabox>>> init The machine is permanently configured with the new bitsieve generated by the probe we just conducted. You will not need to modify these again unless you makes some hardware change in the card-cage. If you have an Ev6 in the closet, now's the time to drag it out and reclaim its glory. This fix allows prefetch to work the way it was designed to, with tremendous performance benefits, and with the proper sieve in place, strange things will no longer occur. I have not tested as yet, but I believe that with this cohere in place on your macine, and using a similar mechanism to allow the video card time to settle, OpenBSD 5.9 and/or 6.0 should run, even though no one ever saw X on them before, you can today. Why did the oldest versions of NetBSD, OpenBSD, and Linux work in Xwindows just fine? I am guessing, but given that DEC had no possible interest in helping anyone do this (Evidence all of HISTORY), these three teams had no real choice but to slavishly emulate the boot process in every way they could, not knowing which emulated eccentricity was the actual key. It worked, but no one outside of DEC could know why. When the Openbsd/Netbsd/freebsd teams got new members, changed tools, rebuilt anew, at some point they forgot why the code was so strange and obviously inefficient. It should have been a clue, but they instead 'streamlined and optimized'-away the CAREFUL TIMING and they wiped away another thing that I think was probably once done by Tru, NT, VMS, OBSD, FBSD, and NBSD, all. I think they blindly passed something to Pchip, a key bitsieve or a special command to probe without prefetch and then go back as we are doing manually via SRM. Whatever the mechanism was, it was not seen as such and removed, breaking X then. Regression would show what worked, but it would never tell you why without a terrific forensic effort involving long and unfettered access to the actual, known-good vintage iron. Best Regards, Technoid Mutant (Also Known as The Technoid and as Technoid6502)
