I get that PDP-11 and VAX used memory mapped I/O but
was that somehow
exposed above the device driver layer? If so, I missed that,
because I had
no conceptual or technical problem with talking to an I/O
channel, it was pretty easy. And I suck at writing
drivers.
There's nothing that restricts a device driver to memory mapped I/O. You
do what ever you have to do to initiate the I/O. Even the x86's originally
used special instructions to start the I/O (in/out). The DENELCOR HEP
supercomputer (we did this port around 1983) we had to bounce I/O requests
off a separate I/O processor different from where the kernel was running.
Similar constucts were used on other machines.