Looking at the latest developer works drop from the Boeblingen folks I see this line item:
On z Systems, access to MMIO memory requires privileged instructions. This prevents applications to use arbitrary memory access instructions to use MMIO as on other platforms. Instead, this feature introduces two new system calls, s390_pci_mmio_read and s390_pci_mmio_write, allowing MMIO access through the use of privileged instructions in the kernel. Applications using MMIO need to be adapted to invoke these system calls to initiate MMIO operations. Does zArchitecture still have semi-privileged instructions (I think SSK/ISK were such beasts)? These were controlled via a control register which made the instruction usable from userland. I thought this might be a better option than another syscall as the last sentence means an app on x86 will require more than just recompiling when porting to s390x. However, given that z-MMIO uses special instructions that probably do not have analogs in the non-z world the point is probably moot. Are these instructions documented or are they less than open (like SIGA, SERVC, and coupling instructions)?
