I am trying to understand "I/O shared memory" concept. As per my understanding, it's a mapping of controller/devices memory into physical address space. Is that correct?
Second thing is, each device connected to I/O bus has it's own set of I/O addresses (I/O address space). It's possible to map I/O ports (part of I/O address space) into physical address space so that kernel can use assembly instruction to operate on that memory directly.
I guess above two are not related and are different. Any more insight into this will be useful. Thanks.
-Govindraj