linux - IO location vs Memory region -
As I was going through the section accessing I / O and memory space
, Page # 15, I wonder what's the difference between the IO location and memory area.
Here are the first two sentences ...
A PCI device applies above six I / O address areas. Each area has memory or I / O location.
I would like to know the difference between memory and I / O location.
The difference is generally how the device is addressed. The word 'location' in your question usually refers to device mapping, that is, whether the device is an I / O map or a memory map.
The difference between the two is that the I / O uses dedicated instructions and control signals to access the mapped I / OI / O space, while the memory mapped I / O is the same Using the instruction, to access the memory, in that case, instead of moving to the memory location, the data goes to the device (or incoming).
As far as PCI devices are concerned, it is capable of mapping for both / o as well as any of the memory areas using the lspci -v
view mapping Could.
As a sample output:
01: 0c.2 parallel controller: Netmos Technology PCI 9865 Multi-I / O controller (progala-if 03 [IEEE 1284 ] Subsystem: Device A2000: 2000 Flex: Bus Master, Medium Behavior, Latency 0, IRQ 20 I & O Ports [Size = 8] Storage in I / O Port FDFFFTA (32-bit, Non-Prefetch) Size = 4K) Memory in FDF 9 000 (32-bit, non-prefabable) [size = 4] Capabilities : & Lt; Access denied & gt; Kernel Drivers in Use: parport_pc kernel module: parport_pc
Output shows the output of a PCI based parallel port. Here we can see that the ports have been mapped to the I / O areas as well as memory areas. None of the two mechanisms can be used to access the device registers. The device can detect from six I / O areas, it is using four (two I / O mapped and two memory maps).
Comments
Post a Comment